diff --git a/web/sdk/admin/views/organizations/details/security/domains-list.tsx b/web/sdk/admin/views/organizations/details/security/domains-list.tsx
index 5c8f9999d..e20c80042 100644
--- a/web/sdk/admin/views/organizations/details/security/domains-list.tsx
+++ b/web/sdk/admin/views/organizations/details/security/domains-list.tsx
@@ -3,12 +3,12 @@ import {
Button,
Flex,
IconButton,
+ Skeleton,
Text,
toastManager,
} from "@raystack/apsara";
import styles from "./security.module.css";
import { CheckCircledIcon, TrashIcon } from "@radix-ui/react-icons";
-import Skeleton from "react-loading-skeleton";
import { useContext, useState } from "react";
import { useMutation, createConnectQueryKey, useTransport } from "@connectrpc/connect-query";
import { useQueryClient } from "@tanstack/react-query";
@@ -23,7 +23,7 @@ interface DeleteDomainDialogProps {
const DeleteDomainDialog = ({
domain,
}: DeleteDomainDialogProps) => {
- const {organization} = useContext(OrganizationContext);
+ const { organization } = useContext(OrganizationContext);
const [isDialogOpen, setIsDialogOpen] = useState(false);
const queryClient = useQueryClient();
const transport = useTransport();
@@ -133,21 +133,49 @@ const DomainItem = ({ domain }: DomainItemProps) => {
interface DomainsListProps {
isLoading: boolean;
domains: Domain[];
+ error?: Error | null;
+ onRetry: () => void;
}
export const DomainsList = ({
isLoading,
domains = [],
+ error,
+ onRetry,
}: DomainsListProps) => {
+ if (!isLoading && error) {
+ return (
+
+
+ Couldn't load email domains
+
+
+
+ );
+ }
+
return isLoading ? (
-
- {[...Array(3)].map((_, index) => (
-
- ))}
+
+
+
) : domains.length ? (
@@ -158,5 +186,15 @@ export const DomainsList = ({
/>
))}
- ) : null;
+ ) : (
+
+
+ No allowed email domains added yet
+
+
+ );
};
diff --git a/web/sdk/admin/views/organizations/details/security/index.tsx b/web/sdk/admin/views/organizations/details/security/index.tsx
index 4c1ca24e0..64cc8bfa1 100644
--- a/web/sdk/admin/views/organizations/details/security/index.tsx
+++ b/web/sdk/admin/views/organizations/details/security/index.tsx
@@ -55,7 +55,7 @@ const AddDomainSection = () => {
export const OrganizationSecurity = () => {
const { organization } = useContext(OrganizationContext);
- const { data: domains, isLoading, error } = useQuery(
+ const { data: domains, isLoading, error, refetch } = useQuery(
FrontierServiceQueries.listOrganizationDomains,
create(ListOrganizationDomainsRequestSchema, {
orgId: organization?.id
@@ -87,6 +87,8 @@ export const OrganizationSecurity = () => {
refetch()}
/>