From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../components/storybook/.storybook/preview.mjs | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 comm/mail/components/storybook/.storybook/preview.mjs (limited to 'comm/mail/components/storybook/.storybook/preview.mjs') diff --git a/comm/mail/components/storybook/.storybook/preview.mjs b/comm/mail/components/storybook/.storybook/preview.mjs new file mode 100644 index 0000000000..6b654c6049 --- /dev/null +++ b/comm/mail/components/storybook/.storybook/preview.mjs @@ -0,0 +1,43 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import { DOMLocalization } from "@fluent/dom"; +import { FluentBundle, FluentResource } from "@fluent/bundle"; + +// Base Fluent set up. +let storybookBundle = new FluentBundle("en-US"); +let loadedResources = new Set(); +function* generateBundles() { + yield* [storybookBundle]; +} +document.l10n = new DOMLocalization([], generateBundles); +document.l10n.connectRoot(document.documentElement); + +// Any fluent imports should go through MozXULElement.insertFTLIfNeeded. +window.MozXULElement = { + async insertFTLIfNeeded(name) { + if (loadedResources.has(name)) { + return; + } + //TODO might have to dynamically change this depending on where a component + // lives in the tree (for example for calendar or mailnews). + // eslint-disable-next-line no-unsanitized/method + let imported = await import( + /* webpackInclude: /.*[\/\\].*\.ftl/ */ + `mail/locales/en-US/${name}` + ); + let ftlContents = imported.default; + + if (loadedResources.has(name)) { + // Seems possible we've attempted to load this twice before the first call + // resolves, so once the first load is complete we can abandon the others. + return; + } + + let ftlResource = new FluentResource(ftlContents); + storybookBundle.addResource(ftlResource); + loadedResources.add(name); + document.l10n.translateRoots(); + }, +}; -- cgit v1.2.3