UNPKG

@replyke/core

Version:

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

50 lines 1.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = require("react"); const useAxiosPrivate_1 = __importDefault(require("../../config/useAxiosPrivate")); const useProject_1 = __importDefault(require("../projects/useProject")); function useOAuthIdentities() { const { projectId } = (0, useProject_1.default)(); const axios = (0, useAxiosPrivate_1.default)(); const [identities, setIdentities] = (0, react_1.useState)([]); const [isLoading, setIsLoading] = (0, react_1.useState)(false); const [error, setError] = (0, react_1.useState)(null); const fetchIdentities = (0, react_1.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 = (0, react_1.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 }; } exports.default = useOAuthIdentities; //# sourceMappingURL=useOAuthIdentities.js.map