Navigation
阅读进度0%
No headings found.

React Hook:比较功能控制逻辑实现

December 19, 2024 (1y ago)

React
TypeScript
Hook
import { useEffect, useState } from "react";
import { useCompareLocalStorage } from "@b2c-site/www-widgets/dist/index2021";
 
 
// modal 中的 控制逻辑 delete ( item &  group & all), compare , tabChange
const useCompareAction = () => {
 
  const [ activeTabKey, setActiveTabKey ] = useState<number>(0);
  const [ isLoading, setIsLoading ] = useState<boolean>(true);
  const [LSCompareData,setLSCompareData]=useState(undefined);
  const {
    getCompareStorageSubCateList,
    removeCompareSubCate,
    removeItemOfCompareSubCate,
    clearAllCompareSubCate
  } = useCompareLocalStorage({maxSelect: 5});
 
  useEffect(()=>{
    getData()
  },[])
 
  async function getData() {
    const data =  await getCompareStorageSubCateList();
    console.log('data',data);
    // setLSCompareData((prev)=>{
    //     return _.isEqualWith(data, prev, customizerCompare)?prev:data;
    // });
    return data;
  }
 
  // delete item from group
  const deleteItemFromSubCategory = async (item,) => {
 
    // 场景1 没有这个东西 subCategory
    // if(){}
 
    // 场景2 subCategory 的item Number > 1
 
    // 场景3 subCategory 的item Number = 1
 
    removeItemOfCompareSubCate(item)
  };
 
  // delete group
  const deleteSubCategory = () => {
 
  };
 
  // delete all
  const clearAll = () => {
 
  };
 
  // tabChange
  const tabChange = () => {
 
  }
 
  // eventListener on WindowTabChange 
  const windowEventTabChange  = () => {
 
  }
 
  // windowTab 变化的时候
 
  return {
    isLoading,
    activeTabKey,
    deleteItemFromSubCategory,
    deleteSubCategory,
    clearAll,
    tabChange,
  }
}
 
export default useCompareAction