WNomunomu 2 лет назад
Родитель
Сommit
0f4520a55b

+ 10 - 0
apps/app/src/components/Layout/BasicLayout.tsx

@@ -3,11 +3,15 @@ import React, { ReactNode } from 'react';
 import dynamic from 'next/dynamic';
 import { DndProvider } from 'react-dnd';
 import { HTML5Backend } from 'react-dnd-html5-backend';
+import { mutate } from 'swr';
+
+import { useNextThemes } from '~/stores/use-next-themes';
 
 import { Sidebar } from '../Sidebar';
 
 import { RawLayout } from './RawLayout';
 
+
 const AlertSiteUrlUndefined = dynamic(() => import('../AlertSiteUrlUndefined').then(mod => mod.AlertSiteUrlUndefined), { ssr: false });
 const DeleteAttachmentModal = dynamic(() => import('../PageAttachment/DeleteAttachmentModal').then(mod => mod.DeleteAttachmentModal), { ssr: false });
 const HotkeysManager = dynamic(() => import('../Hotkeys/HotkeysManager'), { ssr: false });
@@ -31,6 +35,12 @@ type Props = {
 }
 
 export const BasicLayout = ({ children, className }: Props): JSX.Element => {
+  const { resolvedTheme } = useNextThemes();
+
+  const data = { resolvedTheme };
+
+  mutate('resolvedTheme', data);
+
   return (
     <RawLayout className={className ?? ''}>
       <DndProvider backend={HTML5Backend}>

+ 5 - 2
packages/editor/src/components/CodeMirrorEditor/Toolbar/EmojiButton.tsx

@@ -4,7 +4,7 @@ import { Picker } from 'emoji-mart';
 import i18n from 'i18next';
 import { Modal } from 'reactstrap';
 
-import { useNextThemes } from '~/stores/use-next-themes';
+import { useResolvedTheme } from '../../../stores/use-resolved-theme';
 
 import type { UseCodeMirrorEditor } from 'src';
 
@@ -67,7 +67,10 @@ const getEmojiTranslation = (): Translation => {
 export const EmojiButton: FC<Props> = (props) => {
   const [isOpen, setIsOpen] = useState(false);
 
-  const { resolvedTheme } = useNextThemes();
+  const { data } = useResolvedTheme();
+  const { resolvedTheme } = data;
+
+  console.dir(data);
 
   const { codeMirrorEditor } = props;
   const view = codeMirrorEditor?.view;

+ 6 - 0
packages/editor/src/stores/use-resolved-theme.ts

@@ -0,0 +1,6 @@
+import { useSWRStatic } from '@growi/core/dist/swr';
+import type { SWRResponse } from 'swr';
+
+export const useResolvedTheme = (): SWRResponse => {
+  return useSWRStatic('resolvedTheme', undefined, { fallbackData: undefined });
+};