mirror of
https://github.com/jeffvli/feishin.git
synced 2026-06-09 22:02:19 +02:00
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { useRef } from 'react';
|
|
|
|
import styles from './left-sidebar.module.css';
|
|
|
|
import { ResizeHandle } from '/@/renderer/features/shared/components/resize-handle';
|
|
import { CollapsedSidebar } from '/@/renderer/features/sidebar/components/collapsed-sidebar';
|
|
import { Sidebar } from '/@/renderer/features/sidebar/components/sidebar';
|
|
import { useSidebarStore } from '/@/renderer/store';
|
|
|
|
interface LeftSidebarProps {
|
|
isResizing: boolean;
|
|
startResizing: (direction: 'left' | 'right', mouseEvent?: MouseEvent) => void;
|
|
}
|
|
|
|
export const LeftSidebar = ({ isResizing, startResizing }: LeftSidebarProps) => {
|
|
const sidebarRef = useRef<HTMLDivElement | null>(null);
|
|
const { collapsed } = useSidebarStore();
|
|
|
|
return (
|
|
<aside className={styles.container} id="sidebar">
|
|
<ResizeHandle
|
|
isResizing={isResizing}
|
|
onMouseDown={(e) => {
|
|
e.preventDefault();
|
|
startResizing('left');
|
|
}}
|
|
placement="right"
|
|
ref={sidebarRef}
|
|
/>
|
|
{collapsed ? <CollapsedSidebar /> : <Sidebar />}
|
|
</aside>
|
|
);
|
|
};
|