Skip to content

Commit 28a016e

Browse files
committed
move useEntity to separate file
1 parent 6259372 commit 28a016e

File tree

5 files changed

+37
-35
lines changed

5 files changed

+37
-35
lines changed

packages/hypergraph-react/src/HypergraphSpaceContext.tsx

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'use client';
22

3-
import { Entity, type Id, store } from '@graphprotocol/hypergraph';
3+
import { Entity, store } from '@graphprotocol/hypergraph';
44
import { useSelector } from '@xstate/store/react';
5-
import * as Schema from 'effect/Schema';
5+
import type * as Schema from 'effect/Schema';
66
import {
77
createContext,
88
type ReactNode,
@@ -14,8 +14,6 @@ import {
1414
useSyncExternalStore,
1515
} from 'react';
1616
import { useHypergraphApp } from './HypergraphAppContext.js';
17-
import { useEntityPrivate } from './internal/use-entity-private.js';
18-
import { useEntityPublic } from './internal/use-entity-public.js';
1917
import { usePublicSpace } from './internal/use-public-space.js';
2018

2119
// TODO space can be undefined
@@ -182,22 +180,3 @@ export function useQueryLocal<const S extends Entity.AnyNoContext>(type: S, para
182180

183181
return { entities, deletedEntities };
184182
}
185-
186-
export function useEntity<const S extends Entity.AnyNoContext>(
187-
type: S,
188-
params: {
189-
id: string | Id;
190-
space?: string;
191-
mode: 'private' | 'public';
192-
include?: { [K in keyof Schema.Schema.Type<S>]?: Record<string, Record<string, never>> } | undefined;
193-
},
194-
) {
195-
const resultPublic = useEntityPublic(type, { ...params, enabled: params.mode === 'public' });
196-
const resultPrivate = useEntityPrivate(type, { ...params, enabled: params.mode === 'private' });
197-
198-
if (params.mode === 'public') {
199-
return resultPublic;
200-
}
201-
202-
return resultPrivate;
203-
}
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,27 @@
11
export { PublishDiff } from './components/publish-diff/publish-diff.js';
22
export { createWalletClient } from './create-wallet-client.js';
3+
export { useSpaces } from './hooks/use-spaces.js';
4+
export { useExternalAccountInbox } from './hooks/useExternalAccountInbox.js';
5+
export { useExternalSpaceInbox } from './hooks/useExternalSpaceInbox.js';
6+
export { useOwnAccountInbox } from './hooks/useOwnAccountInbox.js';
7+
export { useOwnSpaceInbox } from './hooks/useOwnSpaceInbox.js';
8+
export { usePublicAccountInboxes } from './hooks/usePublicAccountInboxes.js';
9+
export { usePublishToPublicSpace } from './hooks/usePublishToSpace.js';
310
export {
411
HypergraphAppProvider,
512
useHypergraphApp,
613
useHypergraphAuth,
714
} from './HypergraphAppContext.js';
815
export {
16+
useQueryLocal as _useQueryLocal,
917
HypergraphSpaceProvider,
1018
useCreateEntity,
1119
useDeleteEntity,
12-
useEntity,
1320
useHardDeleteEntity,
14-
useQueryLocal as _useQueryLocal,
1521
useRemoveRelation,
1622
useSpace,
1723
useUpdateEntity,
1824
} from './HypergraphSpaceContext.js';
19-
export { useSpaces } from './hooks/use-spaces.js';
20-
export { useExternalAccountInbox } from './hooks/useExternalAccountInbox.js';
21-
export { useExternalSpaceInbox } from './hooks/useExternalSpaceInbox.js';
22-
export { useOwnAccountInbox } from './hooks/useOwnAccountInbox.js';
23-
export { useOwnSpaceInbox } from './hooks/useOwnSpaceInbox.js';
24-
export { usePublicAccountInboxes } from './hooks/usePublicAccountInboxes.js';
25-
export { usePublishToPublicSpace } from './hooks/usePublishToSpace.js';
2625
export { generateDeleteOps as _generateDeleteOps } from './internal/generate-delete-ops.js';
2726
export { useCreateEntityPublic as _useCreateEntityPublic } from './internal/use-create-entity-public.js';
2827
export { useDeleteEntityPublic as _useDeleteEntityPublic } from './internal/use-delete-entity-public.js';
@@ -31,4 +30,5 @@ export { useQueryPublic as _useQueryPublic } from './internal/use-query-public.j
3130
export { preparePublish } from './prepare-publish.js';
3231
export { publishOps } from './publish-ops.js';
3332
export type * from './types.js';
33+
export { useEntity } from './use-entity.js';
3434
export { useQuery } from './use-query.js';

packages/hypergraph-react/src/internal/use-entity-private.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
'use client';
2-
31
import { Entity, type Id, store } from '@graphprotocol/hypergraph';
42
import { useSelector } from '@xstate/store/react';
53
import * as Schema from 'effect/Schema';
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use client';
2+
3+
import type { Entity, Id } from '@graphprotocol/hypergraph';
4+
import type * as Schema from 'effect/Schema';
5+
import { useEntityPrivate } from './internal/use-entity-private.js';
6+
import { useEntityPublic } from './internal/use-entity-public.js';
7+
8+
export function useEntity<const S extends Entity.AnyNoContext>(
9+
type: S,
10+
params: {
11+
id: string | Id;
12+
space?: string;
13+
mode: 'private' | 'public';
14+
include?: { [K in keyof Schema.Schema.Type<S>]?: Record<string, Record<string, never>> } | undefined;
15+
},
16+
) {
17+
const resultPublic = useEntityPublic(type, { ...params, enabled: params.mode === 'public' });
18+
const resultPrivate = useEntityPrivate(type, { ...params, enabled: params.mode === 'private' });
19+
20+
if (params.mode === 'public') {
21+
return resultPublic;
22+
}
23+
24+
return resultPrivate;
25+
}

packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import {
1010
HypergraphSpaceProvider,
1111
useCreateEntity,
1212
useDeleteEntity,
13-
useEntity,
1413
useQueryLocal,
1514
useUpdateEntity,
1615
} from '../src/HypergraphSpaceContext.js';
16+
import { useEntity } from '../src/use-entity.js';
1717

1818
afterEach(() => {
1919
cleanup();

0 commit comments

Comments
 (0)