summaryrefslogtreecommitdiff
path: root/frontend/src/components
diff options
context:
space:
mode:
authorBeebles <102569435+beebls@users.noreply.github.com>2024-09-01 16:04:19 -0600
committerBeebles <102569435+beebls@users.noreply.github.com>2024-09-13 17:22:14 -0600
commitaf9c2ecee944bb6588653b0cc583b4b5e442a06e (patch)
treecebfb5b58d7e43146927eeee4997dced3dac86a8 /frontend/src/components
parent985dc669a11c3b4f053d60737181879b5ac811d8 (diff)
downloaddecky-loader-af9c2ecee944bb6588653b0cc583b4b5e442a06e.tar.gz
decky-loader-af9c2ecee944bb6588653b0cc583b4b5e442a06e.zip
change to use array of hidden announcements
Diffstat (limited to 'frontend/src/components')
-rw-r--r--frontend/src/components/AnnouncementsDisplay.tsx13
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;