| Metadata | Value |
|---|---|
| Status | Active |
| Version | 1.1.0 |
| Last Updated | 2026-09-10 |
| Author | Sangeetha Grantha Team |
| Document Type | Evidence record |
[!NOTE] Historical evidence: results, counts, commands, and observations below belong to the original work described here. The editorial update date is not a new test or corpus verification. For present behavior, use current quality checks.
Related Review: krithi-editor-code-review.md
Target File: modules/frontend/sangita-admin-web/src/pages/KrithiEditor.tsx
These items block other improvements and should be done first.
components/krithi-editor/ directory structureMetadataTab.tsx (~200 lines)
StructureTab.tsx (~130 lines)
LyricsTab.tsx (~220 lines)
TagsTab.tsx (~120 lines)
NotationTab.tsx (already exists, verify integration)AuditTab.tsx (~80 lines)
index.ts barrel exporttypes/krithi-editor.types.tsInputFieldProps interface (in FormInput.tsx)SelectFieldProps interface (in FormSelect.tsx)TextareaFieldProps interface (in FormTextarea.tsx)CheckboxFieldProps interface (in FormCheckbox.tsx)SectionHeaderProps interfaceTabProps interface for each tab componentKrithiEditorState interfaceKrithiEditorActions type (for useReducer)any type usages (15+ occurrences)as any) with proper typeshooks/useKrithiEditorReducer.tsSET_KRITHIUPDATE_FIELDSET_COMPOSERSET_TALAADD_RAGA / REMOVE_RAGASET_DEITYSET_TEMPLEADD_SECTION / UPDATE_SECTION / REMOVE_SECTIONADD_VARIANT / UPDATE_VARIANT / REMOVE_VARIANTADD_TAG / REMOVE_TAGSET_LOADING_STATEutils/krithi-mapper.ts
mapKrithiDtoToDetail() functionutils/krithi-payload-builder.ts (Integrated into krithi-mapper.ts)
handleSavebuildCreatePayload() functionbuildUpdatePayload() functionutils/section-id-mapper.ts
hooks/useKrithiData.ts
hooks/useReferenceData.ts
hooks/useKrithiSections.ts (Integrated into useKrithiData.ts)
hooks/useKrithiLyricVariants.ts (Integrated into useKrithiData.ts)
hooks/useKrithiTags.ts (Integrated into useKrithiData.ts)
hooks/useKrithiAuditLogs.ts (Integrated into useKrithiData.ts)
components/ErrorBoundary.tsxutils/error-handler.ts (Already exists)alert() calls with toastconsole.error with appropriate user feedbackInputField with React.memoSelectField with React.memoTextareaField with React.memoCheckboxField with React.memoSectionHeader with React.memouseCallback to handleSaveuseCallback to handleComposerChangeuseCallback to handleTalaChangeuseCallback to handleRagaChangeuseCallback to handleDeityChangeuseCallback to handleTempleChangeuseCallback to handleDeitySaveuseCallback to handleTempleSaveuseMemo for sorted sections listuseMemo for filtered tags listrole="tablist" to tab containerrole="tab" to each tab buttonrole="tabpanel" to each tab contentaria-selected to active tabaria-controls linking tabs to panelsid attributes for ARIA relationshipsaria-modal="true" to modalsaria-labelledby to modalsaria-describedby for form field errorscomponents/form/FormInput.tsx with proper typescomponents/form/FormSelect.tsx with proper typescomponents/form/FormTextarea.tsx with proper typescomponents/form/FormCheckbox.tsx with proper typescomponents/form/FormField.tsx wrapper with label/errorcomponents/form/index.tsmapKrithiDtoToDetail() function
buildCreatePayload() functionbuildUpdatePayload() functionuseKrithiData hookuseReferenceData hookuseKrithiSections hookuseKrithiLyricVariants hookhandle* prefix)src/
├── pages/
│ └── KrithiEditor.tsx # ~200 lines (orchestration only)
├── components/
│ ├── form/
│ │ ├── FormInput.tsx
│ │ ├── FormSelect.tsx
│ │ ├── FormTextarea.tsx
│ │ ├── FormCheckbox.tsx
│ │ ├── FormField.tsx
│ │ └── index.ts
│ ├── krithi-editor/
│ │ ├── MetadataTab.tsx
│ │ ├── StructureTab.tsx
│ │ ├── LyricsTab.tsx
│ │ ├── TagsTab.tsx
│ │ ├── AuditTab.tsx
│ │ ├── CanonicalFieldModal.tsx
│ │ └── index.ts
│ └── ErrorBoundary.tsx
├── hooks/
│ ├── useKrithiEditorReducer.ts
│ ├── useKrithiData.ts
│ ├── useReferenceData.ts
│ ├── useKrithiSections.ts
│ ├── useKrithiLyricVariants.ts
│ ├── useKrithiTags.ts
│ └── useKrithiAuditLogs.ts
├── utils/
│ ├── krithi-mapper.ts
│ ├── krithi-payload-builder.ts
│ ├── section-id-mapper.ts
│ └── error-handler.ts
├── types/
│ └── krithi-editor.types.ts
└── __tests__/
├── krithi-mapper.test.ts
├── krithi-payload-builder.test.ts
└── useKrithiEditorReducer.test.ts
| Priority | Total Items | Completed | Percentage |
|---|---|---|---|
| P1 Critical | 47 | 45 | 96% |
| P2 High | 30 | 14 | 47% |
| P3 Medium | 28 | 6 | 21% |
| P4 Nice-to-have | 16 | 0 | 0% |
| Total | 121 | 65 | 54% |
For each checklist item:
any types (where applicable)refactor/krithi-editor-cleanup