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:
@@ -61,11 +61,28 @@ export const useSignatureStore = create<SignatureState>()(
|
||||
},
|
||||
|
||||
deleteSignature: (id) => {
|
||||
set((state) => ({
|
||||
signatures: state.signatures.filter((s) => s.id !== id),
|
||||
defaultSignatureId: state.defaultSignatureId === id ? null : state.defaultSignatureId,
|
||||
replySignatureId: state.replySignatureId === id ? null : state.replySignatureId,
|
||||
}));
|
||||
set((state) => {
|
||||
const nextMap = { ...state.identitySignatureMap };
|
||||
for (const identityId of Object.keys(nextMap)) {
|
||||
const entry = nextMap[identityId];
|
||||
if (entry.defaultId === id || entry.replyId === id) {
|
||||
const updated = { ...entry };
|
||||
if (updated.defaultId === id) delete updated.defaultId;
|
||||
if (updated.replyId === id) delete updated.replyId;
|
||||
if (Object.keys(updated).length === 0) {
|
||||
delete nextMap[identityId];
|
||||
} else {
|
||||
nextMap[identityId] = updated;
|
||||
}
|
||||
}
|
||||
}
|
||||
return {
|
||||
signatures: state.signatures.filter((s) => s.id !== id),
|
||||
defaultSignatureId: state.defaultSignatureId === id ? null : state.defaultSignatureId,
|
||||
replySignatureId: state.replySignatureId === id ? null : state.replySignatureId,
|
||||
identitySignatureMap: nextMap,
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
duplicateSignature: (id) => {
|
||||
|
||||
Reference in New Issue
Block a user