diff --git a/src/browser/index.tsx b/src/browser/index.tsx index 89aa5244229..c4d3c7ac8c4 100644 --- a/src/browser/index.tsx +++ b/src/browser/index.tsx @@ -23,14 +23,16 @@ import ReactDOM from 'react-dom' import AppInit, { setupSentry } from './AppInit' import './init' import { navigateToPreview } from './modules/Stream/StartPreviewFrame' +import { optedInByLocalhost } from 'browser-services/preview-optin-service' setupSentry() + ;(async () => { - const doesPreferQuery = localStorage.getItem('prefersOldBrowser') === 'false' + const optedInToPreview = optedInByLocalhost() try { const response = await fetch('./preview/manifest.json') if (response.status === 200) { - if (doesPreferQuery) { + if (optedInToPreview) { navigateToPreview() } else { localStorage.setItem('previewAvailable', 'true') diff --git a/src/browser/services/preview-optin-service.ts b/src/browser/services/preview-optin-service.ts new file mode 100644 index 00000000000..df8becf76c2 --- /dev/null +++ b/src/browser/services/preview-optin-service.ts @@ -0,0 +1,10 @@ +const notOptedOutOfPreview = (): boolean => { + const prefersOldBrowser = localStorage.getItem('prefersOldBrowser') + const doesPreferQuery = prefersOldBrowser === 'false' + + return doesPreferQuery || prefersOldBrowser === null +} + +export const optedInByLocalhost = (): boolean => { + return notOptedOutOfPreview() && window.location.hostname === 'localhost' +}