import { Button } from '@/components/ui/button'; import { SelectContent, SelectItem } from '@/components/ui/select'; import { GET_CREDENTIAL_3RD } from '@/domains/recorder/schema/credential3rd'; import { type Credential3rdTypeEnum, type GetCredential3rdQuery, type GetCredential3rdQueryVariables, OrderByEnum, } from '@/infra/graphql/gql/graphql'; import { useQuery } from '@apollo/client'; import { AlertCircle, Loader2, RefreshCw } from 'lucide-react'; import type { ComponentProps } from 'react'; export interface Credential3rdSelectContentProps extends ComponentProps { credentialType: Credential3rdTypeEnum; } export function Credential3rdSelectContent({ credentialType, ...props }: Credential3rdSelectContentProps) { const { data, loading, error, refetch } = useQuery< GetCredential3rdQuery, GetCredential3rdQueryVariables >(GET_CREDENTIAL_3RD, { fetchPolicy: 'cache-and-network', nextFetchPolicy: 'cache-and-network', variables: { filters: { credentialType: { eq: credentialType, }, }, orderBy: { createdAt: OrderByEnum.Desc, }, pagination: { page: { page: 0, limit: 100, }, }, }, }); const credentials = data?.credential3rd?.nodes ?? []; return ( {loading && (
Loading...
)} {error && (
Failed to load credentials
)} {!loading && !error && (credentials.length === 0 ? (
No credentials found
) : ( credentials.map((credential) => ( {credential.username} )) ))}
); }