in aws-core-ui/src/Hooks/useExternalIds.tsx [24:59]
export default function useExternalIds(config: Config) {
const [error, setError] = React.useState<string | undefined>();
const [externalId, setExternalId] = React.useState<string | undefined>();
const [isLoading, setIsLoading] = React.useState(true);
const fetchExternalId = React.useCallback(async () => {
const postUrl = config.externalIdsControllerUrl;
const parameters = {
projectId: config.projectId,
[config.externalIdsConnectionParam]: config.connectionId,
};
const queryComponents = new URLSearchParams(parameters).toString();
const response = await post(`${postUrl}?${queryComponents}`);
return JSON.parse(response);
}, [
config.externalIdsControllerUrl,
config.projectId,
config.externalIdsConnectionParam,
config.connectionId,
]);
React.useEffect(() => {
setIsLoading(true);
fetchExternalId()
.then((newId) => setExternalId(newId))
.catch((err: unknown) => setError(errorMessage(err)))
.finally(() => setIsLoading(false));
}, [fetchExternalId]);
return {
externalId,
error,
isLoading,
};
}