feat: refactor ResourceExceptionsPanel and related hooks; remove unused availability logic and simplify resource detail management

This commit is contained in:
hamed
2026-08-03 10:36:13 +03:30
parent 00c275d618
commit 8509a04ae2
6 changed files with 99 additions and 221 deletions
+1 -14
View File
@@ -2,7 +2,7 @@ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { toast } from 'sonner';
import { api, ApiError, type ApiResponse } from '../lib/api';
import type {
HolidayOverride, NationalHoliday, ResourceAvailability,
HolidayOverride, NationalHoliday,
ResourceCalendarDays, ResourceException, WorkingHoursPayload,
} from '../types';
@@ -27,7 +27,6 @@ export function useResourceCalendar(resourceUuid: string | undefined) {
onSuccess: () => {
toast.success('شیفت‌ها ذخیره شد');
qc.invalidateQueries({ queryKey: key });
qc.invalidateQueries({ queryKey: ['resource-availability', resourceUuid] });
},
onError: (e) => fail(e, 'ذخیرهٔ شیفت‌ها ناموفق بود'),
});
@@ -41,7 +40,6 @@ export function useResourceExceptions(resourceUuid: string | undefined) {
const invalidate = () => {
qc.invalidateQueries({ queryKey: key });
qc.invalidateQueries({ queryKey: ['resource-availability', resourceUuid] });
};
const query = useQuery({
@@ -66,17 +64,6 @@ export function useResourceExceptions(resourceUuid: string | undefined) {
return { exceptions: query.data?.data ?? [], loading: query.isLoading, create, remove };
}
export function useResourceAvailability(resourceUuid: string | undefined, from: number, to: number) {
const query = useQuery({
queryKey: ['resource-availability', resourceUuid, from, to],
queryFn: () =>
api.get<ApiResponse<ResourceAvailability>>(`/api/v1/resource/${resourceUuid}/availability?from=${from}&to=${to}`),
enabled: !!resourceUuid,
});
return { availability: query.data?.data, loading: query.isLoading };
}
export function useHolidays(year: number) {
const qc = useQueryClient();
const key = ['national-holidays', year];