Skip to content

refactor(iam): align roles pattern and fix eslint - #232

Merged
dimpram101 merged 1 commit into
developmentfrom
fix/role-group-eslint
Jul 28, 2026
Merged

refactor(iam): align roles pattern and fix eslint#232
dimpram101 merged 1 commit into
developmentfrom
fix/role-group-eslint

Conversation

@yusmanata

Copy link
Copy Markdown
Contributor

Memperbaiki puluhan ESLint error di modul IAM Access (Role & Role Group) yang muncul setelah penerapan eslint-local-rules, memigrasi komponen UI ke arsitektur terbaru.

Perubahan

ESLint & TypeScript Fixes

  • Semua File — menyematkan explicit return type secara menyeluruh pada semua fungsi, terutama di index.vue dan members.vue.
  • useRoleForm.ts & useRoleGroupForm.ts — memperbaiki penanganan mutations sesuai linter; menyematkan isLoading.value = true sebelum blok try (clean up), serta menambahkan toast.error(errorMessage) di setiap blok catch.
  • useRolePermission.ts & Lainnya — memberantas peringatan tipe data dengan membuang inline-casting usang (as any), serta menghapus parameter generic type ganda yang redundan di panggilan useAsyncData.
  • Perubahan State — mengubah reaktif tipe boolean sesuai linter menjadi isChangeGroupModalOpen, isPermissionModalOpen, dsb.

Functional Fixes

  • roles.ts (Types) — membalut tipe dasar respons dengan ApiResponseSchema(...) agar representasi kembalian tipe secara client-side (di seluruh aplikasi) konsisten mereturn pola { data: { result: [...] } }.
  • Pages edit.vue — menghapus penggunaan siklus onMounted pada form edit dan mengandalkan watch ber-param { immediate: true } pada turunan composable detail (Single data fetching).
  • Semua use[Name]List.ts — mengatasi bug caching static bawaan Nuxt dengan menyisipkan ID dinamis useId() ke dalam properti kunci useAsyncData. Hal ini memungkinkan daftar tabel di-refresh (fetching) otomatis ketika redirect balik dari halaman create.
  • Semua index.vue — menyingkirkan pendefinisian variabel sisa (query/page) di komponen UI (view) dan memindahkannya seutuhnya ke composable (Separation of Concern).

UI/UX

  • Komponen Form & Modal — Memigrasikan semua entri data yang memakai SearchableSelect lawas menjadi SearchSelect yang lebih efisien dan modern (termasuk pada form relasional Role Group).
  • Data Table — Mengubah ServerDataTable (V1) ke ServerDataTableV2. Prop sisa warisan V1 seperti filter-container="#filterSearch", :with-visibility-toggle, dan @update:search telah dibersihkan demi kepatuhan props.
  • RolePermissionModal.vue — melakukan restrukturisasi CSS grid/flex; membungkus sel dan header tombol Revoke dalam div rata tengah (flex justify-center, text-center) sehingga kata "Aksi" sejajar sempurna dengan tombol aksinya.

Checklist

  • ESLint: 0 errors, 0 warnings (npx eslint pada app/pages/iam, app/components/iam, app/composables/iam)
  • TypeScript build typecheck lolos (Semua generic tipe API tersinkronisasi)
  • Pembaruan pola UI sudah diverifikasi dan sama persis dengan benchmark Procurement.

Tampilan

image

Closes #231

@yusmanata
yusmanata requested a review from dimpram101 July 27, 2026 11:58
@yusmanata yusmanata self-assigned this Jul 27, 2026
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
erp-web-frontend Ready Ready Preview, Comment Jul 27, 2026 11:58am
erp-web-frontend-3xc2 Ready Ready Preview, Comment Jul 27, 2026 11:58am

@dimpram101
dimpram101 merged commit b080a23 into development Jul 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix Eslint Error and Standardize Role and Role Group Modules

2 participants