feat: add option to hide library in the sidebar

This commit is contained in:
Sultan Iman 2025-04-08 17:48:43 +02:00
parent 6fc85022ae
commit 8e4a8788a2
4 changed files with 19 additions and 8 deletions

View file

@ -61,6 +61,7 @@ export const DefaultSidebar = Object.assign(
className, className,
onDock, onDock,
docked, docked,
libraryEnabled,
...rest ...rest
}: Merge< }: Merge<
MarkOptional<Omit<SidebarProps, "name">, "children">, MarkOptional<Omit<SidebarProps, "name">, "children">,
@ -102,15 +103,19 @@ export const DefaultSidebar = Object.assign(
<Sidebar.TabTrigger tab={CANVAS_SEARCH_TAB}> <Sidebar.TabTrigger tab={CANVAS_SEARCH_TAB}>
{searchIcon} {searchIcon}
</Sidebar.TabTrigger> </Sidebar.TabTrigger>
<Sidebar.TabTrigger tab={LIBRARY_SIDEBAR_TAB}> {libraryEnabled && (
{LibraryIcon} <Sidebar.TabTrigger tab={LIBRARY_SIDEBAR_TAB}>
</Sidebar.TabTrigger> {LibraryIcon}
</Sidebar.TabTrigger>
)}
<DefaultSidebarTabTriggersTunnel.Out /> <DefaultSidebarTabTriggersTunnel.Out />
</Sidebar.TabTriggers> </Sidebar.TabTriggers>
</Sidebar.Header> </Sidebar.Header>
<Sidebar.Tab tab={LIBRARY_SIDEBAR_TAB}> {libraryEnabled && (
<LibraryMenu /> <Sidebar.Tab tab={LIBRARY_SIDEBAR_TAB}>
</Sidebar.Tab> <LibraryMenu />
</Sidebar.Tab>
)}
<Sidebar.Tab tab={CANVAS_SEARCH_TAB}> <Sidebar.Tab tab={CANVAS_SEARCH_TAB}>
<SearchMenu /> <SearchMenu />
</Sidebar.Tab> </Sidebar.Tab>

View file

@ -156,7 +156,8 @@ const LayerUI = ({
}: LayerUIProps) => { }: LayerUIProps) => {
const device = useDevice(); const device = useDevice();
const tunnels = useInitializeTunnels(); const tunnels = useInitializeTunnels();
const showLibrary =
UIOptions.libraryEnabled === undefined ? true : UIOptions.libraryEnabled;
const TunnelsJotaiProvider = tunnels.tunnelsJotai.Provider; const TunnelsJotaiProvider = tunnels.tunnelsJotai.Provider;
const [eyeDropperState, setEyeDropperState] = useAtom(activeEyeDropperAtom); const [eyeDropperState, setEyeDropperState] = useAtom(activeEyeDropperAtom);
@ -375,11 +376,11 @@ const LayerUI = ({
</FixedSideContainer> </FixedSideContainer>
); );
}; };
const renderSidebars = () => { const renderSidebars = () => {
return ( return (
<DefaultSidebar <DefaultSidebar
__fallback __fallback
libraryEnabled={showLibrary}
onDock={(docked) => { onDock={(docked) => {
trackEvent( trackEvent(
"sidebar", "sidebar",

View file

@ -25,6 +25,10 @@ export type SidebarProps<P = {}> = {
* supply alongside `docked` prop in order to make the Sidebar user-dockable * supply alongside `docked` prop in order to make the Sidebar user-dockable
*/ */
onDock?: (docked: boolean) => void; onDock?: (docked: boolean) => void;
/**
* Allow hiding library button, default: true
*/
libraryEnabled?: boolean;
docked?: boolean; docked?: boolean;
className?: string; className?: string;
// NOTE sidebars we use internally inside the editor must have this flag set. // NOTE sidebars we use internally inside the editor must have this flag set.

View file

@ -645,6 +645,7 @@ export type UIOptions = Partial<{
tools: { tools: {
image: boolean; image: boolean;
}; };
libraryEnabled?: boolean;
/** @deprecated does nothing. Will be removed in 0.15 */ /** @deprecated does nothing. Will be removed in 0.15 */
welcomeScreen?: boolean; welcomeScreen?: boolean;
}>; }>;