|
|
|
|
@ -1,5 +1,9 @@
@@ -1,5 +1,9 @@
|
|
|
|
|
import clsx from "clsx"; |
|
|
|
|
import { DEFAULT_SIDEBAR, LIBRARY_SIDEBAR_TAB } from "../constants"; |
|
|
|
|
import { |
|
|
|
|
CANVAS_SEARCH_TAB, |
|
|
|
|
DEFAULT_SIDEBAR, |
|
|
|
|
LIBRARY_SIDEBAR_TAB, |
|
|
|
|
} from "../constants"; |
|
|
|
|
import { useTunnels } from "../context/tunnels"; |
|
|
|
|
import { useUIAppState } from "../context/ui-appState"; |
|
|
|
|
import type { MarkOptional, Merge } from "../utility-types"; |
|
|
|
|
@ -10,7 +14,8 @@ import { LibraryMenu } from "./LibraryMenu";
@@ -10,7 +14,8 @@ import { LibraryMenu } from "./LibraryMenu";
|
|
|
|
|
import type { SidebarProps, SidebarTriggerProps } from "./Sidebar/common"; |
|
|
|
|
import { Sidebar } from "./Sidebar/Sidebar"; |
|
|
|
|
import "../components/dropdownMenu/DropdownMenu.scss"; |
|
|
|
|
import { t } from "../i18n"; |
|
|
|
|
import { SearchMenu } from "./SearchMenu"; |
|
|
|
|
import { LibraryIcon, searchIcon } from "./icons"; |
|
|
|
|
|
|
|
|
|
const DefaultSidebarTrigger = withInternalFallback( |
|
|
|
|
"DefaultSidebarTrigger", |
|
|
|
|
@ -66,16 +71,20 @@ export const DefaultSidebar = Object.assign(
@@ -66,16 +71,20 @@ export const DefaultSidebar = Object.assign(
|
|
|
|
|
|
|
|
|
|
const { DefaultSidebarTabTriggersTunnel } = useTunnels(); |
|
|
|
|
|
|
|
|
|
const isForceDocked = appState.openSidebar?.tab === CANVAS_SEARCH_TAB; |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<Sidebar |
|
|
|
|
{...rest} |
|
|
|
|
name={"default"} |
|
|
|
|
className={clsx("default-sidebar", className)} |
|
|
|
|
docked={docked ?? appState.defaultSidebarDockedPreference} |
|
|
|
|
docked={ |
|
|
|
|
isForceDocked || (docked ?? appState.defaultSidebarDockedPreference) |
|
|
|
|
} |
|
|
|
|
onDock={ |
|
|
|
|
// `onDock=false` disables docking.
|
|
|
|
|
// if `docked` passed, but no onDock passed, disable manual docking.
|
|
|
|
|
onDock === false || (!onDock && docked != null) |
|
|
|
|
isForceDocked || onDock === false || (!onDock && docked != null) |
|
|
|
|
? undefined |
|
|
|
|
: // compose to allow the host app to listen on default behavior
|
|
|
|
|
composeEventHandlers(onDock, (docked) => { |
|
|
|
|
@ -85,26 +94,22 @@ export const DefaultSidebar = Object.assign(
@@ -85,26 +94,22 @@ export const DefaultSidebar = Object.assign(
|
|
|
|
|
> |
|
|
|
|
<Sidebar.Tabs> |
|
|
|
|
<Sidebar.Header> |
|
|
|
|
{rest.__fallback && ( |
|
|
|
|
<div |
|
|
|
|
style={{ |
|
|
|
|
color: "var(--color-primary)", |
|
|
|
|
fontSize: "1.2em", |
|
|
|
|
fontWeight: "bold", |
|
|
|
|
textOverflow: "ellipsis", |
|
|
|
|
overflow: "hidden", |
|
|
|
|
whiteSpace: "nowrap", |
|
|
|
|
paddingRight: "1em", |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
{t("toolBar.library")} |
|
|
|
|
</div> |
|
|
|
|
)} |
|
|
|
|
<DefaultSidebarTabTriggersTunnel.Out /> |
|
|
|
|
<DefaultSidebar.TabTriggers> |
|
|
|
|
<Sidebar.TabTrigger tab={CANVAS_SEARCH_TAB}> |
|
|
|
|
{searchIcon} |
|
|
|
|
</Sidebar.TabTrigger> |
|
|
|
|
<Sidebar.TabTrigger tab={LIBRARY_SIDEBAR_TAB}> |
|
|
|
|
{LibraryIcon} |
|
|
|
|
</Sidebar.TabTrigger> |
|
|
|
|
</DefaultSidebar.TabTriggers> |
|
|
|
|
{rest.__fallback && <DefaultSidebarTabTriggersTunnel.Out />} |
|
|
|
|
</Sidebar.Header> |
|
|
|
|
<Sidebar.Tab tab={LIBRARY_SIDEBAR_TAB}> |
|
|
|
|
<LibraryMenu /> |
|
|
|
|
</Sidebar.Tab> |
|
|
|
|
<Sidebar.Tab tab={CANVAS_SEARCH_TAB}> |
|
|
|
|
<SearchMenu /> |
|
|
|
|
</Sidebar.Tab> |
|
|
|
|
{children} |
|
|
|
|
</Sidebar.Tabs> |
|
|
|
|
</Sidebar> |
|
|
|
|
|