mirror of
https://github.com/antebudimir/feishin.git
synced 2025-12-31 18:13:31 +00:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { useRef } from 'react';
|
|
import styled from 'styled-components';
|
|
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';
|
|
|
|
const SidebarContainer = styled.aside`
|
|
position: relative;
|
|
grid-area: sidebar;
|
|
background: var(--sidebar-bg);
|
|
border-right: var(--sidebar-border);
|
|
`;
|
|
|
|
interface LeftSidebarProps {
|
|
isResizing: boolean;
|
|
startResizing: (direction: 'left' | 'right') => void;
|
|
}
|
|
|
|
export const LeftSidebar = ({ isResizing, startResizing }: LeftSidebarProps) => {
|
|
const sidebarRef = useRef<HTMLDivElement | null>(null);
|
|
const { collapsed } = useSidebarStore();
|
|
|
|
return (
|
|
<SidebarContainer id="sidebar">
|
|
<ResizeHandle
|
|
ref={sidebarRef}
|
|
isResizing={isResizing}
|
|
placement="right"
|
|
onMouseDown={(e) => {
|
|
e.preventDefault();
|
|
startResizing('left');
|
|
}}
|
|
/>
|
|
{collapsed ? <CollapsedSidebar /> : <Sidebar />}
|
|
</SidebarContainer>
|
|
);
|
|
};
|