UNPKG

storybook-react-intl

Version:
45 lines (41 loc) 1.26 kB
import i18n from 'storybook-i18n/preview'; import React from 'react'; import { IntlProvider } from 'react-intl'; import { useGlobals } from 'storybook/preview-api'; // src/preview.ts var withReactIntl = (StoryFn, context) => { const [{ locale }] = useGlobals(); const { parameters: { reactIntl, locale: defaultLocale } } = context; const currentLocale = locale || defaultLocale; if (currentLocale && reactIntl) { const { formats, messages, defaultRichTextElements, timeZone } = reactIntl; const safeFormats = formats ? formats[currentLocale] : void 0; if (messages) { return /* @__PURE__ */ React.createElement( IntlProvider, { timeZone, key: locale, formats: safeFormats, messages: messages[currentLocale], locale: currentLocale, defaultLocale, defaultRichTextElements }, /* @__PURE__ */ React.createElement(React.Fragment, null, StoryFn(context)) ); } } return StoryFn(context); }; // src/preview.ts var i18nDecorators = i18n?.decorators || []; var preview = { ...i18n, // @ts-ignore decorators: [...i18nDecorators, withReactIntl] }; var preview_default = preview; export { preview_default as default };