Files
lcbp3/specs/09-history/2025-12-11-correspondence-refactor.md
admin 2473c4c474
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled
251211:1622 Frontend: refactor Dashboard (not finish)
2025-12-11 16:22:50 +07:00

2.0 KiB

Correspondence Module Refactoring Report

Date: 2025-12-11 Objective: Fix data display issues and align Correspondence Module with user requirements (Revision-based List).

🛠 Fixes & Changes

1. Revision-Based List View

  • Issue: The Correspondence List was displaying one row per Document, hiding revision history.
  • Fix: Refactored CorrespondenceService.findAll to query CorrespondenceRevision as the primary entity.
  • Outcome: The list now displays every revision (e.g., Doc-001 Rev A, Doc-001 Rev B) as separate rows. Added "Rev" column to the UI.

2. Correspondence Detail Page

  • Issue: Detail page was not displaying Subject/Description correctly (showing "-") because it wasn't resolving the currentRevision correctly or receiving unwrapped data.
  • Fix:
    • Updated CorrespondenceDetail to explicitly try finding isCurrent revision or fallback to index 0.
    • Updated useCorrespondence (via correspondence.service.ts) to correctly unwrap the NestJS Interceptor response { data: { ... } }.
  • Outcome: Detail page now correctly shows Subject, Description, and Status from the current revision.

3. Edit Functionality

  • Issue: Clicking "Edit" led to a 404/Blank page.
  • Fix:
    • Created app/(dashboard)/correspondences/[id]/edit/page.tsx.
    • Refactored CorrespondenceForm to accept initialData and supporting "Update" mode (switching between createMutation and updateMutation).
  • Outcome: Users can now edit existing DRAFT correspondences.

📂 Modified Files

  • backend/src/modules/correspondence/correspondence.service.ts
  • frontend/types/correspondence.ts
  • frontend/components/correspondences/list.tsx
  • frontend/components/correspondences/detail.tsx
  • frontend/components/correspondences/form.tsx
  • frontend/lib/services/correspondence.service.ts
  • frontend/app/(dashboard)/correspondences/[id]/edit/page.tsx (Created)

Verification

  • Validated List View shows revisions.
  • Validated Detail View loads data.
  • Validated Edit Page loads data and submits updates.