import { GraphQLClient, gql } from "graphql-request"; import { useEffect, useState } from "react"; interface Resource { id: string; name: string; description?: string; indicator: string; scopes: string[]; } const client = new GraphQLClient(process.env.NEXT_PUBLIC_APP_URL + "/api/graphql"); export default function ResourcesSelector({ selectedResource, onChange, }: { selectedResource: string | null; onChange: (id: string | null) => void; }) { const [resources, setResources] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { client .request<{ resources: Resource[] }>(gql` { resources { id name indicator } } `) .then(data => { setResources(data.resources); setLoading(false); }) .catch(() => { setError("Erreur lors du chargement des ressources"); setLoading(false); }); }, []); if (loading) return
Chargement des ressources...
; if (error) return
{error}
; return ( ); }