fix merge
All checks were successful
Deploy Amap / deploy (push) Successful in 1m51s

This commit is contained in:
2026-09-07 19:29:27 +02:00
17 changed files with 995 additions and 434 deletions

View File

@@ -27,10 +27,17 @@ import { t } from "@/config/i18n";
import type { DeleteDependencies, EntityName } from "./resources/common";
export async function refreshToken() {
return await fetch(`${Config.backend_uri}/auth/refresh`, {method: "POST", credentials: "include"});
return await fetch(`${Config.backend_uri}/auth/refresh`, {
method: "POST",
credentials: "include",
});
}
export async function fetchWithAuth(input: RequestInfo, options?: RequestInit, redirect: boolean = true) {
export async function fetchWithAuth(
input: RequestInfo,
options?: RequestInit,
redirect: boolean = true,
) {
const res = await fetch(input, {
credentials: "include",
...options,
@@ -38,12 +45,11 @@ export async function fetchWithAuth(input: RequestInfo, options?: RequestInit, r
if (res.status === 401) {
const refresh = await refreshToken();
if (refresh.status !== 200) {
if (redirect)
window.location.href = `/?sessionExpired=True`;
if (refresh.status == 400 || refresh.status == 401) {
if (redirect) window.location.href = `/?sessionExpired=True`;
const error = new Error("Unauthorized");
error.cause = 401
error.cause = 401;
throw error;
}
const newRes = await fetch(input, {
@@ -51,10 +57,9 @@ export async function fetchWithAuth(input: RequestInfo, options?: RequestInit, r
...options,
});
if (newRes.status === 401 || newRes.status === 403) {
if (redirect)
window.location.href = `/?sessionExpired=True`;
if (redirect) window.location.href = `/?sessionExpired=True`;
const error = new Error("Unauthorized");
error.cause = 401
error.cause = 401;
throw error;
}
return newRes;
@@ -196,9 +201,7 @@ export function useGetProductors(filters?: URLSearchParams): UseQueryResult<Prod
queryFn: () =>
fetchWithAuth(`${Config.backend_uri}/productors${filters ? `?${queryString}` : ""}`, {
credentials: "include",
})
.then((res) => res.json()
),
}).then((res) => res.json()),
});
}
@@ -329,30 +332,28 @@ export function useGetForm(
});
}
export function useGetDeleteDependencies(
entity: EntityName,
id?: number,
) {
export function useGetDeleteDependencies(entity: EntityName, id?: number) {
return useQuery<DeleteDependencies[]>({
queryKey: [`${entity}_delete_preview_${id}`],
queryFn: () =>
fetchWithAuth(`${Config.backend_uri}/${entity}s/${id}/preview-delete`, {
credentials: "include",
}).then((res) => {
const result = res.json()
return result
const result = res.json();
return result;
}),
enabled: !!id,
});
}
export function useGetForms(filters?: URLSearchParams): UseQueryResult<Form[], Error> {
const queryString = filters?.toString();
return useQuery<Form[]>({
queryKey: ["forms", queryString],
queryFn: () =>
fetch(`${Config.backend_uri}/forms${filters ? `?${queryString}` : ""}`).then((res) => res.json()),
fetch(`${Config.backend_uri}/forms${filters ? `?${queryString}` : ""}`).then((res) =>
res.json(),
),
});
}
@@ -361,7 +362,9 @@ export function useGetReferentForms(filters?: URLSearchParams): UseQueryResult<F
return useQuery<Form[]>({
queryKey: ["forms", queryString],
queryFn: () =>
fetchWithAuth(`${Config.backend_uri}/forms/referents${filters ? `?${queryString}` : ""}`).then((res) => res.json()),
fetchWithAuth(
`${Config.backend_uri}/forms/referents${filters ? `?${queryString}` : ""}`,
).then((res) => res.json()),
});
}
@@ -749,8 +752,9 @@ export function useGetContractFile() {
export function useGetContractFileTemplate() {
return useMutation({
mutationFn: async (form_id: number) => {
const res = await fetchWithAuth(`${Config.backend_uri}/contracts/${form_id}/base`)
.then((res) => res);
const res = await fetchWithAuth(`${Config.backend_uri}/contracts/${form_id}/base`).then(
(res) => res,
);
if (!res.ok) throw new Error();
const blob = await res.blob();
@@ -772,7 +776,6 @@ export function useGetContractFileTemplate() {
});
}
export function useGetRecap() {
return useMutation({
mutationFn: async (form_id: number) => {
@@ -848,13 +851,7 @@ export function useCreateContract() {
: `contract_${newContract.form_id}.pdf`;
return { blob, filename };
},
onSuccess: async ({ blob, filename }) => {
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
link.download = filename;
link.click();
URL.revokeObjectURL(url);
onSuccess: async () => {
await queryClient.invalidateQueries({ queryKey: ["contracts"] });
},
});
@@ -906,10 +903,14 @@ export function useCurrentUser() {
return useQuery<UserLogged>({
queryKey: ["currentUser"],
queryFn: () => {
return fetchWithAuth(`${Config.backend_uri}/auth/user/me`, {
credentials: "include",
}, false).then((res) => res.json());
return fetchWithAuth(
`${Config.backend_uri}/auth/user/me`,
{
credentials: "include",
},
false,
).then((res) => res.json());
},
retry: false,
});
}
}

View File

@@ -10,6 +10,7 @@ export type PaymentMethod = {
name: string;
details: string;
max: number | string | null;
min: number | string | null;
};
export type Productor = {