diff --git a/frontend/src/app/plans/edit/[id]/page.client.tsx b/frontend/src/app/plans/edit/[id]/page.client.tsx index 3e6e54f..18e976c 100644 --- a/frontend/src/app/plans/edit/[id]/page.client.tsx +++ b/frontend/src/app/plans/edit/[id]/page.client.tsx @@ -114,7 +114,19 @@ export function CreateNewPlanPage({ const handleCreateOnlinePlan = async () => { firstTime.current = false; - await createOnlinePlan(plan, setOfflineAlert); + const result = await createOnlinePlan(plan); + if ("error" in result) { + if (result.error === "NOT_LOGGED_IN") { + setOfflineAlert(true); + } else { + toast.error("Nie udało się utworzyć planu w wersji online", { + description: result.message, + duration: 10000, + }); + } + } else if ("success" in result) { + toast.success("Utworzono plan"); + } }; const handleSyncPlan = async () => { diff --git a/frontend/src/lib/utils/createOnlinePlan.ts b/frontend/src/lib/utils/createOnlinePlan.ts index 3fdbec5..9f02e79 100644 --- a/frontend/src/lib/utils/createOnlinePlan.ts +++ b/frontend/src/lib/utils/createOnlinePlan.ts @@ -1,12 +1,7 @@ -import { toast } from "sonner"; - import { createNewPlan } from "@/actions/plans"; import type { PlanState } from "@/lib/usePlan"; -export const createOnlinePlan = async ( - plan: PlanState, - setOfflineAlert: (value: boolean) => void, -) => { +export const createOnlinePlan = async (plan: PlanState) => { try { const courses = plan.courses .filter((c) => c.isChecked) @@ -30,20 +25,14 @@ export const createOnlinePlan = async ( onlineId: res.schedule.id.toString(), })); - toast.success("Utworzono plan"); - return true; + return { success: true }; } catch (err) { if (err instanceof Error && "message" in err) { if (err.message === "Not logged in") { - setOfflineAlert(true); - } else { - toast.error("Nie udało się utworzyć planu w wersji online", { - description: - "Wystąpił nieoczekiwany błąd. Skontaktuj się z zespołem developerów.", - duration: 10000, - }); + return { error: "NOT_LOGGED_IN", message: err.message }; } + return { error: "UNKNOWN", message: err.message }; } - return false; + return { error: "UNKNOWN", message: "Wystąpił nieoczekiwany błąd" }; } };