Przeglądaj źródła

remove _useOptionsBase from tocOptions

yuken 3 lat temu
rodzic
commit
9ffd9e9793
1 zmienionych plików z 15 dodań i 4 usunięć
  1. 15 4
      packages/app/src/stores/renderer.tsx

+ 15 - 4
packages/app/src/stores/renderer.tsx

@@ -9,7 +9,9 @@ import {
 } from '~/services/renderer/renderer';
 } from '~/services/renderer/renderer';
 
 
 
 
-import { useCurrentPagePath, useCurrentPageTocNode, useRendererConfig } from './context';
+import {
+  useCurrentPageId, useCurrentPagePath, useCurrentPageTocNode, useRendererConfig,
+} from './context';
 
 
 interface ReactMarkdownOptionsGenerator {
 interface ReactMarkdownOptionsGenerator {
   (config: RendererConfig): RendererOptions
   (config: RendererConfig): RendererOptions
@@ -55,11 +57,20 @@ export const useViewOptions = (): SWRResponse<RendererOptions, Error> => {
 };
 };
 
 
 export const useTocOptions = (): SWRResponse<RendererOptions, Error> => {
 export const useTocOptions = (): SWRResponse<RendererOptions, Error> => {
-  const key = 'tocOptions';
-
+  const { data: pageId } = useCurrentPageId();
+  const { data: rendererConfig } = useRendererConfig();
   const { data: tocNode } = useCurrentPageTocNode();
   const { data: tocNode } = useCurrentPageTocNode();
 
 
-  return _useOptionsBase(key, config => generateTocOptions(config, tocNode));
+  const isAllDataValid = rendererConfig != null;
+
+  const key = isAllDataValid
+    ? ['tocOptions', pageId, rendererConfig]
+    : null;
+
+  return useSWRImmutable<RendererOptions, Error>(
+    key,
+    (rendererId, pageId, rendererConfig) => generateTocOptions(rendererConfig, tocNode),
+  );
 };
 };
 
 
 export const usePreviewOptions = (): SWRResponse<RendererOptions, Error> => {
 export const usePreviewOptions = (): SWRResponse<RendererOptions, Error> => {