feat: timeline milestones for deadlines, auto-close reply entries, cleanup

- Entry created via "Inchide" flow now gets status "inchis" with closureInfo
- New DeadlineTimeline component: main deadlines as cards with progress bar,
  auto-tracked sub-deadlines as milestone dots on horizontal timeline
- Auto-tracked deadlines hidden from dashboard when user deadlines exist
- Verification milestone shows "Expirat — nu se mai pot solicita clarificari"
- Parent closureInfo now includes linkedEntryId/Number of the closing act
- Removed orphaned deadline-table.tsx and use-deadline-filters.ts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
AI Assistant
2026-03-11 23:51:27 +02:00
parent 5b18cce5a3
commit c5112dbb3d
6 changed files with 552 additions and 210 deletions
@@ -275,14 +275,24 @@ export function groupDeadlinesByEntry(
}
}
// Check if there are any user-selectable (non-autoTrack) deadlines
const hasUserDeadlines = deadlines.some((dl) => {
const d = getDeadlineType(dl.typeId);
return !d?.autoTrack && !d?.backgroundOnly && !dl.chainParentId;
});
// Second pass: build main deadline items
for (const dl of deadlines) {
const def = getDeadlineType(dl.typeId);
if (def?.backgroundOnly) continue;
if (dl.chainParentId) continue; // chain children are nested
// Auto-tracked without chain parent: treat as main if pending, skip if resolved
if (def?.autoTrack && dl.resolution !== "pending") continue;
// Auto-tracked: hide when there are user-selectable deadlines (they appear as milestones)
// Only show auto-tracked as standalone when there are NO user deadlines on the entry
if (def?.autoTrack) {
if (hasUserDeadlines) continue;
if (dl.resolution !== "pending") continue;
}
mainItems.push({
deadline: dl,