import { create } from 'zustand'
import { persist } from 'zustand/middleware'

type UiState = {
  sidebarCollapsed: boolean
  mobileSidebarOpen: boolean
  selectedTaskId: string | null
  newTaskOpen: boolean
  searchFocusedAt: number
  toggleSidebar: () => void
  setMobileSidebarOpen: (open: boolean) => void
  setSelectedTaskId: (id: string | null) => void
  setNewTaskOpen: (open: boolean) => void
  focusSearch: () => void
}

export const useUiStore = create<UiState>()(persist((set) => ({
  sidebarCollapsed: false,
  mobileSidebarOpen: false,
  selectedTaskId: null,
  newTaskOpen: false,
  searchFocusedAt: 0,
  toggleSidebar: () => set((s) => ({ sidebarCollapsed: !s.sidebarCollapsed })),
  setMobileSidebarOpen: (mobileSidebarOpen) => set({ mobileSidebarOpen }),
  setSelectedTaskId: (selectedTaskId) => set({ selectedTaskId }),
  setNewTaskOpen: (newTaskOpen) => set({ newTaskOpen }),
  focusSearch: () => set({ searchFocusedAt: Date.now() }),
}), { name: 'central-tarefas-ui', partialize: (s) => ({ sidebarCollapsed: s.sidebarCollapsed }) }))
