mirror of
https://github.com/supabase/supabase.git
synced 2026-10-07 18:35:07 +03:00
## Problem Dashboard users need a notice about the Terms of Service update alongside #51106 and #51107. ## Solution Reuse the organisation landing-page notice pattern from #50397. A compact “We've updated our Terms of Service.” notice opens the explanation and agreement link through **Learn more**. Closing the notice or choosing **Got it** remembers dismissal in the browser with a new version-specific key. ```text Organisation landing page Notice → Learn more → Explanation and Terms of Service link Close / Got it → Remember dismissal ``` | After | | --- | | <img width="628" height="444" alt="CleanShot 2026-10-06 at 14 47 46@2x" src="https://github.com/user-attachments/assets/72922712-321f-4972-b20c-1a075e0745d0" /> | | _Banner_ | | <img width="1078" height="718" alt="CleanShot 2026-10-06 at 16 58 18@2x" src="https://github.com/user-attachments/assets/2109c2ab-e9b7-4855-8acb-42d5232cd002" /> | | _Dialog_ | ## Review instructions 1. Open `/organizations` or an organisation's `/org/<slug>` landing page in the hosted Studio preview. Expect the compact notice. 2. Click **Learn more**. Expect the explanation and a link to the Terms of Service. Escape closes the dialog without dismissing the notice. 3. Choose **Got it**, then reload. The notice stays dismissed. Repeat in a fresh browser profile using **Close banner**. 4. Open a project or an organisation settings page. The notice should not appear.
18 lines
675 B
TypeScript
18 lines
675 B
TypeScript
// Anchored to the section root so per-resource log pages (e.g. a single edge
|
|
// function's logs) don't pull the banner outside Logs/Observability.
|
|
const LOGS_SECTION_PATH = /^\/project\/[^/]+\/(logs|observability)(\/|$)/
|
|
|
|
export function isLogsOrObservabilityPath(pathname: string | null | undefined): boolean {
|
|
if (!pathname) return false
|
|
return LOGS_SECTION_PATH.test(pathname)
|
|
}
|
|
|
|
const ORGANIZATION_HOME_PATH = /^\/org\/[^/]+\/?$/
|
|
|
|
export function isOrganizationLandingPath(pathname: string | null | undefined): boolean {
|
|
if (!pathname) return false
|
|
return (
|
|
pathname === '/org' || pathname === '/organizations' || ORGANIZATION_HOME_PATH.test(pathname)
|
|
)
|
|
}
|