Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import { useTheme } from '@emotion/react'; import { memo, useMemo, type ReactNode } from 'react'; import { DesignSystemProvider, useColorSchemeContext } from '@allshares/studio-design-system'; import { ColorCategory, type DesignSystemTheme } from '@allshares/studio-design-system/meta'; import { LinkAdapter } from '@amalia/design-system/ext'; import { useDateFnsLocaleContext } from '@amalia/ext/date-fns/components'; import { generatePalette } from './generate-palette'; interface LtiParticipantThemeProviderProps { readonly primaryColor: string; readonly children: ReactNode; } export const LtiParticipantThemeProvider = memo(function LtiParticipantThemeProvider({ primaryColor, children, }: LtiParticipantThemeProviderProps) { const theme = useTheme(); const dateFnsLocale = useDateFnsLocaleContext(); const brandedDsTheme = useMemo( (): DesignSystemTheme => ({ ...theme.ds, colors: { ...theme.ds.colors, [ColorCategory.PRIMARY]: generatePalette(`#${primaryColor}`), }, }), [theme.ds, primaryColor], ); const { colorScheme } = useColorSchemeContext(); return ( <DesignSystemProvider colorSchemePreference={colorScheme} cssVariablesRootSelector="[data-enrollment-container]" // Set on the enrollment container. dateFnsLocale={dateFnsLocale} linkComponent={LinkAdapter} theme={brandedDsTheme} > {children} </DesignSystemProvider> ); }); |