UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

45 lines 1.6 kB
import { useState, useCallback } from "react"; import useAxiosPrivate from "../../config/useAxiosPrivate"; import useProject from "../projects/useProject"; function useOAuthIdentities() { const { projectId } = useProject(); const axios = useAxiosPrivate(); const [identities, setIdentities] = useState([]); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const fetchIdentities = useCallback(async () => { if (!projectId) return; setIsLoading(true); setError(null); try { const response = await axios.get(`/${projectId}/oauth/identities`); setIdentities(response.data.identities); } catch (err) { setError(err.response?.data?.error || err.message); } finally { setIsLoading(false); } }, [projectId, axios]); const unlinkIdentity = useCallback(async ({ identityId }) => { if (!projectId) return; setIsLoading(true); setError(null); try { await axios.delete(`/${projectId}/oauth/identities/${identityId}`); setIdentities((prev) => prev.filter((i) => i.id !== identityId)); } catch (err) { setError(err.response?.data?.error || err.message); } finally { setIsLoading(false); } }, [projectId, axios]); return { identities, fetchIdentities, unlinkIdentity, isLoading, error }; } export default useOAuthIdentities; //# sourceMappingURL=useOAuthIdentities.js.map