// Copyright 2023, Command Line Inc. // SPDX-License-Identifier: Apache-2.0 import { Block, BlockFrame } from "@/app/block/block"; import * as services from "@/store/services"; import * as WOS from "@/store/wos"; import { CenteredDiv, CenteredLoadingDiv } from "@/element/quickelems"; import { TileLayout } from "@/faraday/index"; import { getLayoutStateAtomForTab } from "@/faraday/lib/layoutAtom"; import { useAtomValue } from "jotai"; import { useCallback, useMemo } from "react"; import { getApi } from "../store/global"; import "./tabcontent.less"; const TabContent = ({ tabId }: { tabId: string }) => { const oref = useMemo(() => WOS.makeORef("tab", tabId), [tabId]); const loadingAtom = useMemo(() => WOS.getWaveObjectLoadingAtom(oref), [oref]); const tabLoading = useAtomValue(loadingAtom); const tabAtom = useMemo(() => WOS.getWaveObjectAtom(oref), [oref]); const layoutStateAtom = useMemo(() => getLayoutStateAtomForTab(tabId, tabAtom), [tabAtom, tabId]); const tabData = useAtomValue(tabAtom); const renderBlock = useCallback( ( tabData: TabLayoutData, ready: boolean, onClose: () => void, dragHandleRef: React.RefObject ) => { if (!tabData.blockId || !ready) { return null; } return ; }, [] ); const renderPreview = useCallback((tabData: TabLayoutData) => { return ; }, []); const onNodeDelete = useCallback((data: TabLayoutData) => { return services.ObjectService.DeleteBlock(data.blockId); }, []); const getCursorPoint = useCallback(() => { return getApi().getCursorPoint(); }, []); if (tabLoading) { return ; } if (!tabData) { return (
Tab Not Found
); } if (tabData?.blockids?.length == 0) { return
; } return (
); }; export { TabContent };