import { css } from "@emotion/react"; import { ExportButton, Space } from "../three/Space"; import { FullscreenModal } from "../components/FullscreenModal"; import { Title } from "@/components/text/Title"; import { Description } from "@/components/text/Description"; import { Column } from "@/components/flex/Column"; import { MapComponent } from "@/components/map/SelectMap"; import { useState } from "react"; import { Button, NextButton, PrevButton, } from "@/components/button/BottomButton"; import { BuildingHeights } from "@/components/map/Processing"; import { ChevronLeft, ChevronRight, Download } from "lucide-react"; import { useAreaStore } from "@/state/areaStore"; import { useActionStore } from "@/state/exportStore"; import { Modal } from "@/components/modal/Modal"; import { TopNav } from "@/components/nav/TopNav"; import { getCookie } from "@/utils/cookie"; import { Row } from "@/components/flex/Row"; import instanceFleet from "@/api/axios"; const IconSize = css({ width: "14px", height: "14px", }); function App() { const [isNextButtonDisabled, setIsNextButtonDisabled] = useState(true); const [areaData, setAreaData] = useState([]); const [steps, setSteps] = useState(["front", "processing"]); const [step, setStep] = useState(0); const [isWarnModal, setIsWarnModal] = useState(false); const [isExportModal, setIsExportModal] = useState(false); const [isFleetLogin, setIsFleetLogin] = useState(false); const [isFleetModal, setIsFleetModal] = useState(false); const [spaceList, setSpaceList] = useState([]); const setCenter = useAreaStore((state) => state.setCenter); const setAction = useActionStore((state) => state.setAction); const setFleet = useActionStore((state) => state.setFleet); const checkIsBig = () => { const a = areaData[0].lat - areaData[1].lat; const b = areaData[0].lng - areaData[1].lng; console.log(a + b); if (a + b > 0.1) { return true; } else { return false; } }; const exportFile = () => { setAction(true); }; const exportFleet = () => { setAction(true); }; const getFleetSpaces = async () => { const getSpace: any = await instanceFleet.get("space"); setSpaceList([ ...getSpace.data.spaces.map((item) => { return { ...item, key: item.id, }; }), ]); }; const putGlbOnFleetSpace = (spaceId) => { setFleet(spaceId, "fleet"); setTimeout(() => { exportFleet(); }, 100); }; const loadFleetSpace = () => { getFleetSpaces(); setIsFleetModal(true); }; const checkFleetLogin = () => { try { const isCookie = getCookie("token"); if (isCookie) { setIsFleetLogin(true); } } catch (error) {} }; const handleDone = (data) => { setAreaData(data); setCenter(data); console.log(data, "AAEE"); setIsNextButtonDisabled(false); }; const handleRemove = () => { setAreaData([]); setIsNextButtonDisabled(true); }; const handleClickNextStep = () => { if (step == 0 && checkIsBig()) { setIsWarnModal(true); return false; } setStep(step + 1); }; const handleClickPrevStep = () => { setStep(step - 1); }; const handleClickExport = () => { setIsExportModal(true); }; useState(() => { checkFleetLogin(); }, []); return (
Generate 3d map Tools to create 3D maps based on maps and export them in 3D format Processing Click the button below to get the building information. Prev Step Next Step Export GLB setIsWarnModal(false)}> The area is too big Do you want to proceed? setIsExportModal(false)}> Export {isFleetLogin ? ( ) : ( )} setIsFleetModal(false)}> Select Fleet Space {spaceList.map((item, index) => ( ))}
); } export default App;