Handle expired sessions and clean backend errors

This commit is contained in:
2026-05-29 16:52:38 +07:00
parent ebef73f40e
commit aa406f5fb1
23 changed files with 264 additions and 125 deletions

View File

@ -2,6 +2,7 @@
import { useEffect, useRef, useState } from "react";
import { useLanguage } from "@/lib/i18n-context";
import { getBackendErrorMessage } from "@/lib/error-message";
const API_BASE = process.env.NEXT_PUBLIC_API_URL || "";
@ -51,7 +52,7 @@ function AvatarUpload({
body: fd,
});
const data = await res.json();
if (!res.ok) throw new Error(data?.responseDesc || data?.error || "Upload gagal");
if (!res.ok) throw new Error(getBackendErrorMessage(data, "Upload gagal"));
const id = data?.data?.id || data?.data?.fileId || data?.fileId || "";
if (!id) throw new Error("File id tidak ditemukan");
onUploaded(id, objectUrl);
@ -151,7 +152,7 @@ function StorePhotoUpload({
body: fd,
});
const data = await res.json();
if (!res.ok) throw new Error(data?.responseDesc || data?.error || "Upload gagal");
if (!res.ok) throw new Error(getBackendErrorMessage(data, "Upload gagal"));
const id = data?.data?.id || data?.data?.fileId || data?.fileId || "";
if (!id) throw new Error("File id tidak ditemukan");
onUploaded(id, objectUrl);
@ -316,7 +317,7 @@ export default function SettingsPage() {
body: JSON.stringify(body),
});
const result = await res.json();
if (!res.ok) throw new Error(result?.responseDesc || "Gagal menyimpan profil");
if (!res.ok) throw new Error(getBackendErrorMessage(result, "Gagal menyimpan profil"));
// Update local profile state
setProfile((prev) => prev ? {