Удален файл с тестовым заданием по системе управления сотрудниками. Обновлены зависимости в package.json и package-lock.json, добавлен новый пакет react-resizable-panels. Внесены изменения в компоненты для улучшения работы боковой панели и отображения дат. Добавлены новые функции для обработки дат в формате DateTime в GraphQL.

This commit is contained in:
Bivekich
2025-07-20 22:50:21 +03:00
parent 8d57fcd748
commit cc1f9d8473
16 changed files with 354 additions and 696 deletions

46
src/hooks/useSidebar.tsx Normal file
View File

@ -0,0 +1,46 @@
"use client"
import { createContext, useContext, useState, ReactNode } from 'react'
interface SidebarContextType {
isCollapsed: boolean
setIsCollapsed: (collapsed: boolean) => void
toggleSidebar: () => void
getSidebarMargin: () => string
}
const SidebarContext = createContext<SidebarContextType | undefined>(undefined)
export function SidebarProvider({ children }: { children: ReactNode }) {
const [isCollapsed, setIsCollapsed] = useState(false)
const toggleSidebar = () => {
setIsCollapsed(!isCollapsed)
}
const getSidebarMargin = () => {
// Учитываем отступ слева (left-4) + ширина сайдбара + дополнительный отступ
return isCollapsed ? 'ml-20' : 'ml-80'
}
return (
<SidebarContext.Provider
value={{
isCollapsed,
setIsCollapsed,
toggleSidebar,
getSidebarMargin
}}
>
{children}
</SidebarContext.Provider>
)
}
export function useSidebar() {
const context = useContext(SidebarContext)
if (context === undefined) {
throw new Error('useSidebar must be used within a SidebarProvider')
}
return context
}