diff --git a/apps/desktop/src/renderer/screens/main/components/TopBar/index.tsx b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/TopBar.tsx similarity index 79% rename from apps/desktop/src/renderer/screens/main/components/TopBar/index.tsx rename to apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/TopBar.tsx index 9e36080cd8c..4bbaaca5074 100644 --- a/apps/desktop/src/renderer/screens/main/components/TopBar/index.tsx +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/TopBar.tsx @@ -1,8 +1,9 @@ import { useParams } from "@tanstack/react-router"; import { electronTrpc } from "renderer/lib/electron-trpc"; -import { OpenInMenuButton } from "./OpenInMenuButton"; -import { OrganizationDropdown } from "./OrganizationDropdown"; -import { WindowControls } from "./WindowControls"; +import { OpenInMenuButton } from "./components/OpenInMenuButton"; +import { OrganizationDropdown } from "./components/OrganizationDropdown"; +import { SidebarToggle } from "./components/SidebarToggle"; +import { WindowControls } from "./components/WindowControls"; export function TopBar() { const { data: platform } = electronTrpc.window.getPlatform.useQuery(); @@ -21,7 +22,9 @@ export function TopBar() { style={{ paddingLeft: isMac ? "88px" : "16px", }} - /> + > + +
diff --git a/apps/desktop/src/renderer/screens/main/components/TopBar/OpenInMenuButton.tsx b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OpenInMenuButton/OpenInMenuButton.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/TopBar/OpenInMenuButton.tsx rename to apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OpenInMenuButton/OpenInMenuButton.tsx diff --git a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OpenInMenuButton/index.ts b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OpenInMenuButton/index.ts new file mode 100644 index 00000000000..455415d437d --- /dev/null +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OpenInMenuButton/index.ts @@ -0,0 +1 @@ +export { OpenInMenuButton } from "./OpenInMenuButton"; diff --git a/apps/desktop/src/renderer/screens/main/components/TopBar/OrganizationDropdown.tsx b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OrganizationDropdown/OrganizationDropdown.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/TopBar/OrganizationDropdown.tsx rename to apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OrganizationDropdown/OrganizationDropdown.tsx diff --git a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OrganizationDropdown/index.ts b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OrganizationDropdown/index.ts new file mode 100644 index 00000000000..939703e43d9 --- /dev/null +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OrganizationDropdown/index.ts @@ -0,0 +1 @@ +export { OrganizationDropdown } from "./OrganizationDropdown"; diff --git a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/SidebarToggle/SidebarToggle.tsx b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/SidebarToggle/SidebarToggle.tsx new file mode 100644 index 00000000000..7d2828cf1c3 --- /dev/null +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/SidebarToggle/SidebarToggle.tsx @@ -0,0 +1,47 @@ +import { Tooltip, TooltipContent, TooltipTrigger } from "@superset/ui/tooltip"; +import { LuPanelLeft, LuPanelLeftClose, LuPanelLeftOpen } from "react-icons/lu"; +import { HotkeyTooltipContent } from "renderer/components/HotkeyTooltipContent"; +import { useWorkspaceSidebarStore } from "renderer/stores"; + +export function SidebarToggle() { + const { isCollapsed, toggleCollapsed } = useWorkspaceSidebarStore(); + const collapsed = isCollapsed(); + + const getToggleIcon = (isHovering: boolean) => { + if (collapsed) { + return isHovering ? ( + + ) : ( + + ); + } + return isHovering ? ( + + ) : ( + + ); + }; + + return ( + + + + + + + + + ); +} diff --git a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/SidebarToggle/index.ts b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/SidebarToggle/index.ts new file mode 100644 index 00000000000..6ed6715b715 --- /dev/null +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/SidebarToggle/index.ts @@ -0,0 +1 @@ +export { SidebarToggle } from "./SidebarToggle"; diff --git a/apps/desktop/src/renderer/screens/main/components/TopBar/WindowControls.tsx b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/WindowControls/WindowControls.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/TopBar/WindowControls.tsx rename to apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/WindowControls/WindowControls.tsx diff --git a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/WindowControls/index.ts b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/WindowControls/index.ts new file mode 100644 index 00000000000..87f577b6f5d --- /dev/null +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/WindowControls/index.ts @@ -0,0 +1 @@ +export { WindowControls } from "./WindowControls"; diff --git a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/index.ts b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/index.ts new file mode 100644 index 00000000000..7cc3ff0450b --- /dev/null +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/index.ts @@ -0,0 +1 @@ +export { TopBar } from "./TopBar"; diff --git a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/layout.tsx b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/layout.tsx index ca434cc58ee..36e0f50e705 100644 --- a/apps/desktop/src/renderer/routes/_authenticated/_dashboard/layout.tsx +++ b/apps/desktop/src/renderer/routes/_authenticated/_dashboard/layout.tsx @@ -6,7 +6,6 @@ import { } from "@tanstack/react-router"; import { electronTrpc } from "renderer/lib/electron-trpc"; import { ResizablePanel } from "renderer/screens/main/components/ResizablePanel"; -import { TopBar } from "renderer/screens/main/components/TopBar"; import { WorkspaceSidebar } from "renderer/screens/main/components/WorkspaceSidebar"; import { useAppHotkey } from "renderer/stores/hotkeys"; import { useOpenNewWorkspaceModal } from "renderer/stores/new-workspace-modal"; @@ -15,6 +14,7 @@ import { MAX_WORKSPACE_SIDEBAR_WIDTH, useWorkspaceSidebarStore, } from "renderer/stores/workspace-sidebar-state"; +import { TopBar } from "./components/TopBar"; export const Route = createFileRoute("/_authenticated/_dashboard")({ component: DashboardLayout, diff --git a/apps/desktop/src/renderer/screens/main/components/StartView/StartTopBar.tsx b/apps/desktop/src/renderer/screens/main/components/StartView/StartTopBar.tsx index 02e53f550fc..2474e8c7c26 100644 --- a/apps/desktop/src/renderer/screens/main/components/StartView/StartTopBar.tsx +++ b/apps/desktop/src/renderer/screens/main/components/StartView/StartTopBar.tsx @@ -1,5 +1,5 @@ import { electronTrpc } from "renderer/lib/electron-trpc"; -import { WindowControls } from "../TopBar/WindowControls"; +import { WindowControls } from "renderer/routes/_authenticated/_dashboard/components/TopBar/components/WindowControls"; export function StartTopBar() { const { data: platform, isLoading } = diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/WorkspaceSidebarHeader.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/WorkspaceSidebarHeader.tsx index d9acbddb7c6..10ffe4fdc02 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/WorkspaceSidebarHeader.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/WorkspaceSidebarHeader.tsx @@ -3,16 +3,9 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "@superset/ui/tooltip"; import { cn } from "@superset/ui/utils"; import { useMatchRoute, useNavigate } from "@tanstack/react-router"; import { useFeatureFlagEnabled } from "posthog-js/react"; -import { useState } from "react"; import { HiOutlineClipboardDocumentList } from "react-icons/hi2"; -import { - LuLayers, - LuPanelLeft, - LuPanelLeftClose, - LuPanelLeftOpen, -} from "react-icons/lu"; -import { useWorkspaceSidebarStore } from "renderer/stores"; -import { STROKE_WIDTH, STROKE_WIDTH_THIN } from "../constants"; +import { LuLayers } from "react-icons/lu"; +import { STROKE_WIDTH } from "../constants"; import { NewWorkspaceButton } from "./NewWorkspaceButton"; interface WorkspaceSidebarHeaderProps { @@ -24,8 +17,6 @@ export function WorkspaceSidebarHeader({ }: WorkspaceSidebarHeaderProps) { const navigate = useNavigate(); const matchRoute = useMatchRoute(); - const { toggleCollapsed } = useWorkspaceSidebarStore(); - const [isHovering, setIsHovering] = useState(false); const hasTasksAccess = useFeatureFlagEnabled( FEATURE_FLAGS.ELECTRIC_TASKS_ACCESS, ); @@ -47,43 +38,9 @@ export function WorkspaceSidebarHeader({ navigate({ to: "/tasks" }); }; - const handleToggleSidebar = () => { - toggleCollapsed(); - }; - - const getToggleIcon = () => { - if (isCollapsed) { - return isHovering ? ( - - ) : ( - - ); - } - return isHovering ? ( - - ) : ( - - ); - }; - if (isCollapsed) { return (
- - - - - Toggle sidebar - - - - Toggle sidebar - -