parent
2dd5219265
commit
0f7d3d6f39
4 changed files with 8 additions and 31 deletions
|
|
@ -136,8 +136,6 @@ function AdminSchedule() {
|
|||
selectedDate, setSelectedDate,
|
||||
currentDate, setCurrentDate,
|
||||
scrollPosition, setScrollPosition,
|
||||
preserveState, setPreserveState,
|
||||
reset,
|
||||
} = useScheduleStore();
|
||||
|
||||
// 로컬 상태 (페이지 이동 시 유지할 필요 없는 것들)
|
||||
|
|
@ -193,18 +191,10 @@ function AdminSchedule() {
|
|||
}
|
||||
}, [inView, hasNextPage, isFetchingNextPage, fetchNextPage, isSearchMode, searchTerm]);
|
||||
|
||||
// 페이지 진입 시 상태 초기화 (preserveState가 false인 경우만)
|
||||
// selectedDate가 없으면 오늘 날짜로 초기화
|
||||
useEffect(() => {
|
||||
if (preserveState) {
|
||||
// 일정 추가/수정, 봇 관리에서 돌아온 경우 - 플래그만 리셋
|
||||
setPreserveState(false);
|
||||
} else {
|
||||
// 다른 페이지에서 돌아온 경우 - 오늘 날짜로 초기화
|
||||
if (!selectedDate) {
|
||||
setSelectedDate(getTodayKST());
|
||||
setCurrentDate(new Date());
|
||||
setSearchInput('');
|
||||
setSearchTerm('');
|
||||
setIsSearchMode(false);
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,12 +9,10 @@ import Toast from '../../../components/Toast';
|
|||
import Tooltip from '../../../components/Tooltip';
|
||||
import AdminHeader from '../../../components/admin/AdminHeader';
|
||||
import useToast from '../../../hooks/useToast';
|
||||
import useScheduleStore from '../../../stores/useScheduleStore';
|
||||
import * as botsApi from '../../../api/admin/bots';
|
||||
|
||||
function AdminScheduleBots() {
|
||||
const navigate = useNavigate();
|
||||
const { setPreserveState } = useScheduleStore();
|
||||
const [user, setUser] = useState(null);
|
||||
const { toast, setToast } = useToast();
|
||||
const [bots, setBots] = useState([]);
|
||||
|
|
@ -200,12 +198,9 @@ function AdminScheduleBots() {
|
|||
<Home size={16} />
|
||||
</Link>
|
||||
<ChevronRight size={14} />
|
||||
<button
|
||||
onClick={() => { setPreserveState(true); navigate('/admin/schedule'); }}
|
||||
className="hover:text-primary transition-colors"
|
||||
>
|
||||
<Link to="/admin/schedule" className="hover:text-primary transition-colors">
|
||||
일정 관리
|
||||
</button>
|
||||
</Link>
|
||||
<ChevronRight size={14} />
|
||||
<span className="text-gray-700">봇 관리</span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ import CustomTimePicker from "../../../components/admin/CustomTimePicker";
|
|||
import AdminHeader from "../../../components/admin/AdminHeader";
|
||||
import ConfirmDialog from "../../../components/admin/ConfirmDialog";
|
||||
import useToast from "../../../hooks/useToast";
|
||||
import useScheduleStore from "../../../stores/useScheduleStore";
|
||||
import * as authApi from "../../../api/admin/auth";
|
||||
import * as categoriesApi from "../../../api/admin/categories";
|
||||
import * as schedulesApi from "../../../api/admin/schedules";
|
||||
|
|
@ -37,7 +36,6 @@ import { getMembers } from "../../../api/public/members";
|
|||
|
||||
function AdminScheduleForm() {
|
||||
const navigate = useNavigate();
|
||||
const { setPreserveState } = useScheduleStore();
|
||||
const { id } = useParams();
|
||||
const isEditMode = !!id;
|
||||
|
||||
|
|
@ -497,7 +495,6 @@ function AdminScheduleForm() {
|
|||
: "일정이 추가되었습니다.",
|
||||
})
|
||||
);
|
||||
setPreserveState(true);
|
||||
navigate("/admin/schedule");
|
||||
} catch (error) {
|
||||
console.error("일정 저장 오류:", error);
|
||||
|
|
@ -681,12 +678,12 @@ function AdminScheduleForm() {
|
|||
<Home size={16} />
|
||||
</Link>
|
||||
<ChevronRight size={14} />
|
||||
<button
|
||||
onClick={() => { setPreserveState(true); navigate('/admin/schedule'); }}
|
||||
<Link
|
||||
to="/admin/schedule"
|
||||
className="hover:text-primary transition-colors"
|
||||
>
|
||||
일정 관리
|
||||
</button>
|
||||
</Link>
|
||||
<ChevronRight size={14} />
|
||||
<span className="text-gray-700">
|
||||
{isEditMode ? "일정 수정" : "일정 추가"}
|
||||
|
|
@ -1158,7 +1155,7 @@ function AdminScheduleForm() {
|
|||
<div className="flex items-center justify-end gap-4">
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => { setPreserveState(true); navigate("/admin/schedule"); }}
|
||||
onClick={() => navigate("/admin/schedule")}
|
||||
className="px-6 py-3 text-gray-700 hover:bg-gray-100 rounded-xl transition-colors font-medium"
|
||||
>
|
||||
취소
|
||||
|
|
|
|||
|
|
@ -16,9 +16,6 @@ const useScheduleStore = create((set) => ({
|
|||
// 스크롤 위치
|
||||
scrollPosition: 0,
|
||||
|
||||
// 상태 유지 플래그 (일정 추가/수정, 봇 관리 페이지에서 돌아올 때만 true)
|
||||
preserveState: false,
|
||||
|
||||
// 상태 업데이트 함수
|
||||
setSearchInput: (value) => set({ searchInput: value }),
|
||||
setSearchTerm: (value) => set({ searchTerm: value }),
|
||||
|
|
@ -27,7 +24,6 @@ const useScheduleStore = create((set) => ({
|
|||
setSelectedDate: (value) => set({ selectedDate: value }),
|
||||
setCurrentDate: (value) => set({ currentDate: value }),
|
||||
setScrollPosition: (value) => set({ scrollPosition: value }),
|
||||
setPreserveState: (value) => set({ preserveState: value }),
|
||||
|
||||
// 상태 초기화
|
||||
reset: () =>
|
||||
|
|
@ -39,7 +35,6 @@ const useScheduleStore = create((set) => ({
|
|||
selectedDate: null,
|
||||
currentDate: new Date(),
|
||||
scrollPosition: 0,
|
||||
preserveState: false,
|
||||
}),
|
||||
}));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue