fix: Phase 2 QA — all 25 remaining HIGH/MEDIUM/LOW issues
HIGH fixes (7): - H1: VNCdirectory admin i18n — 30+ translation keys added - H2: handleSave try/catch with error toast - H3: Free/busy accountId scoping - H4: cancelEventBookings filter by eventId - H5: Resource picker static apiFetch import - H6: Sharing-store toast messages via lastMessage state - H7: roleLabel for all resource types MEDIUM fixes (11): - M1: identitySignatureMap cleanup on delete - M2: Now-line relative positioning - M3: Radial menu disabled item keyboard nav - M4: Radial menu stable event listener via refs - M5: cancelBooking error on missing booking - M6: PasswordRow isMasked state flag - M7: Extract shared rights into lib/sharing-rights.ts - M8: VNCtalk client server-side guard - M9: Collabora configManager instead of process.env - M10: CONFIG_ENV_MAP VNCdirectory fields - M11: SENSITIVE_CONFIG_KEYS field name unification LOW fixes (7): - L1-L3: Unused imports removed - L4: aria-labels on close, clear, search, spinner - L5-L7: Comments for intentional patterns, null guard
This commit is contained in:
@@ -121,7 +121,11 @@ export const useResourceStore = create<ResourceState>()((set, get) => ({
|
||||
cancelBooking: async (bookingId: string) => {
|
||||
const { bookings } = get();
|
||||
const booking = bookings.find((b) => b.id === bookingId);
|
||||
if (!booking) return;
|
||||
if (!booking) {
|
||||
console.error(`cancelBooking: booking with id "${bookingId}" not found`);
|
||||
set({ bookingError: `Booking ${bookingId} not found` });
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const res = await apiFetch(
|
||||
@@ -136,9 +140,10 @@ export const useResourceStore = create<ResourceState>()((set, get) => ({
|
||||
}
|
||||
},
|
||||
|
||||
cancelEventBookings: async (_eventId: string) => {
|
||||
cancelEventBookings: async (eventId: string) => {
|
||||
const { bookings } = get();
|
||||
for (const booking of bookings) {
|
||||
const eventBookings = bookings.filter((b) => b.eventId === eventId);
|
||||
for (const booking of eventBookings) {
|
||||
try {
|
||||
const res = await apiFetch(
|
||||
`/api/resources/${booking.resourceId}/book/${booking.id}`,
|
||||
@@ -149,6 +154,6 @@ export const useResourceStore = create<ResourceState>()((set, get) => ({
|
||||
// silently fail
|
||||
}
|
||||
}
|
||||
set({ bookings: [] });
|
||||
set({ bookings: bookings.filter((b) => b.eventId !== eventId) });
|
||||
},
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user