diff options
| author | Beebles <102569435+beebls@users.noreply.github.com> | 2024-09-01 16:04:19 -0600 |
|---|---|---|
| committer | Beebles <102569435+beebls@users.noreply.github.com> | 2024-09-13 17:22:14 -0600 |
| commit | af9c2ecee944bb6588653b0cc583b4b5e442a06e (patch) | |
| tree | cebfb5b58d7e43146927eeee4997dced3dac86a8 | |
| parent | 985dc669a11c3b4f053d60737181879b5ac811d8 (diff) | |
| download | decky-loader-af9c2ecee944bb6588653b0cc583b4b5e442a06e.tar.gz decky-loader-af9c2ecee944bb6588653b0cc583b4b5e442a06e.zip | |
change to use array of hidden announcements
| -rw-r--r-- | frontend/src/components/AnnouncementsDisplay.tsx | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/frontend/src/components/AnnouncementsDisplay.tsx b/frontend/src/components/AnnouncementsDisplay.tsx index 6e0eeb70..8ce5bc4e 100644 --- a/frontend/src/components/AnnouncementsDisplay.tsx +++ b/frontend/src/components/AnnouncementsDisplay.tsx @@ -31,7 +31,7 @@ const welcomeAnnouncement: Announcement = { export function AnnouncementsDisplay() { const [announcement, setAnnouncement] = useState<Announcement | null>(null); // showWelcome will display a welcome motd, the welcome motd has an id of "welcome" and once that is saved to hiddenMotdId, it will not show again - const [hiddenAnnouncementId, setHiddenAnnouncementId] = useSetting('hiddenAnnouncementId', 'showWelcome'); + const [hiddenAnnouncementIds, setHiddenAnnouncementIds] = useSetting<string[]>('hiddenAnnouncementIds', []); async function fetchAnnouncement() { const announcement = await getLatestAnnouncement(); @@ -41,23 +41,22 @@ export function AnnouncementsDisplay() { useEffect(() => { void fetchAnnouncement(); }, []); - useEffect(() => { - if (hiddenAnnouncementId === 'showWelcome') { + if (hiddenAnnouncementIds.length > 0) { setAnnouncement(welcomeAnnouncement); } - }, [hiddenAnnouncementId]); + }, [hiddenAnnouncementIds]); function hideAnnouncement() { if (announcement) { - setHiddenAnnouncementId(announcement.id); + setHiddenAnnouncementIds([...hiddenAnnouncementIds, announcement.id]); void fetchAnnouncement(); } } const hidden = useMemo(() => { - return hiddenAnnouncementId === announcement?.id; - }, [hiddenAnnouncementId, announcement]); + return !announcement?.id || hiddenAnnouncementIds.includes(announcement.id); + }, [hiddenAnnouncementIds, announcement]); if (!announcement || !announcement.title || hidden) { return null; |
