pstream is dead; long live pstream taciturnaxolotl.github.io/pstream-ng/
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge remote-tracking branch 'movie-web/dev'

+15 -3
+9 -1
src/stores/banner/BannerLocation.tsx
··· 10 10 id: string; 11 11 }) { 12 12 const [ref] = useRegisterBanner<HTMLDivElement>(props.id); 13 + const hideBanner = useBannerStore((s) => s.hideBanner); 13 14 const styles = { 14 15 error: "bg-[#C93957] text-white", 15 16 }; ··· 29 30 <Icon icon={icons[props.type]} /> 30 31 <div>{props.children}</div> 31 32 </div> 33 + <span 34 + className="absolute right-4 hover:cursor-pointer" 35 + onClick={() => hideBanner(props.id, true)} 36 + > 37 + <Icon icon={Icons.X} /> 38 + </span> 32 39 </div> 33 40 </div> 34 41 ); ··· 38 45 const { t } = useTranslation(); 39 46 const isOnline = useBannerStore((s) => s.isOnline); 40 47 const setLocation = useBannerStore((s) => s.setLocation); 48 + const ignoredBannerIds = useBannerStore((s) => s.ignoredBannerIds); 41 49 const currentLocation = useBannerStore((s) => s.location); 42 50 const loc = props.location ?? null; 43 51 ··· 53 61 54 62 return ( 55 63 <div> 56 - {!isOnline ? ( 64 + {!isOnline && !ignoredBannerIds.includes("offline") ? ( 57 65 <Banner id="offline" type="error"> 58 66 {t("navigation.banner.offline")} 59 67 </Banner>
+6 -2
src/stores/banner/index.ts
··· 13 13 isOnline: boolean; 14 14 isTurnstile: boolean; 15 15 location: string | null; 16 + ignoredBannerIds: string[]; 16 17 updateHeight(id: string, height: number): void; 17 18 showBanner(id: string): void; 18 - hideBanner(id: string): void; 19 + hideBanner(id: string, force?: boolean): void; 19 20 setLocation(loc: string | null): void; 20 21 updateOnline(isOnline: boolean): void; 21 22 updateTurnstile(isTurnstile: boolean): void; ··· 27 28 isOnline: true, 28 29 isTurnstile: false, 29 30 location: null, 31 + ignoredBannerIds: [], 30 32 updateOnline(isOnline) { 31 33 set((s) => { 32 34 s.isOnline = isOnline; ··· 45 47 showBanner(id) { 46 48 set((s) => { 47 49 if (s.banners.find((v) => v.id === id)) return; 50 + if (s.ignoredBannerIds.includes(id)) return; 48 51 s.banners.push({ 49 52 id, 50 53 height: 0, 51 54 }); 52 55 }); 53 56 }, 54 - hideBanner(id) { 57 + hideBanner(id, force = false) { 55 58 set((s) => { 59 + if (force) s.ignoredBannerIds.push(id); 56 60 s.banners = s.banners.filter((v) => v.id !== id); 57 61 }); 58 62 },