Add shell layout

This commit is contained in:
jeffvli
2022-10-30 20:21:55 -07:00
parent 895356701f
commit 1cdcde010c
+16 -13
View File
@@ -1,6 +1,5 @@
import { useCallback, useEffect, useRef, useState } from 'react'; import { useCallback, useEffect, useRef, useState } from 'react';
import styled from '@emotion/styled'; import styled from '@emotion/styled';
import { Menu, Button } from '@mantine/core';
import { motion } from 'framer-motion'; import { motion } from 'framer-motion';
import { Outlet } from 'react-router'; import { Outlet } from 'react-router';
import { SideQueue } from '@/renderer/features/side-queue/components/side-queue'; import { SideQueue } from '@/renderer/features/side-queue/components/side-queue';
@@ -74,18 +73,22 @@ const ResizeHandle = styled.div<{
bottom: ${(props) => props.placement === 'bottom' && 0}; bottom: ${(props) => props.placement === 'bottom' && 0};
left: ${(props) => props.placement === 'left' && 0}; left: ${(props) => props.placement === 'left' && 0};
z-index: 100; z-index: 100;
width: 3px; width: 2px;
height: 100%; height: 100%;
background-color: var(--sidebar-handle-bg); background-color: var(--sidebar-handle-bg);
cursor: ew-resize; cursor: ew-resize;
opacity: ${(props) => (props.isResizing ? 1 : 0)}; opacity: ${(props) => (props.isResizing ? 1 : 0)};
&:hover { &:hover {
opacity: 1; opacity: 0.5;
} }
`; `;
export const DefaultLayout = () => { interface DefaultLayoutProps {
shell?: boolean;
}
export const DefaultLayout = ({ shell }: DefaultLayoutProps) => {
const sidebar = useAppStore((state) => state.sidebar); const sidebar = useAppStore((state) => state.sidebar);
const setSidebar = useAppStore((state) => state.setSidebar); const setSidebar = useAppStore((state) => state.setSidebar);
@@ -136,21 +139,14 @@ export const DefaultLayout = () => {
<Layout> <Layout>
<TitlebarContainer> <TitlebarContainer>
<Titlebar /> <Titlebar />
<Menu withinPortal>
<Menu.Target>
<Button />
</Menu.Target>
<Menu.Dropdown>
<Menu.Item>Hello</Menu.Item>
<Menu.Item>Hello</Menu.Item>
</Menu.Dropdown>
</Menu>
</TitlebarContainer> </TitlebarContainer>
<MainContainer <MainContainer
leftSidebarWidth={sidebar.leftWidth} leftSidebarWidth={sidebar.leftWidth}
rightExpanded={sidebar.rightExpanded} rightExpanded={sidebar.rightExpanded}
rightSidebarWidth={sidebar.rightWidth} rightSidebarWidth={sidebar.rightWidth}
> >
{!shell && (
<>
<SidebarContainer> <SidebarContainer>
<ResizeHandle <ResizeHandle
ref={sidebarRef} ref={sidebarRef}
@@ -182,6 +178,9 @@ export const DefaultLayout = () => {
<SideQueue /> <SideQueue />
</RightSidebarContainer> </RightSidebarContainer>
)} )}
</>
)}
<Outlet /> <Outlet />
</MainContainer> </MainContainer>
<PlayerbarContainer> <PlayerbarContainer>
@@ -191,3 +190,7 @@ export const DefaultLayout = () => {
</> </>
); );
}; };
DefaultLayout.defaultProps = {
shell: false,
};