fromis_9/frontend/src/stores/useScheduleStore.js

37 lines
1.1 KiB
JavaScript
Raw Normal View History

import { create } from "zustand";
// 일정 관리 페이지 상태 스토어
// 메모리 기반이므로 SPA 내 페이지 이동 시 유지, 새로고침 시 초기화
const useScheduleStore = create((set) => ({
// 검색 관련
searchInput: "",
searchTerm: "",
isSearchMode: false,
// 필터 및 선택
selectedCategories: [],
selectedDate: null, // null이면 getTodayKST() 사용
currentDate: new Date(),
// 상태 업데이트 함수
setSearchInput: (value) => set({ searchInput: value }),
setSearchTerm: (value) => set({ searchTerm: value }),
setIsSearchMode: (value) => set({ isSearchMode: value }),
setSelectedCategories: (value) => set({ selectedCategories: value }),
setSelectedDate: (value) => set({ selectedDate: value }),
setCurrentDate: (value) => set({ currentDate: value }),
// 상태 초기화
reset: () =>
set({
searchInput: "",
searchTerm: "",
isSearchMode: false,
selectedCategories: [],
selectedDate: null,
currentDate: new Date(),
}),
}));
export default useScheduleStore;