Navigation
阅读进度0%
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