import React, { useState, useEffect, memo } from "react"; import { X } from "@phosphor-icons/react"; import { useParams } from "react-router-dom"; import Workspace from "../../../models/workspace"; import System from "../../../models/system"; import { isMobile } from "react-device-detect"; import useUser from "../../../hooks/useUser"; import DocumentSettings from "./Documents"; import DataConnectors from "./DataConnectors"; import ModalWrapper from "@/components/ModalWrapper"; const noop = () => {}; const ManageWorkspace = ({ hideModal = noop, providedSlug = null }) => { const { slug } = useParams(); const { user } = useUser(); const [workspace, setWorkspace] = useState(null); const [settings, setSettings] = useState({}); const [selectedTab, setSelectedTab] = useState("documents"); useEffect(() => { async function getSettings() { const _settings = await System.keys(); setSettings(_settings ?? {}); } getSettings(); }, []); useEffect(() => { async function fetchWorkspace() { const workspace = await Workspace.bySlug(providedSlug ?? slug); setWorkspace(workspace); } fetchWorkspace(); }, [providedSlug, slug]); if (!workspace) return null; if (isMobile) { return (

Editing "{workspace.name}"

Editing these settings are only available on a desktop device. Please access this page on your desktop to continue.

); } return (
{user?.role !== "default" && ( )} {selectedTab === "documents" ? ( ) : ( )}
); }; export default memo(ManageWorkspace); const ModalTabSwitcher = ({ selectedTab, setSelectedTab }) => { return (
); }; export function useManageWorkspaceModal() { const { user } = useUser(); const [showing, setShowing] = useState(false); function showModal() { if (user?.role !== "default") { setShowing(true); } } function hideModal() { setShowing(false); } useEffect(() => { function onEscape(event) { if (!showing || event.key !== "Escape") return; setShowing(false); } document.addEventListener("keydown", onEscape); return () => { document.removeEventListener("keydown", onEscape); }; }, [showing]); return { showing, showModal, hideModal }; }