Skip to content

Commit ada6540

Browse files
authored
chore(banner): add opt-out (#911)
* chore(banner): add opt-out * chore(banner): add opt-out * fixup! * Update .changeset/opt-out-banners.md
1 parent d0f0de0 commit ada6540

15 files changed

Lines changed: 209 additions & 385 deletions

File tree

.changeset/opt-out-banners.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@node-core/doc-kit': minor
3+
---
4+
5+
Add banner opt-out

e2e/announcement-banner.spec.js

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,12 @@ test.describe('Announcement Banner', () => {
1717

1818
await page.goto('/assert.html');
1919

20-
const banner = page.getByRole('region', { name: 'Announcements' });
20+
const banner = page.getByRole('region', { name: 'Announcement' });
2121
await expect(banner).toBeVisible();
2222
await expect(banner).toContainText('Important announcement for all users');
23+
await expect(
24+
banner.getByRole('button', { name: 'Close banner' })
25+
).toBeVisible();
2326
});
2427

2528
test('renders a banner with a link', async ({ page }) => {
@@ -39,7 +42,7 @@ test.describe('Announcement Banner', () => {
3942

4043
await page.goto('/assert.html');
4144

42-
const banner = page.getByRole('region', { name: 'Announcements' });
45+
const banner = page.getByRole('region', { name: 'Announcement' });
4346
await expect(banner).toBeVisible();
4447

4548
const link = banner.getByRole('link', { name: 'Read the release notes' });
@@ -60,7 +63,37 @@ test.describe('Announcement Banner', () => {
6063
await page.waitForLoadState('networkidle');
6164

6265
await expect(
63-
page.getByRole('region', { name: 'Announcements' })
66+
page.getByRole('region', { name: 'Announcement' })
6467
).not.toBeAttached();
6568
});
69+
70+
test('persists dismissal until the banner text changes', async ({ page }) => {
71+
let text = 'Dismiss this announcement';
72+
73+
await page.route(REMOTE_CONFIG_URL, route =>
74+
route.fulfill({
75+
contentType: 'application/json',
76+
body: JSON.stringify({
77+
websiteBanners: { index: { text } },
78+
}),
79+
})
80+
);
81+
82+
await page.goto('/assert.html');
83+
84+
const banner = page.getByRole('region', { name: 'Announcement' });
85+
await banner.getByRole('button', { name: 'Close banner' }).click();
86+
await expect(banner).not.toBeAttached();
87+
await expect
88+
.poll(() => page.evaluate(() => localStorage.getItem('banner-dismissal')))
89+
.toBe(text);
90+
91+
await page.reload();
92+
await page.waitForLoadState('networkidle');
93+
await expect(banner).not.toBeAttached();
94+
95+
text = 'A new announcement';
96+
await page.reload();
97+
await expect(banner).toContainText(text);
98+
});
6699
});

package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
"@heroicons/react": "^2.2.0",
6666
"@minify-html/wasm": "^0.18.1",
6767
"@node-core/rehype-shiki": "^1.4.2",
68-
"@node-core/ui-components": "^1.7.0",
68+
"@node-core/ui-components": "^1.7.2",
6969
"@orama/orama": "^3.1.18",
7070
"@orama/ui": "^1.5.4",
7171
"@rollup/plugin-virtual": "^3.0.2",

src/generators/web/ui/components/AnnouncementBanner/RemoteLoadableBanner.jsx

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/generators/web/ui/components/AnnouncementBanner/__tests__/loadBanners.test.mjs

Lines changed: 0 additions & 174 deletions
This file was deleted.

src/generators/web/ui/components/AnnouncementBanner/index.jsx

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/generators/web/ui/components/AnnouncementBanner/index.module.css

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/generators/web/ui/components/AnnouncementBanner/loadBanners.mjs

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)