๐ ๋ฉ์ธ ๋ ์ด์์
<div class="dash-body">
<aside class="dash-left">
<MainCalendar ... />
</aside>
<main class="dash-right">
<MainList ... />
</main>
</div>
๐ ์ธ์ฆ ๋ง๋ฃ ์ฒ๋ฆฌ(Unauthorized Logout)
function unauthorizedLogout() {
setAuthMessage({ error: "์ธ์
์ด ๋ง๋ฃ๋์์ต๋๋ค. ๋ค์ ๋ก๊ทธ์ธํด์ฃผ์ธ์.", info: "" });
timer.stop();
clearAuth();
router.replace("/auth");
}
๐ useTodos ์ฐ๊ฒฐ ๊ตฌ์กฐ
const {
todoList,
newTitle,
editId,
editTitle,
startEdit,
cancelEdit,
saveEdit,
selectedDateObj,
selectedDate,
calendarAttrs,
remainingForSelectedDate,
loadMonthSummary,
initialPage,
addTodo,
toggleTodo,
deleteTodo,
} = useTodos({
tokenRef: token,
authHeaderFn: authHeader,
onUnauthorized: unauthorizedLogout,
});
๐ ์บ๋ฆฐ๋ ์ด๋ฒคํธ ์ฐ๊ฒฐ
<MainCalendar
v-model:selectedDateObj="selectedDateObj"
:calendar-attrs="calendarAttrs"
:selected-date="selectedDate"
:remaining="remainingForSelectedDate"
:initial-page="initialPage"
@monthChange="loadMonthSummary"
/>
๐ ์ธ์ ํ์ด๋จธ
if (token.value) timer.start();
function extendSession() {
timer.reset(60 * 60);
setAuthMessage({ info: "์ธ์
์ด 60๋ถ์ผ๋ก ์ฐ์ฅ๋์์ต๋๋ค.", error: "" });
}