diff --git a/apps/events/src/components/events/events.tsx b/apps/events/src/components/events/events.tsx index c4b9cc66..32f3ac74 100644 --- a/apps/events/src/components/events/events.tsx +++ b/apps/events/src/components/events/events.tsx @@ -3,8 +3,8 @@ import { preparePublish, publishOps, useCreateEntity, + useEntities, useHypergraphApp, - useQuery, useSpaces, } from '@graphprotocol/hypergraph-react'; import { useState } from 'react'; @@ -14,7 +14,7 @@ import { Input } from '../ui/input'; import { Label } from '../ui/label'; export const Events = () => { - const { data: eventsLocalData } = useQuery(Event, { mode: 'private' }); + const { data: eventsLocalData } = useEntities(Event, { mode: 'private' }); const createEvent = useCreateEntity(Event); const { getSmartSessionClient } = useHypergraphApp(); const { data: spaces } = useSpaces({ mode: 'public' }); diff --git a/apps/events/src/components/playground.tsx b/apps/events/src/components/playground.tsx index 9cffe29a..e00b232e 100644 --- a/apps/events/src/components/playground.tsx +++ b/apps/events/src/components/playground.tsx @@ -1,10 +1,10 @@ -import { _useDeleteEntityPublic, useHypergraphApp, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { _useDeleteEntityPublic, useEntities, useHypergraphApp, useSpace } from '@graphprotocol/hypergraph-react'; import { useState } from 'react'; import { Event } from '../schema'; import { Button } from './ui/button'; export const Playground = ({ spaceId }: { spaceId: string }) => { - const { data, isLoading, isError, invalidEntities } = useQuery(Event, { + const { data, isLoading, isError, invalidEntities } = useEntities(Event, { mode: 'public', include: { sponsors: { diff --git a/apps/events/src/components/projects.tsx b/apps/events/src/components/projects.tsx index 908343e4..2f11795b 100644 --- a/apps/events/src/components/projects.tsx +++ b/apps/events/src/components/projects.tsx @@ -1,8 +1,8 @@ -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Project } from '../schema'; export const Projects = ({ spaceId }: { spaceId: string }) => { - const { data, isLoading, isError } = useQuery(Project, { + const { data, isLoading, isError } = useEntities(Project, { mode: 'public', // include: { // sponsors: { diff --git a/apps/events/src/components/todo/todos-local.tsx b/apps/events/src/components/todo/todos-local.tsx index f1428471..8926dcb8 100644 --- a/apps/events/src/components/todo/todos-local.tsx +++ b/apps/events/src/components/todo/todos-local.tsx @@ -1,11 +1,11 @@ -import { useHardDeleteEntity, useQuery, useUpdateEntity } from '@graphprotocol/hypergraph-react'; +import { useEntities, useHardDeleteEntity, useUpdateEntity } from '@graphprotocol/hypergraph-react'; import { Todo2 } from '../../schema'; import { Button } from '../ui/button'; export const TodosLocal = () => { const updateEntity = useUpdateEntity(Todo2); const hardDeleteEntity = useHardDeleteEntity(); - const { data: todosLocalData, deleted: deletedTodosLocalData } = useQuery(Todo2, { mode: 'private' }); + const { data: todosLocalData, deleted: deletedTodosLocalData } = useEntities(Todo2, { mode: 'private' }); return ( <> diff --git a/apps/events/src/components/todo/todos-public.tsx b/apps/events/src/components/todo/todos-public.tsx index 42d4473d..ad69b52f 100644 --- a/apps/events/src/components/todo/todos-public.tsx +++ b/apps/events/src/components/todo/todos-public.tsx @@ -1,4 +1,10 @@ -import { _generateDeleteOps, publishOps, useHypergraphApp, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { + _generateDeleteOps, + publishOps, + useEntities, + useHypergraphApp, + useSpace, +} from '@graphprotocol/hypergraph-react'; import { Todo2 } from '../../schema'; import { Spinner } from '../spinner'; import { Button } from '../ui/button'; @@ -10,7 +16,7 @@ export const TodosPublic = () => { data: dataPublic, isLoading: isLoadingPublic, isError: isErrorPublic, - } = useQuery(Todo2, { + } = useEntities(Todo2, { mode: 'public', include: { assignees: {} }, }); diff --git a/apps/events/src/components/todos-read-only-filter.tsx b/apps/events/src/components/todos-read-only-filter.tsx index 7b3b31ca..29fc6d13 100644 --- a/apps/events/src/components/todos-read-only-filter.tsx +++ b/apps/events/src/components/todos-read-only-filter.tsx @@ -1,9 +1,9 @@ -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Todo } from '../schema'; export const TodosReadOnlyFilter = () => { - const { data: todosCompleted } = useQuery(Todo, { mode: 'private', filter: { completed: { is: true } } }); - const { data: todosNotCompleted } = useQuery(Todo, { + const { data: todosCompleted } = useEntities(Todo, { mode: 'private', filter: { completed: { is: true } } }); + const { data: todosNotCompleted } = useEntities(Todo, { mode: 'private', filter: { completed: { is: false } }, }); diff --git a/apps/events/src/components/todos-read-only.tsx b/apps/events/src/components/todos-read-only.tsx index 46eb7a1c..abf5cbdd 100644 --- a/apps/events/src/components/todos-read-only.tsx +++ b/apps/events/src/components/todos-read-only.tsx @@ -1,8 +1,8 @@ -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Todo } from '../schema'; export const TodosReadOnly = () => { - const { data: todos } = useQuery(Todo, { mode: 'private' }); + const { data: todos } = useEntities(Todo, { mode: 'private' }); return ( <> diff --git a/apps/events/src/components/todos.tsx b/apps/events/src/components/todos.tsx index bda38ed6..f5ba156d 100644 --- a/apps/events/src/components/todos.tsx +++ b/apps/events/src/components/todos.tsx @@ -1,7 +1,7 @@ import { useCreateEntity, useDeleteEntity, - useQuery, + useEntities, useRemoveRelation, useSpace, useUpdateEntity, @@ -13,12 +13,12 @@ import { Button } from './ui/button'; import { Input } from './ui/input'; export const Todos = () => { - const { data: todos } = useQuery(Todo, { + const { data: todos } = useEntities(Todo, { mode: 'private', include: { assignees: {} }, // filter: { or: [{ name: { startsWith: 'aa' } }, { name: { is: 'sdasd' } }] }, }); - const { data: users } = useQuery(User, { mode: 'private' }); + const { data: users } = useEntities(User, { mode: 'private' }); const { ready: spaceReady } = useSpace({ mode: 'private' }); const createEntity = useCreateEntity(Todo); const updateEntity = useUpdateEntity(Todo); diff --git a/apps/events/src/components/todos2.tsx b/apps/events/src/components/todos2.tsx index 85ff66b2..8b7aefd5 100644 --- a/apps/events/src/components/todos2.tsx +++ b/apps/events/src/components/todos2.tsx @@ -1,4 +1,10 @@ -import { useCreateEntity, useDeleteEntity, useQuery, useSpace, useUpdateEntity } from '@graphprotocol/hypergraph-react'; +import { + useCreateEntity, + useDeleteEntity, + useEntities, + useSpace, + useUpdateEntity, +} from '@graphprotocol/hypergraph-react'; import { useEffect, useState } from 'react'; import Select from 'react-select'; import { cn } from '@/lib/utils'; @@ -15,13 +21,13 @@ export const Todos2 = () => { isLoading: isLoadingTodos, isError: isErrorTodos, // preparePublish: preparePublishTodos, - } = useQuery(Todo2, { mode: 'private', include: { assignees: {} } }); + } = useEntities(Todo2, { mode: 'private', include: { assignees: {} } }); const { data: dataUsers, isLoading: isLoadingUsers, isError: isErrorUsers, // preparePublish: preparePublishUsers, - } = useQuery(User, { mode: 'private' }); + } = useEntities(User, { mode: 'private' }); const { ready: spaceReady } = useSpace({ mode: 'private' }); const createTodo = useCreateEntity(Todo2); const updateTodo = useUpdateEntity(Todo2); diff --git a/apps/events/src/components/users.tsx b/apps/events/src/components/users.tsx index 4791e24e..dd0b35a6 100644 --- a/apps/events/src/components/users.tsx +++ b/apps/events/src/components/users.tsx @@ -1,4 +1,4 @@ -import { useCreateEntity, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { useCreateEntity, useEntities, useSpace } from '@graphprotocol/hypergraph-react'; import { useState } from 'react'; import { User } from '../schema.js'; import { Button } from './ui/button.js'; @@ -6,7 +6,7 @@ import { Input } from './ui/input.js'; import { UserEntry } from './user-entry.js'; export const Users = () => { - const { data: users } = useQuery(User, { mode: 'private' }); + const { data: users } = useEntities(User, { mode: 'private' }); const { ready: spaceReady } = useSpace({ mode: 'private' }); const createEntityNew = useCreateEntity(User); const [newUserName, setNewUserName] = useState(''); diff --git a/apps/events/src/components/users/users-local.tsx b/apps/events/src/components/users/users-local.tsx index 94594e12..f525a885 100644 --- a/apps/events/src/components/users/users-local.tsx +++ b/apps/events/src/components/users/users-local.tsx @@ -1,10 +1,10 @@ -import { useHardDeleteEntity, useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities, useHardDeleteEntity } from '@graphprotocol/hypergraph-react'; import { User } from '../../schema'; import { Button } from '../ui/button'; export const UsersLocal = () => { const hardDeleteEntity = useHardDeleteEntity(); - const { data: usersLocalData, deleted: deletedUsersLocalData } = useQuery(User, { mode: 'private' }); + const { data: usersLocalData, deleted: deletedUsersLocalData } = useEntities(User, { mode: 'private' }); return ( <> diff --git a/apps/events/src/components/users/users-merged.tsx b/apps/events/src/components/users/users-merged.tsx index e5ec5642..a8e217c6 100644 --- a/apps/events/src/components/users/users-merged.tsx +++ b/apps/events/src/components/users/users-merged.tsx @@ -1,10 +1,10 @@ -import { useDeleteEntity, useQuery } from '@graphprotocol/hypergraph-react'; +import { useDeleteEntity, useEntities } from '@graphprotocol/hypergraph-react'; import { User } from '../../schema'; import { Spinner } from '../spinner'; import { Button } from '../ui/button'; export const UsersMerged = () => { - const { data, isLoading, isError } = useQuery(User, { mode: 'private' }); + const { data, isLoading, isError } = useEntities(User, { mode: 'private' }); const deleteEntity = useDeleteEntity(); return ( diff --git a/apps/events/src/components/users/users-public.tsx b/apps/events/src/components/users/users-public.tsx index 7bfd9aad..73f08427 100644 --- a/apps/events/src/components/users/users-public.tsx +++ b/apps/events/src/components/users/users-public.tsx @@ -1,11 +1,21 @@ -import { _generateDeleteOps, publishOps, useHypergraphApp, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { + _generateDeleteOps, + publishOps, + useEntities, + useHypergraphApp, + useSpace, +} from '@graphprotocol/hypergraph-react'; import { User } from '../../schema'; import { Spinner } from '../spinner'; import { Button } from '../ui/button'; export const UsersPublic = () => { const { id: spaceId } = useSpace({ mode: 'public' }); - const { data: dataPublic, isLoading: isLoadingPublic, isError: isErrorPublic } = useQuery(User, { mode: 'public' }); + const { + data: dataPublic, + isLoading: isLoadingPublic, + isError: isErrorPublic, + } = useEntities(User, { mode: 'public' }); const { getSmartSessionClient } = useHypergraphApp(); return ( <> diff --git a/apps/privy-login-example/src/components/events/events.tsx b/apps/privy-login-example/src/components/events/events.tsx index c4b9cc66..32f3ac74 100644 --- a/apps/privy-login-example/src/components/events/events.tsx +++ b/apps/privy-login-example/src/components/events/events.tsx @@ -3,8 +3,8 @@ import { preparePublish, publishOps, useCreateEntity, + useEntities, useHypergraphApp, - useQuery, useSpaces, } from '@graphprotocol/hypergraph-react'; import { useState } from 'react'; @@ -14,7 +14,7 @@ import { Input } from '../ui/input'; import { Label } from '../ui/label'; export const Events = () => { - const { data: eventsLocalData } = useQuery(Event, { mode: 'private' }); + const { data: eventsLocalData } = useEntities(Event, { mode: 'private' }); const createEvent = useCreateEntity(Event); const { getSmartSessionClient } = useHypergraphApp(); const { data: spaces } = useSpaces({ mode: 'public' }); diff --git a/apps/privy-login-example/src/components/playground.tsx b/apps/privy-login-example/src/components/playground.tsx index a4f0ffed..88a46154 100644 --- a/apps/privy-login-example/src/components/playground.tsx +++ b/apps/privy-login-example/src/components/playground.tsx @@ -1,10 +1,10 @@ -import { _useDeleteEntityPublic, useHypergraphApp, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { _useDeleteEntityPublic, useEntities, useHypergraphApp, useSpace } from '@graphprotocol/hypergraph-react'; import { useState } from 'react'; import { Event } from '../schema'; import { Button } from './ui/button'; export const Playground = ({ spaceId }: { spaceId: string }) => { - const { data, isLoading, isError } = useQuery(Event, { + const { data, isLoading, isError } = useEntities(Event, { mode: 'public', include: { sponsors: { diff --git a/apps/privy-login-example/src/components/todo/todos-local.tsx b/apps/privy-login-example/src/components/todo/todos-local.tsx index f1428471..8926dcb8 100644 --- a/apps/privy-login-example/src/components/todo/todos-local.tsx +++ b/apps/privy-login-example/src/components/todo/todos-local.tsx @@ -1,11 +1,11 @@ -import { useHardDeleteEntity, useQuery, useUpdateEntity } from '@graphprotocol/hypergraph-react'; +import { useEntities, useHardDeleteEntity, useUpdateEntity } from '@graphprotocol/hypergraph-react'; import { Todo2 } from '../../schema'; import { Button } from '../ui/button'; export const TodosLocal = () => { const updateEntity = useUpdateEntity(Todo2); const hardDeleteEntity = useHardDeleteEntity(); - const { data: todosLocalData, deleted: deletedTodosLocalData } = useQuery(Todo2, { mode: 'private' }); + const { data: todosLocalData, deleted: deletedTodosLocalData } = useEntities(Todo2, { mode: 'private' }); return ( <> diff --git a/apps/privy-login-example/src/components/todo/todos-public.tsx b/apps/privy-login-example/src/components/todo/todos-public.tsx index 42d4473d..ad69b52f 100644 --- a/apps/privy-login-example/src/components/todo/todos-public.tsx +++ b/apps/privy-login-example/src/components/todo/todos-public.tsx @@ -1,4 +1,10 @@ -import { _generateDeleteOps, publishOps, useHypergraphApp, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { + _generateDeleteOps, + publishOps, + useEntities, + useHypergraphApp, + useSpace, +} from '@graphprotocol/hypergraph-react'; import { Todo2 } from '../../schema'; import { Spinner } from '../spinner'; import { Button } from '../ui/button'; @@ -10,7 +16,7 @@ export const TodosPublic = () => { data: dataPublic, isLoading: isLoadingPublic, isError: isErrorPublic, - } = useQuery(Todo2, { + } = useEntities(Todo2, { mode: 'public', include: { assignees: {} }, }); diff --git a/apps/privy-login-example/src/components/todos-read-only-filter.tsx b/apps/privy-login-example/src/components/todos-read-only-filter.tsx index 7b3b31ca..29fc6d13 100644 --- a/apps/privy-login-example/src/components/todos-read-only-filter.tsx +++ b/apps/privy-login-example/src/components/todos-read-only-filter.tsx @@ -1,9 +1,9 @@ -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Todo } from '../schema'; export const TodosReadOnlyFilter = () => { - const { data: todosCompleted } = useQuery(Todo, { mode: 'private', filter: { completed: { is: true } } }); - const { data: todosNotCompleted } = useQuery(Todo, { + const { data: todosCompleted } = useEntities(Todo, { mode: 'private', filter: { completed: { is: true } } }); + const { data: todosNotCompleted } = useEntities(Todo, { mode: 'private', filter: { completed: { is: false } }, }); diff --git a/apps/privy-login-example/src/components/todos-read-only.tsx b/apps/privy-login-example/src/components/todos-read-only.tsx index 46eb7a1c..abf5cbdd 100644 --- a/apps/privy-login-example/src/components/todos-read-only.tsx +++ b/apps/privy-login-example/src/components/todos-read-only.tsx @@ -1,8 +1,8 @@ -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Todo } from '../schema'; export const TodosReadOnly = () => { - const { data: todos } = useQuery(Todo, { mode: 'private' }); + const { data: todos } = useEntities(Todo, { mode: 'private' }); return ( <> diff --git a/apps/privy-login-example/src/components/todos.tsx b/apps/privy-login-example/src/components/todos.tsx index bda38ed6..f5ba156d 100644 --- a/apps/privy-login-example/src/components/todos.tsx +++ b/apps/privy-login-example/src/components/todos.tsx @@ -1,7 +1,7 @@ import { useCreateEntity, useDeleteEntity, - useQuery, + useEntities, useRemoveRelation, useSpace, useUpdateEntity, @@ -13,12 +13,12 @@ import { Button } from './ui/button'; import { Input } from './ui/input'; export const Todos = () => { - const { data: todos } = useQuery(Todo, { + const { data: todos } = useEntities(Todo, { mode: 'private', include: { assignees: {} }, // filter: { or: [{ name: { startsWith: 'aa' } }, { name: { is: 'sdasd' } }] }, }); - const { data: users } = useQuery(User, { mode: 'private' }); + const { data: users } = useEntities(User, { mode: 'private' }); const { ready: spaceReady } = useSpace({ mode: 'private' }); const createEntity = useCreateEntity(Todo); const updateEntity = useUpdateEntity(Todo); diff --git a/apps/privy-login-example/src/components/todos2.tsx b/apps/privy-login-example/src/components/todos2.tsx index 19147b10..2452edff 100644 --- a/apps/privy-login-example/src/components/todos2.tsx +++ b/apps/privy-login-example/src/components/todos2.tsx @@ -1,4 +1,10 @@ -import { useCreateEntity, useDeleteEntity, useQuery, useSpace, useUpdateEntity } from '@graphprotocol/hypergraph-react'; +import { + useCreateEntity, + useDeleteEntity, + useEntities, + useSpace, + useUpdateEntity, +} from '@graphprotocol/hypergraph-react'; import { useEffect, useState } from 'react'; import Select from 'react-select'; import { cn } from '@/lib/utils'; @@ -15,13 +21,13 @@ export const Todos2 = () => { isLoading: isLoadingTodos, isError: isErrorTodos, // preparePublish: preparePublishTodos, - } = useQuery(Todo2, { mode: 'private', include: { assignees: {} } }); + } = useEntities(Todo2, { mode: 'private', include: { assignees: {} } }); const { data: dataUsers, isLoading: isLoadingUsers, isError: isErrorUsers, // preparePublish: preparePublishUsers, - } = useQuery(User, { mode: 'private' }); + } = useEntities(User, { mode: 'private' }); const { ready: spaceReady } = useSpace({ mode: 'private' }); const createTodo = useCreateEntity(Todo2); const updateTodo = useUpdateEntity(Todo2); diff --git a/apps/privy-login-example/src/components/users.tsx b/apps/privy-login-example/src/components/users.tsx index 056109f6..ca6f4f10 100644 --- a/apps/privy-login-example/src/components/users.tsx +++ b/apps/privy-login-example/src/components/users.tsx @@ -1,4 +1,4 @@ -import { useCreateEntity, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { useCreateEntity, useEntities, useSpace } from '@graphprotocol/hypergraph-react'; import { useState } from 'react'; import { User } from '../schema.js'; import { Button } from './ui/button.js'; @@ -6,7 +6,7 @@ import { Input } from './ui/input.js'; import { UserEntry } from './user-entry.js'; export const Users = () => { - const { data: users } = useQuery(User, { mode: 'private' }); + const { data: users } = useEntities(User, { mode: 'private' }); const { ready: spaceReady } = useSpace({ mode: 'private' }); const createEntity = useCreateEntity(User); const [newUserName, setNewUserName] = useState(''); diff --git a/apps/privy-login-example/src/components/users/users-local.tsx b/apps/privy-login-example/src/components/users/users-local.tsx index 94594e12..f525a885 100644 --- a/apps/privy-login-example/src/components/users/users-local.tsx +++ b/apps/privy-login-example/src/components/users/users-local.tsx @@ -1,10 +1,10 @@ -import { useHardDeleteEntity, useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities, useHardDeleteEntity } from '@graphprotocol/hypergraph-react'; import { User } from '../../schema'; import { Button } from '../ui/button'; export const UsersLocal = () => { const hardDeleteEntity = useHardDeleteEntity(); - const { data: usersLocalData, deleted: deletedUsersLocalData } = useQuery(User, { mode: 'private' }); + const { data: usersLocalData, deleted: deletedUsersLocalData } = useEntities(User, { mode: 'private' }); return ( <> diff --git a/apps/privy-login-example/src/components/users/users-merged.tsx b/apps/privy-login-example/src/components/users/users-merged.tsx index e5ec5642..a8e217c6 100644 --- a/apps/privy-login-example/src/components/users/users-merged.tsx +++ b/apps/privy-login-example/src/components/users/users-merged.tsx @@ -1,10 +1,10 @@ -import { useDeleteEntity, useQuery } from '@graphprotocol/hypergraph-react'; +import { useDeleteEntity, useEntities } from '@graphprotocol/hypergraph-react'; import { User } from '../../schema'; import { Spinner } from '../spinner'; import { Button } from '../ui/button'; export const UsersMerged = () => { - const { data, isLoading, isError } = useQuery(User, { mode: 'private' }); + const { data, isLoading, isError } = useEntities(User, { mode: 'private' }); const deleteEntity = useDeleteEntity(); return ( diff --git a/apps/privy-login-example/src/components/users/users-public.tsx b/apps/privy-login-example/src/components/users/users-public.tsx index 7bfd9aad..73f08427 100644 --- a/apps/privy-login-example/src/components/users/users-public.tsx +++ b/apps/privy-login-example/src/components/users/users-public.tsx @@ -1,11 +1,21 @@ -import { _generateDeleteOps, publishOps, useHypergraphApp, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { + _generateDeleteOps, + publishOps, + useEntities, + useHypergraphApp, + useSpace, +} from '@graphprotocol/hypergraph-react'; import { User } from '../../schema'; import { Spinner } from '../spinner'; import { Button } from '../ui/button'; export const UsersPublic = () => { const { id: spaceId } = useSpace({ mode: 'public' }); - const { data: dataPublic, isLoading: isLoadingPublic, isError: isErrorPublic } = useQuery(User, { mode: 'public' }); + const { + data: dataPublic, + isLoading: isLoadingPublic, + isError: isErrorPublic, + } = useEntities(User, { mode: 'public' }); const { getSmartSessionClient } = useHypergraphApp(); return ( <> diff --git a/apps/template-nextjs/Components/Space/PrivateSpace.tsx b/apps/template-nextjs/Components/Space/PrivateSpace.tsx index a4e68338..f9fe7edf 100644 --- a/apps/template-nextjs/Components/Space/PrivateSpace.tsx +++ b/apps/template-nextjs/Components/Space/PrivateSpace.tsx @@ -1,16 +1,16 @@ 'use client'; +import type { Entity } from '@graphprotocol/hypergraph'; import { HypergraphSpaceProvider, preparePublish, publishOps, useCreateEntity, + useEntities, useHypergraphApp, - useQuery, useSpace, useSpaces, } from '@graphprotocol/hypergraph-react'; -import type { Entity } from '@graphprotocol/hypergraph'; import { useState } from 'react'; import { Project } from '@/app/schema'; @@ -26,7 +26,7 @@ export function PrivateSpaceWrapper({ spaceid }: Readonly<{ spaceid: string }>) function PrivateSpace() { const { name, ready, id: spaceId } = useSpace({ mode: 'private' }); - const { data: projects } = useQuery(Project, { mode: 'private' }); + const { data: projects } = useEntities(Project, { mode: 'private' }); const { data: publicSpaces } = useSpaces({ mode: 'public' }); const [selectedSpace, setSelectedSpace] = useState(''); const createProject = useCreateEntity(Project); diff --git a/apps/template-nextjs/Components/Space/PublicSpace.tsx b/apps/template-nextjs/Components/Space/PublicSpace.tsx index 2e3eaafc..c05b94b1 100644 --- a/apps/template-nextjs/Components/Space/PublicSpace.tsx +++ b/apps/template-nextjs/Components/Space/PublicSpace.tsx @@ -1,6 +1,6 @@ 'use client'; -import { HypergraphSpaceProvider, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { HypergraphSpaceProvider, useEntities, useSpace } from '@graphprotocol/hypergraph-react'; import { Project } from '@/app/schema'; @@ -14,7 +14,7 @@ export function PublicSpaceWrapper({ spaceid }: Readonly<{ spaceid: string }>) { function PublicSpace() { const { ready, name, id: spaceId } = useSpace({ mode: 'public' }); - const { data: projects, isPending } = useQuery(Project, { mode: 'public' }); + const { data: projects, isPending } = useEntities(Project, { mode: 'public' }); if (!ready) { return ( diff --git a/apps/template-nextjs/app/explore-public-knowledge/assets/page.tsx b/apps/template-nextjs/app/explore-public-knowledge/assets/page.tsx index 75600eb3..9f9a9278 100644 --- a/apps/template-nextjs/app/explore-public-knowledge/assets/page.tsx +++ b/apps/template-nextjs/app/explore-public-knowledge/assets/page.tsx @@ -1,10 +1,10 @@ 'use client'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Asset } from '../../schema'; export default function ExploreAssetMarketPage() { - const { data: assets, isPending } = useQuery(Asset, { + const { data: assets, isPending } = useEntities(Asset, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-nextjs/app/explore-public-knowledge/dapps/page.tsx b/apps/template-nextjs/app/explore-public-knowledge/dapps/page.tsx index 9cf28a55..ae21fd4a 100644 --- a/apps/template-nextjs/app/explore-public-knowledge/dapps/page.tsx +++ b/apps/template-nextjs/app/explore-public-knowledge/dapps/page.tsx @@ -1,11 +1,11 @@ 'use client'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { GraphImage } from '../../../Components/GraphImage'; import { Dapp } from '../../schema'; export default function ExploreDappsPage() { - const { data: dapps, isPending } = useQuery(Dapp, { + const { data: dapps, isPending } = useEntities(Dapp, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-nextjs/app/explore-public-knowledge/investment-rounds/page.tsx b/apps/template-nextjs/app/explore-public-knowledge/investment-rounds/page.tsx index 2a6e3ede..a3883089 100644 --- a/apps/template-nextjs/app/explore-public-knowledge/investment-rounds/page.tsx +++ b/apps/template-nextjs/app/explore-public-knowledge/investment-rounds/page.tsx @@ -1,10 +1,10 @@ 'use client'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { InvestmentRound } from '../../schema'; export default function ExploreInvestmentRoundsPage() { - const { data: investmentRounds, isPending } = useQuery(InvestmentRound, { + const { data: investmentRounds, isPending } = useEntities(InvestmentRound, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-nextjs/app/explore-public-knowledge/projects/page.tsx b/apps/template-nextjs/app/explore-public-knowledge/projects/page.tsx index 6dab3b91..160b660d 100644 --- a/apps/template-nextjs/app/explore-public-knowledge/projects/page.tsx +++ b/apps/template-nextjs/app/explore-public-knowledge/projects/page.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { useState } from 'react'; import { GraphImage } from '../../../Components/GraphImage'; import { Project } from '../../schema'; @@ -8,7 +8,7 @@ import { Project } from '../../schema'; export default function ExploreProjectsPage() { const [searchTerm, setSearchTerm] = useState(''); - const { data: projects, isPending } = useQuery(Project, { + const { data: projects, isPending } = useEntities(Project, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-vite-react/src/routes/explore-public-knowledge/assets.tsx b/apps/template-vite-react/src/routes/explore-public-knowledge/assets.tsx index 99674919..46148e70 100644 --- a/apps/template-vite-react/src/routes/explore-public-knowledge/assets.tsx +++ b/apps/template-vite-react/src/routes/explore-public-knowledge/assets.tsx @@ -1,5 +1,5 @@ import { Asset } from '@/schema'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { createFileRoute } from '@tanstack/react-router'; export const Route = createFileRoute('/explore-public-knowledge/assets')({ @@ -7,7 +7,7 @@ export const Route = createFileRoute('/explore-public-knowledge/assets')({ }); function AssetMarket() { - const { data: assets, isPending } = useQuery(Asset, { + const { data: assets, isPending } = useEntities(Asset, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-vite-react/src/routes/explore-public-knowledge/dapps.tsx b/apps/template-vite-react/src/routes/explore-public-knowledge/dapps.tsx index db8d1649..36179a03 100644 --- a/apps/template-vite-react/src/routes/explore-public-knowledge/dapps.tsx +++ b/apps/template-vite-react/src/routes/explore-public-knowledge/dapps.tsx @@ -1,6 +1,6 @@ import { GraphImage } from '@/components/graph-image'; import { Dapp } from '@/schema'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { createFileRoute } from '@tanstack/react-router'; export const Route = createFileRoute('/explore-public-knowledge/dapps')({ @@ -8,7 +8,7 @@ export const Route = createFileRoute('/explore-public-knowledge/dapps')({ }); function Dapps() { - const { data: dapps, isPending } = useQuery(Dapp, { + const { data: dapps, isPending } = useEntities(Dapp, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-vite-react/src/routes/explore-public-knowledge/investment-rounds.tsx b/apps/template-vite-react/src/routes/explore-public-knowledge/investment-rounds.tsx index 6a517689..fdac8568 100644 --- a/apps/template-vite-react/src/routes/explore-public-knowledge/investment-rounds.tsx +++ b/apps/template-vite-react/src/routes/explore-public-knowledge/investment-rounds.tsx @@ -1,5 +1,5 @@ import { InvestmentRound } from '@/schema'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { createFileRoute } from '@tanstack/react-router'; export const Route = createFileRoute('/explore-public-knowledge/investment-rounds')({ @@ -7,7 +7,7 @@ export const Route = createFileRoute('/explore-public-knowledge/investment-round }); function InvestmentRounds() { - const { data: investmentRounds, isPending } = useQuery(InvestmentRound, { + const { data: investmentRounds, isPending } = useEntities(InvestmentRound, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-vite-react/src/routes/explore-public-knowledge/projects.tsx b/apps/template-vite-react/src/routes/explore-public-knowledge/projects.tsx index 7becb2cf..ab6f916f 100644 --- a/apps/template-vite-react/src/routes/explore-public-knowledge/projects.tsx +++ b/apps/template-vite-react/src/routes/explore-public-knowledge/projects.tsx @@ -1,6 +1,6 @@ import { GraphImage } from '@/components/graph-image'; import { Project } from '@/schema'; -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { createFileRoute } from '@tanstack/react-router'; import { useState } from 'react'; @@ -11,7 +11,7 @@ export const Route = createFileRoute('/explore-public-knowledge/projects')({ function ExplorePublicKnowledgeProjects() { const [searchTerm, setSearchTerm] = useState(''); - const { data: projects, isPending } = useQuery(Project, { + const { data: projects, isPending } = useEntities(Project, { mode: 'public', space: '3f32353d-3b27-4a13-b71a-746f06e1f7db', first: 100, diff --git a/apps/template-vite-react/src/routes/private-space/$space-id.tsx b/apps/template-vite-react/src/routes/private-space/$space-id.tsx index e7cd73cd..a775e711 100644 --- a/apps/template-vite-react/src/routes/private-space/$space-id.tsx +++ b/apps/template-vite-react/src/routes/private-space/$space-id.tsx @@ -3,8 +3,8 @@ import { Project } from '@/schema'; import { HypergraphSpaceProvider, useCreateEntity, + useEntities, usePublishToPublicSpace, - useQuery, useSpace, useSpaces, } from '@graphprotocol/hypergraph-react'; @@ -27,7 +27,7 @@ function RouteComponent() { function PrivateSpace() { const { name, ready, id: spaceId } = useSpace({ mode: 'private' }); - const { data: projects } = useQuery(Project, { mode: 'private' }); + const { data: projects } = useEntities(Project, { mode: 'private' }); const { data: publicSpaces } = useSpaces({ mode: 'public' }); const [selectedSpace, setSelectedSpace] = useState(''); const createProject = useCreateEntity(Project); diff --git a/apps/template-vite-react/src/routes/public-space/$space-id.tsx b/apps/template-vite-react/src/routes/public-space/$space-id.tsx index 23d61b93..607fb431 100644 --- a/apps/template-vite-react/src/routes/public-space/$space-id.tsx +++ b/apps/template-vite-react/src/routes/public-space/$space-id.tsx @@ -1,5 +1,5 @@ import { Project } from '@/schema'; -import { HypergraphSpaceProvider, useQuery, useSpace } from '@graphprotocol/hypergraph-react'; +import { HypergraphSpaceProvider, useEntities, useSpace } from '@graphprotocol/hypergraph-react'; import { createFileRoute } from '@tanstack/react-router'; export const Route = createFileRoute('/public-space/$space-id')({ @@ -18,7 +18,7 @@ function RouteComponent() { function PublicSpace() { const { ready, name, id: spaceId } = useSpace({ mode: 'public' }); - const { data: projects, isPending } = useQuery(Project, { mode: 'public' }); + const { data: projects, isPending } = useEntities(Project, { mode: 'public' }); if (!ready) { return ( diff --git a/docs/docs/filtering-query-results.md b/docs/docs/filtering-query-results.md index 48c1c909..2754e0f3 100644 --- a/docs/docs/filtering-query-results.md +++ b/docs/docs/filtering-query-results.md @@ -11,7 +11,7 @@ export class Event extends Entity.Class("Event")({ }) {} // inside the React component -const { data } = useQuery(Event, { +const { data } = useEntities(Event, { filter: { cancelled: { is: false }, }, @@ -84,7 +84,7 @@ The filter API supports different filters for different property types and offer ```tsx // ever person except if their name is not Jane Doe or John Doe -const { data } = useQuery(Person, { +const { data } = useEntities(Person, { filter: { or: [ { not: { name: { is: 'Jane Doe' } } }, @@ -94,7 +94,7 @@ const { data } = useQuery(Person, { }); // ever person that is 42, but their name is not Jane Doe or John Doe -const { data } = useQuery(Person, { +const { data } = useEntities(Person, { filter: { age: { is: 42 @@ -113,7 +113,7 @@ const { data } = useQuery(Person, { }); // every person that is not 42 years old -const { data } = useQuery(Person, { +const { data } = useEntities(Person, { filter: { age: { not: { is: 42 }, @@ -138,7 +138,7 @@ export class Todo extends Entity.Class('Todo')({ 1 level filtering ```tsx -const { data } = useQuery(Person, { +const { data } = useEntities(Person, { filter: { assignees: { name: { is: "John" }, @@ -150,7 +150,7 @@ const { data } = useQuery(Person, { 2 level filtering ```tsx -const { data } = useQuery(Person, { +const { data } = useEntities(Person, { filter: { assignees: { name: { is: "John" }, @@ -183,7 +183,7 @@ export class Todo extends Entity.Class('Todo')({ ``` ```tsx -const { data } = useQuery(Person, { +const { data } = useEntities(Person, { filter: { assignees: { _relation: { diff --git a/docs/docs/providers.md b/docs/docs/providers.md index b93aab60..6d040efb 100644 --- a/docs/docs/providers.md +++ b/docs/docs/providers.md @@ -54,16 +54,16 @@ const App = () => { ## HypergraphSpaceProvider -Whenever you interact with a space you need to provide the space ID. Instead of providing the space ID to every hook e.g. useSpace, useQuery, useCreateEntity, etc. you can use the `HypergraphSpaceProvider` to wrap a section of your app with the space ID. +Whenever you interact with a space you need to provide the space ID. Instead of providing the space ID to every hook e.g. useSpace, useEntities, useEntity, useCreateEntity, etc. you can use the `HypergraphSpaceProvider` to wrap a section of your app with the space ID. ```tsx -import { HypergraphSpaceProvider } from "@graphprotocol/hypergraph-react"; +import { HypergraphSpaceProvider, useSpace, useEntities } from "@graphprotocol/hypergraph-react"; const Space = () => { // the space ID is provided by the HypergraphSpaceProvider const { name, id } = useSpace(); // the space ID is provided by the HypergraphSpaceProvider - const { data } = useQuery(Event, { mode: "private" }); + const { data } = useEntities(Event, { mode: "private" }); return
{name}
; }; diff --git a/docs/docs/publishing-public-data.md b/docs/docs/publishing-public-data.md index 85934c95..69f6f0aa 100644 --- a/docs/docs/publishing-public-data.md +++ b/docs/docs/publishing-public-data.md @@ -22,7 +22,7 @@ const { ops } = preparePublish({ }); ``` -The entity can come from a `useCreateEntity` result or from a `useQuery` result e.g. +The entity can come from a `useCreateEntity` result or from a `useEntities` result e.g. ## Publish @@ -42,11 +42,11 @@ const { result } = publishOps({ Additionally, we export a `usePublishToPublishSpace` hook which abstracts the above functionality into a single function call. This function internally uses React Query's useMutate hook, so you have access to the same state machine and callback functions. ```tsx -import { usePublishToPublicSpace, useHypergraphApp } from "@graphprotocol/hypergraph-react"; +import { usePublishToPublicSpace, useHypergraphApp, useEntities } from "@graphprotocol/hypergraph-react"; const MyComponent = ({ publicSpaceId }: { publicSpaceId: string }) => { const { getSmartSessionClient } = useHypergraphApp(); - const { data: events } = useQuery(Event, { mode: "private" }); + const { data: events } = useEntities(Event, { mode: "private" }); const { mutate, isPending } = usePublishToPublicSpace(); if (isPending) { diff --git a/docs/docs/query-private-data.md b/docs/docs/query-private-data.md index 65fd3123..5f3400f4 100644 --- a/docs/docs/query-private-data.md +++ b/docs/docs/query-private-data.md @@ -2,15 +2,15 @@ Based on your schema, you can query private data that you created using Hypergraph. -## useQuery +## useEntities In order to query private data, you need to pass in the schema type and set the mode to `private`. ```ts -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Event } from '../schema'; -const { data } = useQuery(Event, { mode: 'private' }); +const { data } = useEntities(Event, { mode: 'private' }); ``` ### Including Relations @@ -18,7 +18,7 @@ const { data } = useQuery(Event, { mode: 'private' }); By default only non-relation properties are included in the query entries. In order to include relations, you can use the `include` parameter. ```ts -const { data } = useQuery(Event, { +const { data } = useEntities(Event, { mode: 'private', include: { sponsors: {} }, }); @@ -31,8 +31,8 @@ For deeper relations you can use the `include` parameter multiple levels deep. C You can also query from a specific space by passing in the `spaceId` parameter. ```ts -const { data: spaceAData } = useQuery(Event, { mode: 'private', spaceId: 'space-a-id' }); -const { data: spaceBData } = useQuery(Event, { mode: 'private', spaceId: 'space-b-id' }); +const { data: spaceAData } = useEntities(Event, { mode: 'private', spaceId: 'space-a-id' }); +const { data: spaceBData } = useEntities(Event, { mode: 'private', spaceId: 'space-b-id' }); ``` ### Filtering @@ -40,19 +40,19 @@ const { data: spaceBData } = useQuery(Event, { mode: 'private', spaceId: 'space- You can filter the data by passing in the `filter` parameter. ```ts -const { data } = useQuery(Event, { mode: 'private', filter: { name: 'John' } }); +const { data } = useEntities(Event, { mode: 'private', filter: { name: 'John' } }); ``` Please learn more about filtering in the [Filtering query results](#filtering-query-results) section. ### Returned data -useQuery for private data returns: +useEntities for private data returns: - data - a list of entities defined in your schema - invalidEntities - a list of entities that are in your space storage with correct type, but can't be parsed to your schema - deleted - a list of entities that are marked as deleted, we keep them around to be able to later be able to publish the deleted information to the public knowledge graph ```ts -const { data, invalidEntities, deleted } = useQuery(Event, { mode: 'private' }); +const { data, invalidEntities, deleted } = useEntities(Event, { mode: 'private' }); ``` diff --git a/docs/docs/query-public-data.md b/docs/docs/query-public-data.md index 8175c35e..3f28bfd5 100644 --- a/docs/docs/query-public-data.md +++ b/docs/docs/query-public-data.md @@ -2,15 +2,15 @@ Based on your schema, you can query public data that you created using Hypergraph. It works very much like [querying private data](/docs/query-private-data). -## useQuery +## useEntities In order to query private data, you need to pass in the schema type and set the mode to `public`. ```ts -import { useQuery } from '@graphprotocol/hypergraph-react'; +import { useEntities } from '@graphprotocol/hypergraph-react'; import { Event } from '../schema'; -const { data, isPending, isError } = useQuery(Event, { mode: 'public' }); +const { data, isPending, isError } = useEntities(Event, { mode: 'public' }); ``` ### Including Relations @@ -18,7 +18,7 @@ const { data, isPending, isError } = useQuery(Event, { mode: 'public' }); By default only non-relation properties are included in the query entries. In order to include relations, you can use the `include` parameter. ```ts -const { data, isPending, isError } = useQuery(Event, { +const { data, isPending, isError } = useEntities(Event, { mode: 'public', include: { sponsors: {} }, }); @@ -31,8 +31,8 @@ For deeper relations you can use the `include` parameter multiple levels deep. C You can also query from a specific space by passing in the `space` parameter. ```ts -const { data: spaceAData } = useQuery(Event, { mode: 'public', space: 'space-a-id' }); -const { data: spaceBData } = useQuery(Event, { mode: 'public', space: 'space-b-id' }); +const { data: spaceAData } = useEntities(Event, { mode: 'public', space: 'space-a-id' }); +const { data: spaceBData } = useEntities(Event, { mode: 'public', space: 'space-b-id' }); ``` ### Filtering @@ -40,14 +40,14 @@ const { data: spaceBData } = useQuery(Event, { mode: 'public', space: 'space-b-i You can filter the data by passing in the `filter` parameter. ```ts -const { data, isPending, isError } = useQuery(Event, { mode: 'public', filter: { name: 'John' } }); +const { data, isPending, isError } = useEntities(Event, { mode: 'public', filter: { name: 'John' } }); ``` Please learn more about filtering in the [Filtering query results](#filtering-query-results) section. ### Returned data -useQuery for private data returns: +useEntities for private data returns: - data - a list of entities defined in your schema - invalidEntities - a list of entities that are in your space storage with correct type, but can't be parsed to your schema @@ -57,7 +57,7 @@ useQuery for private data returns: In addition you have access to the full response from `@tanstack/react-query`'s `useQuery` hook, which is used internally to query the public data. ```ts -const { data, isPending, isError } = useQuery(Event, { mode: 'public' }); +const { data, isPending, isError } = useEntities(Event, { mode: 'public' }); ``` ## Querying Public Data from Geo Testnet using useQuery @@ -111,7 +111,7 @@ export const mapping: Mapping.Mapping = { "use client"; import { useState } from "react"; -import { useQuery } from "@graphprotocol/hypergraph-react"; +import { useEntities } from "@graphprotocol/hypergraph-react"; import { Project } from "../schema"; export default function ProjectsExample() { @@ -120,7 +120,7 @@ export default function ProjectsExample() { data: projects, isPending, isError, - } = useQuery(Project, { + } = useEntities(Project, { mode: "public", space: "3f32353d-3b27-4a13-b71a-746f06e1f7db", first: limit, @@ -205,7 +205,7 @@ export const mapping: Mapping.Mapping = { "use client"; import { useState } from "react"; -import { useQuery } from "@graphprotocol/hypergraph-react"; +import { useEntities } from "@graphprotocol/hypergraph-react"; import { Dapp } from "../schema"; export default function DappsExample() { @@ -214,7 +214,7 @@ export default function DappsExample() { data: dapps, isPending, isError, - } = useQuery(Dapp, { + } = useEntities(Dapp, { mode: "public", space: "3f32353d-3b27-4a13-b71a-746f06e1f7db", first: limit, @@ -326,7 +326,7 @@ export const mapping: Mapping.Mapping = { "use client"; import { useState } from "react"; -import { useQuery } from "@graphprotocol/hypergraph-react"; +import { useEntities } from "@graphprotocol/hypergraph-react"; import { InvestmentRound } from "../schema"; export default function InvestmentRoundsExample() { @@ -335,7 +335,7 @@ export default function InvestmentRoundsExample() { data: investmentRounds, isPending, isError, - } = useQuery(InvestmentRound, { + } = useEntities(InvestmentRound, { mode: "public", space: "3f32353d-3b27-4a13-b71a-746f06e1f7db", first: limit, @@ -437,7 +437,7 @@ export const mapping: Mapping.Mapping = { "use client"; import { useState } from "react"; -import { useQuery } from "@graphprotocol/hypergraph-react"; +import { useEntities } from "@graphprotocol/hypergraph-react"; import { Asset } from "../schema"; export default function AssetMarketExample() { @@ -446,7 +446,7 @@ export default function AssetMarketExample() { data: assets, isPending, isError, - } = useQuery(Asset, { + } = useEntities(Asset, { mode: "public", space: "3f32353d-3b27-4a13-b71a-746f06e1f7db", first: limit, diff --git a/packages/hypergraph-react/src/hooks/use-query.tsx b/packages/hypergraph-react/src/hooks/use-entities.tsx similarity index 58% rename from packages/hypergraph-react/src/hooks/use-query.tsx rename to packages/hypergraph-react/src/hooks/use-entities.tsx index 89cd68ad..13b6eb1e 100644 --- a/packages/hypergraph-react/src/hooks/use-query.tsx +++ b/packages/hypergraph-react/src/hooks/use-entities.tsx @@ -1,9 +1,9 @@ import type { Entity } from '@graphprotocol/hypergraph'; import type * as Schema from 'effect/Schema'; -import { useQueryPrivate } from '../internal/use-query-private.js'; -import { useQueryPublic } from '../internal/use-query-public.js'; +import { useEntitiesPrivate } from '../internal/use-entities-private.js'; +import { useEntitiesPublic } from '../internal/use-entities-public.js'; -type QueryParams = { +type UseEntitiesParams = { mode: 'public' | 'private'; filter?: Entity.EntityFilter> | undefined; // TODO: for multi-level nesting it should only allow the allowed properties instead of Record> @@ -12,10 +12,10 @@ type QueryParams = { first?: number | undefined; }; -export function useQuery(type: S, params: QueryParams) { +export function useEntities(type: S, params: UseEntitiesParams) { const { mode, filter, include, space, first } = params; - const publicResult = useQueryPublic(type, { enabled: mode === 'public', filter, include, first, space }); - const localResult = useQueryPrivate(type, { enabled: mode === 'private', filter, include, space }); + const publicResult = useEntitiesPublic(type, { enabled: mode === 'public', filter, include, first, space }); + const localResult = useEntitiesPrivate(type, { enabled: mode === 'private', filter, include, space }); if (mode === 'public') { return { diff --git a/packages/hypergraph-react/src/index.ts b/packages/hypergraph-react/src/index.ts index 4ffbc1ae..40195e93 100644 --- a/packages/hypergraph-react/src/index.ts +++ b/packages/hypergraph-react/src/index.ts @@ -7,11 +7,11 @@ export { export { HypergraphSpaceProvider } from './HypergraphSpaceContext.js'; export { useCreateEntity } from './hooks/use-create-entity.js'; export { useDeleteEntity } from './hooks/use-delete-entity.js'; +export { useEntities } from './hooks/use-entities.js'; export { useEntity } from './hooks/use-entity.js'; export { useHardDeleteEntity } from './hooks/use-hard-delete-entity.js'; export { usePrivyAuthCreatePrivateSpace as _usePrivyAuthCreatePrivateSpace } from './hooks/use-privy-auth-create-private-space.js'; export { usePrivyAuthCreatePublicSpace as _usePrivyAuthCreatePublicSpace } from './hooks/use-privy-auth-create-public-space.js'; -export { useQuery } from './hooks/use-query.js'; export { useRemoveRelation } from './hooks/use-remove-relation.js'; export { useSpace } from './hooks/use-space.js'; export { useSpaces } from './hooks/use-spaces.js'; @@ -24,9 +24,9 @@ export { usePublicAccountInboxes } from './hooks/usePublicAccountInboxes.js'; export { usePublishToPublicSpace } from './hooks/usePublishToSpace.js'; export { generateDeleteOps as _generateDeleteOps } from './internal/generate-delete-ops.js'; export { useDeleteEntityPublic as _useDeleteEntityPublic } from './internal/use-delete-entity-public.js'; +export { useEntitiesPrivate as _useEntitiesPrivate } from './internal/use-entities-private.js'; +export { useEntitiesPublic as _useEntitiesPublic } from './internal/use-entities-public.js'; export { useEntityPublic as _useEntityPublic } from './internal/use-entity-public.js'; -export { useQueryPrivate as _useQueryPrivate } from './internal/use-query-private.js'; -export { useQueryPublic as _useQueryPublic } from './internal/use-query-public.js'; export { preparePublish } from './prepare-publish.js'; export { publishOps } from './publish-ops.js'; export type * from './types.js'; diff --git a/packages/hypergraph-react/src/internal/use-query-private.tsx b/packages/hypergraph-react/src/internal/use-entities-private.tsx similarity index 95% rename from packages/hypergraph-react/src/internal/use-query-private.tsx rename to packages/hypergraph-react/src/internal/use-entities-private.tsx index e3e238d2..85bf9801 100644 --- a/packages/hypergraph-react/src/internal/use-query-private.tsx +++ b/packages/hypergraph-react/src/internal/use-entities-private.tsx @@ -11,7 +11,7 @@ type QueryParams = { include?: { [K in keyof Schema.Schema.Type]?: Record> } | undefined; }; -export function useQueryPrivate(type: S, params?: QueryParams) { +export function useEntitiesPrivate(type: S, params?: QueryParams) { const { enabled = true, filter, include, space: spaceFromParams } = params ?? {}; const entitiesRef = useRef[]>([]); const subscriptionRef = useRef>({ diff --git a/packages/hypergraph-react/src/internal/use-query-public.tsx b/packages/hypergraph-react/src/internal/use-entities-public.tsx similarity index 98% rename from packages/hypergraph-react/src/internal/use-query-public.tsx rename to packages/hypergraph-react/src/internal/use-entities-public.tsx index b38e9ae6..1cd5b46c 100644 --- a/packages/hypergraph-react/src/internal/use-query-public.tsx +++ b/packages/hypergraph-react/src/internal/use-entities-public.tsx @@ -238,7 +238,7 @@ export const parseResult = (queryData: Ent return { data, invalidEntities }; }; -export const useQueryPublic = (type: S, params?: QueryPublicParams) => { +export const useEntitiesPublic = (type: S, params?: QueryPublicParams) => { const { enabled = true, filter, include, space: spaceFromParams, first = 100 } = params ?? {}; const { space: spaceFromContext } = useHypergraphSpaceInternal(); const space = spaceFromParams ?? spaceFromContext; diff --git a/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx b/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx index 9d3fd31d..53d5c3e2 100644 --- a/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx +++ b/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx @@ -11,7 +11,7 @@ import { useCreateEntity } from '../src/hooks/use-create-entity.js'; import { useDeleteEntity } from '../src/hooks/use-delete-entity.js'; import { useEntity } from '../src/hooks/use-entity.js'; import { useUpdateEntity } from '../src/hooks/use-update-entity.js'; -import { useQueryPrivate } from '../src/internal/use-query-private.js'; +import { useEntitiesPrivate } from '../src/internal/use-entities-private.js'; afterEach(() => { cleanup(); @@ -102,7 +102,7 @@ describe('HypergraphSpaceContext', () => { describe('useCreateEntity', () => { it('should be able to create an entity through the useCreateEntity Hook', async () => { - const { result: queryEntitiesResult, rerender } = renderHook(() => useQueryPrivate(Event), { wrapper }); + const { result: queryEntitiesResult, rerender } = renderHook(() => useEntitiesPrivate(Event), { wrapper }); const { result: createEntityResult } = renderHook(() => useCreateEntity(Event), { wrapper }); let createdEntity: Entity.Entity | null = null; @@ -188,7 +188,7 @@ describe('HypergraphSpaceContext', () => { isError: false, }); - const { result: queryEntitiesResult, rerender } = renderHook(() => useQueryPrivate(Person), { wrapper }); + const { result: queryEntitiesResult, rerender } = renderHook(() => useEntitiesPrivate(Person), { wrapper }); rerender(); @@ -215,9 +215,12 @@ describe('HypergraphSpaceContext', () => { expect(createdEntity?.name).toEqual('Test'); }); - const { result: queryEntitiesResult, rerender: rerenderQueryEntities } = renderHook(() => useQueryPrivate(User), { - wrapper, - }); + const { result: queryEntitiesResult, rerender: rerenderQueryEntities } = renderHook( + () => useEntitiesPrivate(User), + { + wrapper, + }, + ); rerenderQueryEntities(); expect(queryEntitiesResult.current).toEqual({ deletedEntities: [], entities: [createdEntity] });