diff --git a/frontend/index.html b/frontend/index.html index a7fa6b0b73..a74fbe07c1 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -6,6 +6,7 @@ + Unleash diff --git a/frontend/src/component/providers/PlausibleProvider/PlausibleProvider.tsx b/frontend/src/component/providers/PlausibleProvider/PlausibleProvider.tsx index 3022827eb8..08420407df 100644 --- a/frontend/src/component/providers/PlausibleProvider/PlausibleProvider.tsx +++ b/frontend/src/component/providers/PlausibleProvider/PlausibleProvider.tsx @@ -11,8 +11,25 @@ export const PlausibleProvider: FC = ({ children }) => { const [context, setContext] = useState | null>( null ); + + const getUIFlags = () => { + try { + const uiFlagsStr = + ( + document.querySelector( + 'meta[name="uiFlags"]' + ) as HTMLMetaElement + )?.content || '{}'; + return JSON.parse(uiFlagsStr); + } catch (e) { + return {}; + } + }; + + const uiFlags = getUIFlags(); + const { uiConfig } = useUiConfig(); - const isEnabled = Boolean(uiConfig?.flags?.T || LOCAL_TESTING); + const isEnabled = Boolean(uiConfig?.flags?.T || uiFlags.T || LOCAL_TESTING); useEffect(() => { if (isEnabled) { diff --git a/src/lib/util/load-index-html.ts b/src/lib/util/load-index-html.ts index 8ba5c5733f..9f732c379a 100644 --- a/src/lib/util/load-index-html.ts +++ b/src/lib/util/load-index-html.ts @@ -9,6 +9,7 @@ export async function loadIndexHTML( publicFolder: string, ): Promise { const { cdnPrefix, baseUriPath = '' } = config.server; + const uiFlags = JSON.stringify(config.ui.flags); let indexHTML: string; if (cdnPrefix) { @@ -20,5 +21,5 @@ export async function loadIndexHTML( .toString(); } - return rewriteHTML(indexHTML, baseUriPath, cdnPrefix); + return rewriteHTML(indexHTML, baseUriPath, cdnPrefix, uiFlags); } diff --git a/src/lib/util/rewriteHTML.ts b/src/lib/util/rewriteHTML.ts index 55eaff0dd4..6f05dd1e14 100644 --- a/src/lib/util/rewriteHTML.ts +++ b/src/lib/util/rewriteHTML.ts @@ -2,6 +2,7 @@ export const rewriteHTML = ( input: string, rewriteValue: string, cdnPrefix?: string, + uiFlags?: string, ): string => { let result = input; result = result.replace(/::baseUriPath::/gi, rewriteValue); @@ -10,6 +11,8 @@ export const rewriteHTML = ( const faviconPrefix = cdnPrefix ? 'https://cdn.getunleash.io' : ''; result = result.replace(/::faviconPrefix::/gi, faviconPrefix); + result = result.replace(/::uiFlags::/gi, uiFlags); + result = result.replace( /\/static/gi, `${cdnPrefix || rewriteValue}/static`,