| import { toast } from 'sonner';
|
| import i18n from '@/lib/i18n';
|
|
|
| export function handleServerError(error: unknown) {
|
| let errMsg = i18n.t('common.errors.somethingWentWrong');
|
|
|
| if (error && typeof error === 'object' && 'status' in error && Number(error.status) === 204) {
|
| errMsg = i18n.t('common.errors.contentNotFound');
|
| }
|
|
|
|
|
| if (error instanceof Response) {
|
|
|
| error
|
| .clone()
|
| .json()
|
| .then((data) => {
|
| if (data?.title) {
|
| toast.error(data.title);
|
| } else {
|
| toast.error(errMsg);
|
| }
|
| })
|
| .catch(() => {
|
| toast.error(errMsg);
|
| });
|
| return;
|
| } else if (error && typeof error === 'object' && 'data' in error && error.data) {
|
|
|
| const data = error.data as { title?: string };
|
| if (data.title) {
|
| errMsg = data.title;
|
| }
|
| }
|
|
|
| toast.error(errMsg);
|
| }
|
|
|