From 99ce08a68110f42eec9d4558069b14e5a0bce196 Mon Sep 17 00:00:00 2001 From: Shreyag02 Date: Fri, 3 Jul 2026 15:43:27 +0530 Subject: [PATCH 1/2] fix(admin): add skeleton loader to invite-user Org select --- .../details/layout/invite-users-dialog.tsx | 51 ++--- .../views/users/list/invite-users.module.css | 8 - .../admin/views/users/list/invite-users.tsx | 189 +++++++++--------- 3 files changed, 122 insertions(+), 126 deletions(-) diff --git a/web/sdk/admin/views/organizations/details/layout/invite-users-dialog.tsx b/web/sdk/admin/views/organizations/details/layout/invite-users-dialog.tsx index 0f8b9b2b8..6f8c0930d 100644 --- a/web/sdk/admin/views/organizations/details/layout/invite-users-dialog.tsx +++ b/web/sdk/admin/views/organizations/details/layout/invite-users-dialog.tsx @@ -1,10 +1,9 @@ import { Button, Dialog, + Field, Flex, - Label, Select, - Text, TextArea, toastManager } from '@raystack/apsara'; @@ -109,6 +108,26 @@ export const InviteUsersDialog = ({ onOpenChange }: InviteUsersDialogProps) => { const isSubmitting = methods?.formState?.isSubmitting; const errors = methods?.formState?.errors; + + const values = methods.watch(['emails', 'role']); + + const isDisabled = useMemo(() => { + const [emails, role] = values; + const emailValue = Array.isArray(emails) + ? emails.join(',') + : ((emails as string) ?? ''); + const emailList = emailValue + .split(',') + .map(e => e.trim()) + .filter(str => str.length > 0); + return ( + emailList.length <= 0 || + !role || + isSubmitting || + Boolean(errors?.emails) + ); + }, [isSubmitting, values, errors?.emails]); + return ( @@ -119,10 +138,9 @@ export const InviteUsersDialog = ({ onOpenChange }: InviteUsersDialogProps) => { - - + { ); }} /> - {errors?.emails?.message || errors?.emails?.length ? ( - - {errors?.emails?.message || errors?.emails?.[0]?.message} - - ) : null} - + - - + { ); }} /> - - {errors?.role?.message && ( - - {errors?.role?.message} - - )} - +