From fabfcdd9d5475935413842e2fb876209063b1ecc Mon Sep 17 00:00:00 2001 From: Rohan Chakraborty Date: Mon, 27 Apr 2026 03:12:28 +0530 Subject: [PATCH 1/9] fix: update service accounts --- .../components/add-service-account-dialog.tsx | 11 +- .../delete-service-account-dialog.module.css | 3 + .../delete-service-account-dialog.tsx | 9 +- .../manage-project-access-dialog.tsx | 24 +++- .../components/projects-cell.module.css | 11 ++ .../components/projects-cell.tsx | 33 +++-- .../components/revoke-token-dialog.module.css | 3 + .../components/revoke-token-dialog.tsx | 7 +- .../service-account-columns.module.css | 11 ++ .../components/service-account-columns.tsx | 15 +- .../hooks/useServiceUserTokens.ts | 130 ++++++++++++++++++ .../service-account-details-view.module.css | 36 +++-- .../service-account-details-view.tsx | 67 ++++++--- .../service-accounts-view.module.css | 4 + .../service-accounts-view.tsx | 31 ++++- 15 files changed, 326 insertions(+), 69 deletions(-) create mode 100644 web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.module.css create mode 100644 web/sdk/react/views-new/service-accounts/components/projects-cell.module.css create mode 100644 web/sdk/react/views-new/service-accounts/components/revoke-token-dialog.module.css create mode 100644 web/sdk/react/views-new/service-accounts/components/service-account-columns.module.css create mode 100644 web/sdk/react/views-new/service-accounts/hooks/useServiceUserTokens.ts diff --git a/web/sdk/react/views-new/service-accounts/components/add-service-account-dialog.tsx b/web/sdk/react/views-new/service-accounts/components/add-service-account-dialog.tsx index 84f376bbf..fc7cdb71e 100644 --- a/web/sdk/react/views-new/service-accounts/components/add-service-account-dialog.tsx +++ b/web/sdk/react/views-new/service-accounts/components/add-service-account-dialog.tsx @@ -39,6 +39,7 @@ import { import { PERMISSIONS } from '../../../../utils'; import { useFrontier } from '../../../contexts/FrontierContext'; import { useTerminology } from '../../../hooks/useTerminology'; +import { cacheFreshServiceUserToken } from '../hooks/useServiceUserTokens'; const DEFAULT_KEY_NAME = 'Initial Generated Key'; @@ -99,7 +100,7 @@ export function AddServiceAccountDialog({ withMemberCount: false }), { - enabled: Boolean(orgId) + enabled: Boolean(orgId), } ); @@ -189,6 +190,14 @@ export function AddServiceAccountDialog({ }) ); + if (tokenResponse.token) { + cacheFreshServiceUserToken( + queryClient, + serviceUserId, + tokenResponse.token + ); + } + toastManager.add({ title: 'Service account created', type: 'success' }); handle.close(); reset(); diff --git a/web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.module.css b/web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.module.css new file mode 100644 index 000000000..6742c54f4 --- /dev/null +++ b/web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.module.css @@ -0,0 +1,3 @@ +.body { + border-bottom: none !important; +} diff --git a/web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.tsx b/web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.tsx index 57f2c8e65..f2eb2291c 100644 --- a/web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.tsx +++ b/web/sdk/react/views-new/service-accounts/components/delete-service-account-dialog.tsx @@ -17,6 +17,7 @@ import { } from '@raystack/apsara-v1'; import { useFrontier } from '../../../contexts/FrontierContext'; import { useQueryClient } from '@tanstack/react-query'; +import styles from './delete-service-account-dialog.module.css'; export type DeleteServiceAccountPayload = { serviceAccountId: string }; @@ -76,11 +77,9 @@ export function DeleteServiceAccountDialog({ handle, refetch }: DeleteServiceAcc {({ payload: rawPayload }) => { const payload = rawPayload as DeleteServiceAccountPayload | undefined; return ( - - + + Delete Service Account - - This action is irreversible and may result in the deletion of all keys associated with this account. Are you sure you want to @@ -109,7 +108,7 @@ export function DeleteServiceAccountDialog({ handle, refetch }: DeleteServiceAcc loading={isLoading} loaderText="Deleting..." > - Yes, Do it + Delete diff --git a/web/sdk/react/views-new/service-accounts/components/manage-project-access-dialog.tsx b/web/sdk/react/views-new/service-accounts/components/manage-project-access-dialog.tsx index 2860c4780..ad1d230f1 100644 --- a/web/sdk/react/views-new/service-accounts/components/manage-project-access-dialog.tsx +++ b/web/sdk/react/views-new/service-accounts/components/manage-project-access-dialog.tsx @@ -55,6 +55,10 @@ function getColumns({ id: 'checkbox', accessorKey: 'id', enableSorting: false, + styles: { + cell: { width: '40px', minWidth: '40px', maxWidth: '40px' }, + header: { width: '40px', minWidth: '40px', maxWidth: '40px' } + }, cell: ({ getValue }) => { const projectId = getValue() as string; const entry = permMap[projectId]; @@ -63,7 +67,7 @@ function getColumns({ return ( {isLoading ? ( - + ) : ( { const projectId = getValue() as string; const entry = permMap[projectId]; const isChecked = entry?.value ?? false; + const isLoading = entry?.isLoading ?? false; const roleId = entry?.roleId || PERMISSIONS.RoleProjectViewer; return (