index.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import {
  2. type ReactNode
  3. } from "react";
  4. import NCoreUIKitLocalize from "./localize";
  5. import NCoreUIKitModal from "./modal";
  6. import NCoreUIKitTheme from "./theme";
  7. import {
  8. type NCoreUIKitConfig
  9. } from "../types";
  10. class CoreContext<T extends NCoreUIKitConfig> {
  11. NCoreUIKitLocalize: NCoreUIKitLocalize<T>;
  12. NCoreUIKitTheme: NCoreUIKitTheme<T>;
  13. NCoreUIKitModal: NCoreUIKitModal;
  14. constructor(initialState: T) {
  15. this.NCoreUIKitTheme = new NCoreUIKitTheme({
  16. initialSelectedActiveSharpness: initialState.initialSelectedActiveSharpness,
  17. initialSelectedGapPropagation: initialState.initialSelectedGapPropagation,
  18. initialSelectedPalette: initialState.initialSelectedPalette,
  19. initialSelectedTheme: initialState.initialSelectedTheme,
  20. projectThemes: initialState.projectThemes
  21. });
  22. this.NCoreUIKitLocalize = new NCoreUIKitLocalize({
  23. initialSelectedLocale: initialState.initialSelectedLocale,
  24. projectLocales: initialState.projectLocales
  25. });
  26. this.NCoreUIKitModal = new NCoreUIKitModal({
  27. data: []
  28. });
  29. }
  30. Provider = ({
  31. children
  32. }: {
  33. children: ReactNode
  34. }) => {
  35. const LocalizeContext = this.NCoreUIKitLocalize;
  36. const ModalContext = this.NCoreUIKitModal;
  37. const ThemeContext = this.NCoreUIKitTheme;
  38. return <ThemeContext.Provider>
  39. <LocalizeContext.Provider>
  40. <ModalContext.Provider>
  41. <ModalContext.Render>
  42. {children}
  43. </ModalContext.Render>
  44. </ModalContext.Provider>
  45. </LocalizeContext.Provider>
  46. </ThemeContext.Provider>;
  47. };
  48. };
  49. export default CoreContext;