@@ -31,7 +31,7 @@ const welcomeAnnouncement: Announcement = {
31
31
export function AnnouncementsDisplay ( ) {
32
32
const [ announcement , setAnnouncement ] = useState < Announcement | null > ( null ) ;
33
33
// 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
34
- const [ hiddenAnnouncementId , setHiddenAnnouncementId ] = useSetting ( 'hiddenAnnouncementId ', 'showWelcome' ) ;
34
+ const [ hiddenAnnouncementIds , setHiddenAnnouncementIds ] = useSetting < string [ ] > ( 'hiddenAnnouncementIds ', [ ] ) ;
35
35
36
36
async function fetchAnnouncement ( ) {
37
37
const announcement = await getLatestAnnouncement ( ) ;
@@ -41,23 +41,22 @@ export function AnnouncementsDisplay() {
41
41
useEffect ( ( ) => {
42
42
void fetchAnnouncement ( ) ;
43
43
} , [ ] ) ;
44
-
45
44
useEffect ( ( ) => {
46
- if ( hiddenAnnouncementId === 'showWelcome' ) {
45
+ if ( hiddenAnnouncementIds . length > 0 ) {
47
46
setAnnouncement ( welcomeAnnouncement ) ;
48
47
}
49
- } , [ hiddenAnnouncementId ] ) ;
48
+ } , [ hiddenAnnouncementIds ] ) ;
50
49
51
50
function hideAnnouncement ( ) {
52
51
if ( announcement ) {
53
- setHiddenAnnouncementId ( announcement . id ) ;
52
+ setHiddenAnnouncementIds ( [ ... hiddenAnnouncementIds , announcement . id ] ) ;
54
53
void fetchAnnouncement ( ) ;
55
54
}
56
55
}
57
56
58
57
const hidden = useMemo ( ( ) => {
59
- return hiddenAnnouncementId === announcement ? .id ;
60
- } , [ hiddenAnnouncementId , announcement ] ) ;
58
+ return ! announcement ?. id || hiddenAnnouncementIds . includes ( announcement . id ) ;
59
+ } , [ hiddenAnnouncementIds , announcement ] ) ;
61
60
62
61
if ( ! announcement || ! announcement . title || hidden ) {
63
62
return null ;
0 commit comments