import React from "react";
import {
DrawerLogo,
DrawerNavigationGroup,
NavigationResult,
useApp,
useAuthController,
useCollapsedGroups,
useNavigationController
} from "@firecms/core";
import { AddIcon, Button, Tooltip } from "@firecms/ui";
import { useCollectionEditorController } from "@firecms/collection_editor";
import { RESERVED_GROUPS } from "../utils";
import { AdminDrawerMenu } from "./AdminDrawerMenu";
/**
* Default drawer used in FireCMS Cloud
* @group Core
*/
export function FireCMSCloudDrawer() {
const { logo } = useApp();
const {
drawerHovered,
drawerOpen
} = useApp();
const navigation = useNavigationController();
const collectionEditorController = useCollectionEditorController();
const { user } = useAuthController();
const [adminMenuOpen, setAdminMenuOpen] = React.useState(false);
const tooltipsOpen = drawerHovered && !drawerOpen && !adminMenuOpen;
if (!navigation.topLevelNavigation)
throw Error("Navigation not ready in Drawer");
const {
navigationEntries,
groups
}: NavigationResult = navigation.topLevelNavigation;
// Collapsible groups state - using "drawer" namespace for independent state from home page
const { isGroupCollapsed, toggleGroupCollapsed } = useCollapsedGroups(groups, "drawer");
const buildHeaderActions = (group: string | null) => {
const reservedGroup = group && RESERVED_GROUPS.includes(group);
const canCreateCollections = collectionEditorController.configPermissions({ user }).createCollections && !reservedGroup;
if (!canCreateCollections) return null;
return (