import { motion } from "motion/react"; import { useContext, useState } from "react"; import collapseMenuImg1 from "~/assets/images/map_bi/content/collapse_menu1.png"; import collapseMenuImg2 from "~/assets/images/map_bi/content/collapse_menu2.png"; import collapseMenuBg1 from "~/assets/images/map_bi/content/collapse_menu_bg1.png"; import collapseMenuBg2 from "~/assets/images/map_bi/content/collapse_menu_bg2.png"; import { branchOfficeUtilsList } from "~/pages/Container/Map/components/BottomUtils/branchOfficeUtilsList"; import { portUtilsList } from "~/pages/Container/Map/components/BottomUtils/portUtilsList"; import BranchCamera from "~/pages/Container/Map/components/Content/branchOffice/Camera"; import BranchFengBi from "~/pages/Container/Map/components/Content/branchOffice/FengBi"; import BranchOfficeIndexLeft from "~/pages/Container/Map/components/Content/branchOffice/IndexLeft"; import BranchOfficeIndexRight from "~/pages/Container/Map/components/Content/branchOffice/IndexRight"; import BranchMenJin from "~/pages/Container/Map/components/Content/branchOffice/MenJin"; import BranchQiXiang from "~/pages/Container/Map/components/Content/branchOffice/QiXiang"; import BranchRenYuan from "~/pages/Container/Map/components/Content/branchOffice/RenYuan"; import BranchWeiXian from "~/pages/Container/Map/components/Content/branchOffice/WeiXian"; import BranchXiaoFang from "~/pages/Container/Map/components/Content/branchOffice/XiaoFang"; import BranchZhongDian from "~/pages/Container/Map/components/Content/branchOffice/ZhongDian"; import IndexInfo from "~/pages/Container/Map/components/Content/IndexInfo"; import PortFengBi from "~/pages/Container/Map/components/Content/port/FengBi"; import PortIndex from "~/pages/Container/Map/components/Content/port/Index"; import PortMenJin from "~/pages/Container/Map/components/Content/port/MenJin"; import PortQiXiang from "~/pages/Container/Map/components/Content/port/QiXiang"; import PortRenYuan from "~/pages/Container/Map/components/Content/port/RenYuan"; import PortWeiXian from "~/pages/Container/Map/components/Content/port/WeiXian"; import PortXiaoFang from "~/pages/Container/Map/components/Content/port/XiaoFang"; import PortZhongDian from "~/pages/Container/Map/components/Content/port/ZhongDian"; import { Context } from "~/pages/Container/Map/js/context"; import { useContentAnimation } from "./useContentAnimation"; import "./index.less"; function Content() { const { currentPort, currentBranchOffice, pureMap, bottomUtilsCurrentIndex } = useContext(Context); const [collapseLeft, setCollapseLeft] = useState(false); const [collapseRight, setCollapseRight] = useState(false); const { controls: leftControls, displayedContent: leftDisplayedContent, isVisible: isLeftVisible, handleCollapse: handleLeftCollapse, } = useContentAnimation( { currentPort, currentBranchOffice, bottomUtilsCurrentIndex }, collapseLeft, "left", pureMap, ); const { controls: rightControls, displayedContent: rightDisplayedContent, isVisible: isRightVisible, handleCollapse: handleRightCollapse, } = useContentAnimation( { currentBranchOffice, bottomUtilsCurrentIndex }, collapseRight, "right", pureMap, ); const renderPortContent = () => { const bottomUtilsCurrentType = (leftDisplayedContent.bottomUtilsCurrentIndex !== -1 && portUtilsList[leftDisplayedContent.bottomUtilsCurrentIndex]) ? portUtilsList[leftDisplayedContent.bottomUtilsCurrentIndex].type : ""; if (bottomUtilsCurrentType === "" || bottomUtilsCurrentType === "camera") return ; if (bottomUtilsCurrentType === "door") return ; if (bottomUtilsCurrentType === "fire") return ; if (bottomUtilsCurrentType === "danger") return ; if (bottomUtilsCurrentType === "weather") return ; if (bottomUtilsCurrentType === "people") return ; if (bottomUtilsCurrentType === "project") return ; if (bottomUtilsCurrentType === "closedArea") return ; }; const renderBranchOfficeContentLeft = () => { const bottomUtilsCurrentType = (leftDisplayedContent.bottomUtilsCurrentIndex !== -1 && branchOfficeUtilsList[leftDisplayedContent.bottomUtilsCurrentIndex]) ? branchOfficeUtilsList[leftDisplayedContent.bottomUtilsCurrentIndex].type : ""; if (bottomUtilsCurrentType === "") return ; if (bottomUtilsCurrentType === "danger") return ; if (bottomUtilsCurrentType === "door") return ; if (bottomUtilsCurrentType === "fire") return ; if (bottomUtilsCurrentType === "people") return ; if (bottomUtilsCurrentType === "weather") return ; if (bottomUtilsCurrentType === "project") return ; if (bottomUtilsCurrentType === "closedArea") return ; if (bottomUtilsCurrentType === "camera") return ; }; const renderBranchOfficeContentRight = () => { const bottomUtilsCurrentType = (rightDisplayedContent.bottomUtilsCurrentIndex !== -1 && branchOfficeUtilsList[rightDisplayedContent.bottomUtilsCurrentIndex]) ? branchOfficeUtilsList[rightDisplayedContent.bottomUtilsCurrentIndex].type : ""; if (bottomUtilsCurrentType === "") return ; }; const renderContent = () => { return ( <> {isLeftVisible && ( {!leftDisplayedContent.currentPort && } {(leftDisplayedContent.currentPort === "00003" && !leftDisplayedContent.currentBranchOffice) && renderPortContent()} {leftDisplayedContent.currentBranchOffice && renderBranchOfficeContentLeft()} )} {isRightVisible && ( {rightDisplayedContent.currentBranchOffice && renderBranchOfficeContentRight()} )} ); }; const renderCollapseMenu = () => { if (pureMap) return null; if (currentPort === "00003" && !currentBranchOffice) { return (
handleLeftCollapse(setCollapseLeft)} >
); } if (currentBranchOffice) { const bottomUtilsCurrentType = bottomUtilsCurrentIndex !== -1 ? branchOfficeUtilsList[bottomUtilsCurrentIndex].type : ""; return ( <> {bottomUtilsCurrentType !== "camera" && (
handleLeftCollapse(setCollapseLeft)} >
)} {bottomUtilsCurrentIndex === -1 && (
handleRightCollapse(setCollapseRight)} >
)} ); } }; return (
{renderContent()} {renderCollapseMenu()}
); } export default Content;