first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
import {useMutation} from '@tanstack/react-query';
import {BackendResponse} from '../../http/backend-response/backend-response';
import {apiClient} from '../../http/query-client';
import {showHttpErrorToast} from '../../utils/http/show-http-error-toast';
interface Response extends BackendResponse {}
interface Payload {
entryIds?: number[];
deleteForever?: boolean;
paths?: string[];
}
function deleteFileEntries(payload: Payload): Promise<Response> {
return apiClient.post('file-entries/delete', payload).then(r => r.data);
}
export function useDeleteFileEntries() {
return useMutation({
mutationFn: (props: Payload) => deleteFileEntries(props),
onError: err => showHttpErrorToast(err),
});
}

View File

@@ -0,0 +1,41 @@
import {useQuery} from '@tanstack/react-query';
import {apiClient} from '@common/http/query-client';
import {BackendResponse} from '@common/http/backend-response/backend-response';
import {FileEntry} from '@common/uploads/file-entry';
interface Response extends BackendResponse {
fileEntry: FileEntry;
}
interface Options {
enabled?: boolean;
}
export function useFileEntryModel(
entryIdOrUrl: number | string | undefined,
options: Options = {enabled: true},
) {
const entryId = extractEntryId(entryIdOrUrl);
return useQuery({
queryKey: ['file-entries', `${entryId}`],
queryFn: () => fetchFileEntry(entryId!),
enabled: !!entryId && options.enabled,
});
}
function fetchFileEntry(entryId: number | string) {
return apiClient
.get<Response>(`file-entries/${entryId}/model`)
.then(response => response.data);
}
function extractEntryId(entryIdOrUrl: number | string | undefined) {
if (!entryIdOrUrl) {
return undefined;
}
const parsedId = parseInt(entryIdOrUrl as string);
if (!isNaN(parsedId)) {
return parsedId;
}
return `${entryIdOrUrl}`.split('/').pop();
}