Jelajahi Sumber

refactor methods

yohei0125 4 tahun lalu
induk
melakukan
790b1d3063

+ 8 - 9
packages/app/src/components/SearchPage/SearchResultContent.tsx

@@ -61,20 +61,15 @@ const scrollTo = (scrollElement:HTMLElement) => {
   }
 };
 
-const MutationObserverWrapper = (scrollElement:HTMLElement) => {
-  const observerCallback = (mutationRecords:MutationRecord[]) => {
+const generateObserverCallback = (doScroll: ()=>void) => {
+  return (mutationRecords:MutationRecord[]) => {
     mutationRecords.forEach((record:MutationRecord) => {
       const target = record.target as HTMLElement;
       const targetId = target.id as string;
       if (targetId !== 'wiki') return;
-      scrollTo(scrollElement);
+      doScroll();
     });
   };
-
-  const observer = new MutationObserver(observerCallback);
-  observer.observe(scrollElement, MUTATION_OBSERVER_CONFIG);
-
-  return observer;
 };
 
 const SearchResultContent: FC<Props> = (props: Props) => {
@@ -84,8 +79,12 @@ const SearchResultContent: FC<Props> = (props: Props) => {
   useEffect(() => {
     const scrollElement = scrollElementRef.current as HTMLElement | null;
     if (scrollElement == null) return;
-    const observer = MutationObserverWrapper(scrollElement);
 
+    const observerCallback = generateObserverCallback(() => {
+      scrollTo(scrollElement);
+    });
+    const observer = new MutationObserver(observerCallback);
+    observer.observe(scrollElement, MUTATION_OBSERVER_CONFIG);
     return () => {
       observer.disconnect();
     };