mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 12:18:11 +00:00
enhance contract and booking services with server-side search and validation improvements
- Added parameter to and for server-side free-text search on contract reference, company name, and booking details. - Introduced new validation errors in for container clashes and space issues when creating bookings. - Implemented paginated dropdown settings retrieval in . - Updated to fetch active yards using a new method that handles pagination. - Enhanced with a method to fetch all records by walking through pages. - Refactored to support filtering and pagination in schedule listings. - Improved to return a paginated list of facilities. - Updated UI components in and to utilize debounced search inputs for better performance. - Added alerts in to inform users about booking constraints related to splits and capacity. - Enhanced to display notifications for split bookings and capacity usage.
This commit is contained in:
@@ -31,24 +31,31 @@ export function patchRuleEngineListRecord(
|
||||
qc.setQueriesData<RuleEngineListResult<RuleEngineRecord>>(
|
||||
{ queryKey: ["rule-engine", "list", resource] },
|
||||
(old) => {
|
||||
if (!old?.data?.length) return old;
|
||||
const index = old.data.findIndex((row) => String(row.id) === updatedId);
|
||||
if (!old?.items?.length) return old;
|
||||
const index = old.items.findIndex((row) => String(row.id) === updatedId);
|
||||
if (index === -1) return old;
|
||||
const data = old.data.slice();
|
||||
data[index] = { ...data[index], ...updated };
|
||||
return { ...old, data };
|
||||
const items = old.items.slice();
|
||||
items[index] = { ...items[index], ...updated };
|
||||
return { ...old, items };
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Invalidate and refetch active rule-engine list queries for a resource. */
|
||||
/**
|
||||
* Invalidate and refetch active rule-engine list queries for a resource.
|
||||
* Also covers the page-walked order/full lists (order-list key), which show
|
||||
* the same rows and must refresh after any create/update/delete.
|
||||
*/
|
||||
export async function invalidateRuleEngineList(
|
||||
qc: QueryClient,
|
||||
resource: RuleEngineResourceSlug | string,
|
||||
): Promise<void> {
|
||||
const queryKey = ["rule-engine", "list", resource] as const;
|
||||
await qc.invalidateQueries({ queryKey });
|
||||
await qc.refetchQueries({ queryKey, type: "active" });
|
||||
const listKey = ["rule-engine", "list", resource] as const;
|
||||
const orderListKey = ["rule-engine", "order-list", resource] as const;
|
||||
await qc.invalidateQueries({ queryKey: listKey });
|
||||
await qc.invalidateQueries({ queryKey: orderListKey });
|
||||
await qc.refetchQueries({ queryKey: listKey, type: "active" });
|
||||
await qc.refetchQueries({ queryKey: orderListKey, type: "active" });
|
||||
}
|
||||
|
||||
export function invalidateRuleEngineRoot(qc: QueryClient): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user