mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-17 08:47:49 +00:00
change to use array of hidden announcements
This commit is contained in:
@@ -31,7 +31,7 @@ const welcomeAnnouncement: Announcement = {
|
|||||||
export function AnnouncementsDisplay() {
|
export function AnnouncementsDisplay() {
|
||||||
const [announcement, setAnnouncement] = useState<Announcement | null>(null);
|
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
|
// 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() {
|
async function fetchAnnouncement() {
|
||||||
const announcement = await getLatestAnnouncement();
|
const announcement = await getLatestAnnouncement();
|
||||||
@@ -41,23 +41,22 @@ export function AnnouncementsDisplay() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
void fetchAnnouncement();
|
void fetchAnnouncement();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (hiddenAnnouncementId === 'showWelcome') {
|
if (hiddenAnnouncementIds.length > 0) {
|
||||||
setAnnouncement(welcomeAnnouncement);
|
setAnnouncement(welcomeAnnouncement);
|
||||||
}
|
}
|
||||||
}, [hiddenAnnouncementId]);
|
}, [hiddenAnnouncementIds]);
|
||||||
|
|
||||||
function hideAnnouncement() {
|
function hideAnnouncement() {
|
||||||
if (announcement) {
|
if (announcement) {
|
||||||
setHiddenAnnouncementId(announcement.id);
|
setHiddenAnnouncementIds([...hiddenAnnouncementIds, announcement.id]);
|
||||||
void fetchAnnouncement();
|
void fetchAnnouncement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const hidden = useMemo(() => {
|
const hidden = useMemo(() => {
|
||||||
return hiddenAnnouncementId === announcement?.id;
|
return !announcement?.id || hiddenAnnouncementIds.includes(announcement.id);
|
||||||
}, [hiddenAnnouncementId, announcement]);
|
}, [hiddenAnnouncementIds, announcement]);
|
||||||
|
|
||||||
if (!announcement || !announcement.title || hidden) {
|
if (!announcement || !announcement.title || hidden) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user