diff --git a/sites/shared/components/dynamic-docs/core-settings.mjs b/sites/shared/components/dynamic-docs/core-settings.mjs new file mode 100644 index 00000000000..34e295650ac --- /dev/null +++ b/sites/shared/components/dynamic-docs/core-settings.mjs @@ -0,0 +1,60 @@ +import dynamic from 'next/dynamic' +import { MDXProvider } from '@mdx-js/react' +import { useState } from 'react' +import { Spinner } from 'shared/components/spinner.mjs' +import { PageLink } from 'shared/components/page-link.mjs' +import { useTranslation } from 'next-i18next' +import { components } from 'shared/components/mdx/index.mjs' +import { MdxWrapper, ns as wrapperNs } from './wrapper.mjs' + +export const ns = wrapperNs + +/* + * Webpack will check on disk for all possible files matching this + * dynamic import. So unless we divide it up a bit your computer + * will melt when running this in development mode + * + * This will return a language-specific component + */ +const dynamicDocsFactory = (lang) => { + return function ({ setting = false }) { + const [frontmatter, setFrontmatter] = useState({}) + const mdx = dynamic( + () => + import( + `markdown/docs/site/draft/core-settings/${setting ? setting + '/' : ''}${lang}.md` + ).then((mod) => { + setFrontmatter(mod.frontmatter) + return mod + }), + { ssr: false } + ) + const MDX = mdx ? mdx : + + return ( + + + + ) + } +} + +/* + * Instantiate language-specific components + */ +const CoreSettingsDocsEn = dynamicDocsFactory('en') +const CoreSettingsDocsDe = dynamicDocsFactory('de') +const CoreSettingsDocsFr = dynamicDocsFactory('fr') +const CoreSettingsDocsEs = dynamicDocsFactory('es') +const CoreSettingsDocsNl = dynamicDocsFactory('nl') + +/* + * Return language-specific component + */ +export const DynamicCoreSettingsDocs = ({ setting = false, language = 'en' }) => { + if (language === 'en') return + if (language === 'de') return + if (language === 'es') return + if (language === 'fr') return + if (language === 'nl') return +} diff --git a/sites/shared/components/dynamic-docs/wrapper.mjs b/sites/shared/components/dynamic-docs/wrapper.mjs new file mode 100644 index 00000000000..bce4c84ed9e --- /dev/null +++ b/sites/shared/components/dynamic-docs/wrapper.mjs @@ -0,0 +1,24 @@ +import { PageLink } from 'shared/components/page-link.mjs' +import { useTranslation } from 'next-i18next' +import { components } from 'shared/components/mdx/index.mjs' + +export const ns = ['modal'] + +export const MdxWrapper = ({ title = false, path, language, children }) => { + const { t } = useTranslation(ns) + const slug = `${language === 'en' ? '' : '/' + language}/docs/${path}` + + return ( + <> + {title ?

{title}

: null} +
{children}
+
+ {t('modal:source')}: + +
+ + ) +}