import React, { useState, useEffect } from "react"; import { Archive, Sliders, UploadCloud, X } from "react-feather"; import DocumentSettings from "./Documents"; import WorkspaceSettings from "./Settings"; import { useParams } from "react-router-dom"; import Workspace from "../../../models/workspace"; import System from "../../../models/system"; import UploadToWorkspace from "./Upload"; const TABS = { documents: DocumentSettings, settings: WorkspaceSettings, upload: UploadToWorkspace, }; const noop = () => false; export default function ManageWorkspace({ hideModal = noop, providedSlug = null, }) { const { slug } = useParams(); const [selectedTab, setSelectedTab] = useState("documents"); const [workspace, setWorkspace] = useState(null); const [fileTypes, setFileTypes] = useState(null); useEffect(() => { async function checkSupportedFiletypes() { const acceptedTypes = await System.acceptedDocumentTypes(); setFileTypes(acceptedTypes ?? {}); } checkSupportedFiletypes(); }, []); useEffect(() => { async function fetchWorkspace() { const workspace = await Workspace.bySlug(providedSlug ?? slug); setWorkspace(workspace); } fetchWorkspace(); }, [selectedTab, slug]); if (!workspace) return null; const Component = TABS[selectedTab || "documents"]; return (