diff --git a/app/admin/(components)/CreateTheme/Container.tsx b/app/admin/(components)/CreateTheme/Container.tsx index 80aeb11..bb3efe0 100644 --- a/app/admin/(components)/CreateTheme/Container.tsx +++ b/app/admin/(components)/CreateTheme/Container.tsx @@ -1,9 +1,11 @@ import { FormEvent } from "react"; - import "../../(style)/createTheme.modules.sass"; +import { useRouter } from "next/navigation"; + import { usePostTheme } from "@/mutations/postTheme"; import { useCreateThemeValue } from "@/components/atoms/createTheme.atom"; import { useSelectedThemeWrite } from "@/components/atoms/selectedTheme.atom"; +import { setSelectedThemeId } from "@/utils/localStorage"; import CreateThemeTitle from "./CreateThemeTitle"; import CreateThemeBody from "./CreateThemeBody"; @@ -13,7 +15,7 @@ export default function CreateTheme() { const createTheme = useCreateThemeValue(); const setSelectedTheme = useSelectedThemeWrite(); const { mutateAsync: postTheme } = usePostTheme(); - + const router = useRouter(); const handleKeyDownSubmit = async (e: FormEvent) => { e.preventDefault(); const isDisabled = @@ -24,10 +26,16 @@ export default function CreateTheme() { if (isDisabled) { return; } - const response = await postTheme(createTheme); - const { id } = response.data.data; - if (id) { - setSelectedTheme(createTheme); + try { + const response = await postTheme(createTheme); + const { id } = response.data.data; + router.push(`/admin?themeId=${encodeURIComponent(id)}`); + if (id) { + setSelectedTheme(createTheme); + setSelectedThemeId(id); + } + } catch (err) { + console.error("Login failed:", err); } }; diff --git a/app/admin/(components)/Sidebar.tsx b/app/admin/(components)/Sidebar.tsx index b4b2408..50ce1ab 100644 --- a/app/admin/(components)/Sidebar.tsx +++ b/app/admin/(components)/Sidebar.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useEffect } from "react"; import Image from "next/image"; import classNames from "classnames"; import { useRouter, useSearchParams } from "next/navigation"; @@ -13,11 +13,9 @@ import { import { getSelectedThemeId, getStatus, - removeAccessToken, removeThemeId, } from "@/utils/localStorage"; import { useSelectedThemeReset } from "@/components/atoms/selectedTheme.atom"; -import { useIsLoggedInWrite } from "@/components/atoms/account.atom"; import { useDrawerState } from "@/components/atoms/drawer.atom"; import useModal from "@/hooks/useModal"; @@ -39,7 +37,7 @@ interface Props { export default function Sidebar(props: Props) { const router = useRouter(); const resetSelectedTheme = useSelectedThemeReset(); - // const setIsLoggedIn = useIsLoggedInWrite(); + const [drawer, setDrawer] = useDrawerState(); const { open } = useModal(); @@ -58,6 +56,13 @@ export default function Sidebar(props: Props) { // removeAccessToken(); // setIsLoggedIn(false); // }; + useEffect(() => { + if (selectedThemeId && selectedThemeId !== "0") + router.push( + `/admin?themeId=${encodeURIComponent(selectedThemeId)} + ` + ); + }, [selectedThemeId]); const navigateToNewTheme = () => { resetSelectedTheme(); @@ -111,7 +116,7 @@ export default function Sidebar(props: Props) {