feishin/src/renderer/layouts/default-layout/left-sidebar.tsx

37 lines
1.1 KiB
TypeScript
Raw Normal View History

2023-05-31 01:13:54 -07:00
import { useRef } from 'react';
import styles from './left-sidebar.module.css';
2023-05-31 01:13:54 -07:00
import { ResizeHandle } from '/@/renderer/features/shared';
import { CollapsedSidebar } from '/@/renderer/features/sidebar/components/collapsed-sidebar';
import { Sidebar } from '/@/renderer/features/sidebar/components/sidebar';
import { useSidebarStore } from '/@/renderer/store';
interface LeftSidebarProps {
2023-07-01 19:10:05 -07:00
isResizing: boolean;
startResizing: (direction: 'left' | 'right') => void;
2023-05-31 01:13:54 -07:00
}
export const LeftSidebar = ({ isResizing, startResizing }: LeftSidebarProps) => {
2023-07-01 19:10:05 -07:00
const sidebarRef = useRef<HTMLDivElement | null>(null);
const { collapsed } = useSidebarStore();
2023-05-31 01:13:54 -07:00
2023-07-01 19:10:05 -07:00
return (
<aside
className={styles.container}
id="sidebar"
>
2023-07-01 19:10:05 -07:00
<ResizeHandle
isResizing={isResizing}
2023-07-01 19:10:05 -07:00
onMouseDown={(e) => {
e.preventDefault();
startResizing('left');
}}
placement="right"
ref={sidebarRef}
2023-07-01 19:10:05 -07:00
/>
{collapsed ? <CollapsedSidebar /> : <Sidebar />}
</aside>
2023-07-01 19:10:05 -07:00
);
2023-05-31 01:13:54 -07:00
};