fix: doc type persistence on edit + filter deadlines by document type
- Fix doc type showing "altele" after edit: preserve initial documentType in allDocTypes map even if not in defaults or Tag Manager - Filter deadline categories by document type: only cerere/aviz unlock full permitting categories (CU, avize, urbanism, autorizare) - Other doc types (scrisoare, notificare, etc.) only get completari + contestatie as deadline categories - Add completari to intrat direction (was missing) - Pass documentType to DeadlineAddDialog for category filtering Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,8 @@ interface DeadlineAddDialogProps {
|
||||
onOpenChange: (open: boolean) => void;
|
||||
entryDate: string;
|
||||
direction: RegistryDirection;
|
||||
/** Document type — filters which deadline categories are available */
|
||||
documentType?: string;
|
||||
/** Callback: typeId, startDate, options (CJ toggle etc.) */
|
||||
onAdd: (
|
||||
typeId: string,
|
||||
@@ -45,6 +47,7 @@ export function DeadlineAddDialog({
|
||||
onOpenChange,
|
||||
entryDate,
|
||||
direction,
|
||||
documentType,
|
||||
onAdd,
|
||||
}: DeadlineAddDialogProps) {
|
||||
const [step, setStep] = useState<Step>("category");
|
||||
@@ -61,8 +64,8 @@ export function DeadlineAddDialog({
|
||||
const [cuDurationMonths, setCuDurationMonths] = useState<number | null>(null);
|
||||
|
||||
const categories = useMemo(
|
||||
() => getCategoriesForDirection(direction),
|
||||
[direction],
|
||||
() => getCategoriesForDirection(direction, documentType),
|
||||
[direction, documentType],
|
||||
);
|
||||
|
||||
const typesForCategory = useMemo(() => {
|
||||
|
||||
@@ -149,12 +149,20 @@ export function RegistryEntryForm({
|
||||
map.set(key, label);
|
||||
}
|
||||
}
|
||||
// Preserve initial doc type even if not in defaults or Tag Manager
|
||||
// (e.g., custom type whose tag was deleted, or tag not yet loaded)
|
||||
if (initial?.documentType && !map.has(initial.documentType)) {
|
||||
const fallbackLabel =
|
||||
initial.documentType.charAt(0).toUpperCase() +
|
||||
initial.documentType.slice(1).replace(/-/g, " ");
|
||||
map.set(initial.documentType, fallbackLabel);
|
||||
}
|
||||
// Sort alphabetically by label
|
||||
const sorted = new Map(
|
||||
[...map.entries()].sort((a, b) => a[1].localeCompare(b[1], "ro")),
|
||||
);
|
||||
return sorted;
|
||||
}, [docTypeTags, localCustomTypes]);
|
||||
}, [docTypeTags, localCustomTypes, initial?.documentType]);
|
||||
|
||||
// When replyTo is provided, flip direction (intrat→iesit, iesit→intrat)
|
||||
const replyDirection: RegistryDirection | undefined = replyTo
|
||||
@@ -1497,6 +1505,7 @@ export function RegistryEntryForm({
|
||||
onOpenChange={setDeadlineAddOpen}
|
||||
entryDate={date}
|
||||
direction={direction}
|
||||
documentType={documentType}
|
||||
onAdd={handleAddDeadline}
|
||||
/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user