UNPKG

@replyke/core

Version:

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

41 lines 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useSearchSpaces; const react_1 = require("react"); const useProject_1 = __importDefault(require("../projects/useProject")); const useAxiosPrivate_1 = __importDefault(require("../../config/useAxiosPrivate")); const handleError_1 = require("../../utils/handleError"); function useSearchSpaces() { const { projectId } = (0, useProject_1.default)(); const axios = (0, useAxiosPrivate_1.default)(); const [results, setResults] = (0, react_1.useState)([]); const [loading, setLoading] = (0, react_1.useState)(false); const [error, setError] = (0, react_1.useState)(null); const search = (0, react_1.useCallback)(async ({ query, limit }) => { if (!projectId) return; if (!query.trim()) return; setLoading(true); setError(null); try { const response = await axios.post(`/${projectId}/search/spaces`, { query, limit }); setResults(response.data); } catch (err) { setError((0, handleError_1.handleError)(err, "Failed to search spaces")); } finally { setLoading(false); } }, [projectId, axios]); const reset = (0, react_1.useCallback)(() => { setResults([]); setError(null); }, []); return { results, loading, error, search, reset }; } //# sourceMappingURL=useSearchSpaces.js.map