-
Notifications
You must be signed in to change notification settings - Fork 73
/
useRecommendedProfiles.ts
78 lines (71 loc) · 2.07 KB
/
useRecommendedProfiles.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import {
Profile,
ProfileRecommendationsDocument,
ProfileRecommendationsRequest,
} from '@lens-protocol/api-bindings';
import { useLensApolloClient } from '../helpers/arguments';
import { PaginatedArgs, PaginatedReadResult } from '../helpers/reads';
import {
SuspendablePaginatedResult,
SuspenseEnabled,
SuspensePaginatedResult,
useSuspendablePaginatedQuery,
} from '../helpers/suspense';
import { useFragmentVariables } from '../helpers/variables';
/**
* {@link useRecommendedProfiles} hook arguments
*/
export type UseRecommendedProfilesArgs = PaginatedArgs<ProfileRecommendationsRequest>;
export type { ProfileRecommendationsRequest };
/**
* {@link useRecommendedProfiles} hook arguments with Suspense support
*/
export type UseSuspenseRecommendedProfilesArgs = SuspenseEnabled<UseRecommendedProfilesArgs>;
/**
* Provides profile recommendations based on user's social engagement and machine learning predictions.
*
* ```tsx
* const { data, loading, error } = useRecommendedProfiles({
* for: '0x123',
* });
* ```
*
* @category Discovery
* @group Hooks
*/
export function useRecommendedProfiles(
args: UseRecommendedProfilesArgs,
): PaginatedReadResult<Profile[]>;
/**
* Provides profile recommendations based on user's social engagement and machine learning predictions.
*
* This signature supports [React Suspense](https://react.dev/reference/react/Suspense).
*
* ```ts
* const { data } = useRecommendedProfiles({
* for: '0x123',
* suspense: true
* });
*
* console.log(data);
* ```
*
* @experimental This API can change without notice
* @category Discovery
* @group Hooks
*/
export function useRecommendedProfiles(
args: UseSuspenseRecommendedProfilesArgs,
): SuspensePaginatedResult<Profile[]>;
export function useRecommendedProfiles({
suspense = false,
...args
}: UseRecommendedProfilesArgs & { suspense?: boolean }): SuspendablePaginatedResult<Profile[]> {
return useSuspendablePaginatedQuery({
suspense,
query: ProfileRecommendationsDocument,
options: useLensApolloClient({
variables: useFragmentVariables(args),
}),
});
}