From 5e1775d05750e673ec04894b0306e2bab69d9c88 Mon Sep 17 00:00:00 2001 From: Khafid Prayoga Date: Fri, 29 Aug 2025 11:14:19 +0700 Subject: [PATCH] feat(unit): add unit management pages and form components - Create new unit list and add pages under org-src feature - Implement unit entry form with validation using zod - Update error types to support readonly path property - Refactor field component to use shared error type --- app/components/app/unit/entry-form.vue | 105 +++++++++++--------- app/components/flow/unit/entry.vue | 98 ++++++++++++++++++ app/components/pub/custom-ui/form/field.vue | 9 +- app/pages/(features)/org-src/unit/add.vue | 41 ++++++++ app/pages/(features)/org-src/unit/index.vue | 41 ++++++++ app/types/error.ts | 2 +- 6 files changed, 241 insertions(+), 55 deletions(-) create mode 100644 app/components/flow/unit/entry.vue create mode 100644 app/pages/(features)/org-src/unit/add.vue create mode 100644 app/pages/(features)/org-src/unit/index.vue diff --git a/app/components/app/unit/entry-form.vue b/app/components/app/unit/entry-form.vue index e13df315..c8581f4e 100644 --- a/app/components/app/unit/entry-form.vue +++ b/app/components/app/unit/entry-form.vue @@ -1,57 +1,66 @@ - - diff --git a/app/components/flow/unit/entry.vue b/app/components/flow/unit/entry.vue new file mode 100644 index 00000000..323e6649 --- /dev/null +++ b/app/components/flow/unit/entry.vue @@ -0,0 +1,98 @@ + + + diff --git a/app/components/pub/custom-ui/form/field.vue b/app/components/pub/custom-ui/form/field.vue index 977e66cd..96497be5 100644 --- a/app/components/pub/custom-ui/form/field.vue +++ b/app/components/pub/custom-ui/form/field.vue @@ -1,12 +1,9 @@ @@ -14,7 +11,7 @@ defineProps<{
- {{ errors[id].message }} + {{ errors[id]?.message }}
diff --git a/app/pages/(features)/org-src/unit/add.vue b/app/pages/(features)/org-src/unit/add.vue new file mode 100644 index 00000000..195f4b24 --- /dev/null +++ b/app/pages/(features)/org-src/unit/add.vue @@ -0,0 +1,41 @@ + + + diff --git a/app/pages/(features)/org-src/unit/index.vue b/app/pages/(features)/org-src/unit/index.vue new file mode 100644 index 00000000..40bd09be --- /dev/null +++ b/app/pages/(features)/org-src/unit/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/app/types/error.ts b/app/types/error.ts index e1405b0d..78b4ed50 100644 --- a/app/types/error.ts +++ b/app/types/error.ts @@ -11,7 +11,7 @@ export interface XError { /** Nilai yang diberikan (untuk validasi) */ givenVal?: string /** Path field yang error (untuk form validation) */ - path?: (string | number)[] + path?: readonly (string | number)[] /** Properties tambahan lainnya */ [key: string]: any }