From 66d4b4c19b58f567ac8c7e071f89fac62df993aa Mon Sep 17 00:00:00 2001 From: Pamela Chia Date: Fri, 18 Sep 2026 00:52:40 +0800 Subject: [PATCH] chore(studio): remove expired tos update banner (#50533) --- .../interfaces/App/AppBannerWrapper.tsx | 23 ---- .../ui/BannerStack/BannerStackProvider.tsx | 1 - .../BannerStack/Banners/BannerTOSUpdate.tsx | 121 ------------------ e2e/studio/utils/test.ts | 1 - packages/common/constants/local-storage.ts | 1 - 5 files changed, 147 deletions(-) delete mode 100644 apps/studio/components/ui/BannerStack/Banners/BannerTOSUpdate.tsx diff --git a/apps/studio/components/interfaces/App/AppBannerWrapper.tsx b/apps/studio/components/interfaces/App/AppBannerWrapper.tsx index 370fd7d968d..5e10ded26b6 100644 --- a/apps/studio/components/interfaces/App/AppBannerWrapper.tsx +++ b/apps/studio/components/interfaces/App/AppBannerWrapper.tsx @@ -19,13 +19,10 @@ import { SELECT_26_BANNER_PRIORITY, shouldShowSelect26Banner, } from '@/components/ui/BannerStack/Banners/BannerSelect2026.utils' -import { BannerTOSUpdate } from '@/components/ui/BannerStack/Banners/BannerTOSUpdate' import { BANNER_ID, useBannerStack } from '@/components/ui/BannerStack/BannerStackProvider' import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage' import { useTrack } from '@/lib/telemetry/track' -const TOSUpdateExpiry = new Date('2026-08-29T00:00:00Z') - // Update this whenever the banner content changes so old client bundles stop // displaying the notice after the removal date passes. const LogsAllDeprecationExpiry = dayjs('2026-09-24T00:00:00Z') @@ -41,11 +38,6 @@ export const AppBannerWrapper = ({ children }: PropsWithChildren<{}>) => { const pathname = usePathname() const track = useTrack() - const [TOSUpdateAcknowledged, , { isSuccess }] = useLocalStorageQuery( - LOCAL_STORAGE_KEYS.TERMS_OF_SERVICE_UPDATE, - false - ) - const [privacyPolicyUpdateAcknowledged, , { isSuccess: isPrivacyPolicyDismissalLoaded }] = useLocalStorageQuery(LOCAL_STORAGE_KEYS.PRIVACY_POLICY_UPDATE, false) @@ -81,21 +73,6 @@ export const AppBannerWrapper = ({ children }: PropsWithChildren<{}>) => { dismissBanner, ]) - useEffect(() => { - if (Date.now() >= TOSUpdateExpiry.getTime()) return - - if (isSuccess && !TOSUpdateAcknowledged) { - addBanner({ - id: 'tos-update-banner', - isDismissed: false, - content: , - priority: 0, - }) - } else { - dismissBanner('tos-update-banner') - } - }, [TOSUpdateAcknowledged, isSuccess, addBanner, dismissBanner]) - useEffect(() => { if (!isPrivacyPolicyDismissalLoaded || pathname == null) return diff --git a/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx b/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx index ee0a3d4e82a..5baed27fbe2 100644 --- a/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx +++ b/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx @@ -5,7 +5,6 @@ export const BANNER_ID = { TABLE_EDITOR_QUEUE_OPERATIONS: 'table-editor-queue-operations-banner', RLS_EVENT_TRIGGER: 'rls-event-trigger-banner', FREE_MICRO_UPGRADE: 'free-micro-upgrade-banner', - TOS_UPDATE: 'tos-update-banner', PRIVACY_POLICY_UPDATE: 'privacy-policy-update-banner', LOGS_ALL_DEPRECATION: 'logs-all-deprecation-banner', SELECT_26: 'select-2026-banner', diff --git a/apps/studio/components/ui/BannerStack/Banners/BannerTOSUpdate.tsx b/apps/studio/components/ui/BannerStack/Banners/BannerTOSUpdate.tsx deleted file mode 100644 index 304157c5e60..00000000000 --- a/apps/studio/components/ui/BannerStack/Banners/BannerTOSUpdate.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import { LOCAL_STORAGE_KEYS } from 'common' -import { - Badge, - Button, - Dialog, - DialogClose, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogSection, - DialogSectionSeparator, - DialogTitle, - DialogTrigger, -} from 'ui' - -import { InlineLink } from '../../InlineLink' -import { BannerCard } from '../BannerCard' -import { useBannerStack } from '../BannerStackProvider' -import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage' - -export const BannerTOSUpdate = () => { - const { dismissBanner } = useBannerStack() - const [, setTOSUpdateAcknowledged] = useLocalStorageQuery( - LOCAL_STORAGE_KEYS.TERMS_OF_SERVICE_UPDATE, - false - ) - - return ( - { - setTOSUpdateAcknowledged(true) - dismissBanner('tos-update-banner') - }} - > -
- - Notice - - -
-

We're updating our Terms of Service

-

- Our Data Processing Addendum is now built into the Terms, effective August 1, 2026. -

-
- -
-
- ) -} - -const UpdatedTermsOfServiceDialog = () => { - const [, setTOSUpdateAcknowledged] = useLocalStorageQuery( - LOCAL_STORAGE_KEYS.TERMS_OF_SERVICE_UPDATE, - false - ) - - return ( - - - - - - - Terms of Service update - - We're updating our Terms of Service, effective August 1, 2026. - - - - - - -

What's changing:

- -
    -
  • - Our{' '} - - Data Processing Addendum - {' '} - is now built into the Terms, so all customers get its protections automatically. No - separate signed DPA is needed. -
  • -
  • - Our subprocessor list now lives at{' '} - - supabase.com/legal/customer-resources/subprocessor-list - - , where you can subscribe to receive updates to the list. -
  • -
  • - We've added provisions to our fees section relevant to fraud prevention and the rights - of EU and UK consumers. -
  • -
- -

- The updated Terms (Version 3) take effect on August 1, 2026. By continuing to use the - Services after that date, you agree to the updated Terms. You can review the changes{' '} - here. -

- -

- If you have a separate signed subscription agreement or DPA with us, that agreement - continues to govern your use of our Services. -

-
- - - - - - -
-
- ) -} diff --git a/e2e/studio/utils/test.ts b/e2e/studio/utils/test.ts index f51837d40e1..05263367897 100644 --- a/e2e/studio/utils/test.ts +++ b/e2e/studio/utils/test.ts @@ -26,7 +26,6 @@ export const test = base.extend({ `table-editor-queue-operations-banner-dismissed-${ref}`, JSON.stringify(true) ) - localStorage.setItem(`terms-of-service-update-2026-08-01`, JSON.stringify(true)) }, ref) await use(page) }, diff --git a/packages/common/constants/local-storage.ts b/packages/common/constants/local-storage.ts index 134a80bb7f9..920f99b18e4 100644 --- a/packages/common/constants/local-storage.ts +++ b/packages/common/constants/local-storage.ts @@ -81,7 +81,6 @@ export const LOCAL_STORAGE_KEYS = { GITHUB_AUTHORIZATION_STATE: 'supabase-github-authorization-state', // Notice banner keys API_KEYS_FEEDBACK_DISMISSED: (ref: string) => `supabase-api-keys-feedback-dismissed-${ref}`, - TERMS_OF_SERVICE_UPDATE: 'terms-of-service-update-2026-08-01', PRIVACY_POLICY_UPDATE: 'privacy-policy-update-2026-09-16-dismissed', SUPAVISOR_MAINTENANCE: (ref: string) => `supavisor-maintenance-2026-06-09-${ref}`, REPORT_DATERANGE: 'supabase-report-daterange',