@bodhveda/react 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -11
- package/dist/hooks.d.ts +9 -6
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +22 -7
- package/dist/hooks.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,21 +32,30 @@ import { useNotifications } from "@bodhveda/react";
|
|
|
32
32
|
|
|
33
33
|
function NotificationInbox() {
|
|
34
34
|
// Fetch recipient's notifications.
|
|
35
|
-
const { data } =
|
|
35
|
+
const { data, isLoading, isError, isFetching, fetchNextPage, hasNextPage } =
|
|
36
|
+
useNotifications();
|
|
36
37
|
|
|
37
38
|
// ...
|
|
38
39
|
// Handle loading and error states.
|
|
39
40
|
// ...
|
|
40
41
|
|
|
41
|
-
// Render the notifications
|
|
42
|
+
// Render the notifications as per your requirements.
|
|
42
43
|
return (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
<>
|
|
45
|
+
<ul>
|
|
46
|
+
{data.notifications.map((notification) => (
|
|
47
|
+
<li key={notification.id}>
|
|
48
|
+
<NotificationItem notification={notification} />
|
|
49
|
+
</li>
|
|
50
|
+
))}
|
|
51
|
+
</ul>
|
|
52
|
+
|
|
53
|
+
{hasNextPage && (
|
|
54
|
+
<Button onClick={() => fetchNextPage()} loading={isFetching}>
|
|
55
|
+
Load more
|
|
56
|
+
</Button>
|
|
57
|
+
)}
|
|
58
|
+
</>
|
|
50
59
|
);
|
|
51
60
|
}
|
|
52
61
|
```
|
|
@@ -61,9 +70,9 @@ Returns the Bodhveda client instance.
|
|
|
61
70
|
|
|
62
71
|
Returns the current recipient ID.
|
|
63
72
|
|
|
64
|
-
### `useNotifications(options?)`
|
|
73
|
+
### `useNotifications(req?, options?)`
|
|
65
74
|
|
|
66
|
-
Fetches
|
|
75
|
+
Fetches notifications for the current recipient in a infinite scrolling manner.
|
|
67
76
|
|
|
68
77
|
### `useNotificationsUnreadCount(options?)`
|
|
69
78
|
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AnyUseMutationOptions, AnyUseQueryOptions, UseQueryResult } from "@tanstack/react-query";
|
|
2
|
-
import { ListNotificationsResponse, ListPreferencesResponse, UpdateNotificationsStateRequest, UpdateNotificationsStateResponse, SetPreferenceRequest, SetPreferenceResponse, DeleteNotificationsResponse, DeleteNotificationsRequest, Target, CheckPreferenceResponse } from "bodhveda";
|
|
1
|
+
import { AnyUseMutationOptions, AnyUseQueryOptions, UseInfiniteQueryOptions, UseInfiniteQueryResult, UseQueryResult } from "@tanstack/react-query";
|
|
2
|
+
import { ListNotificationsResponse, ListPreferencesResponse, UpdateNotificationsStateRequest, UpdateNotificationsStateResponse, SetPreferenceRequest, SetPreferenceResponse, DeleteNotificationsResponse, DeleteNotificationsRequest, Target, CheckPreferenceResponse, ListNotificationsRequest } from "bodhveda";
|
|
3
3
|
type QueryOptions = Omit<AnyUseQueryOptions, "queryKey">;
|
|
4
4
|
type MutationOptions = AnyUseMutationOptions;
|
|
5
5
|
export declare const QueryKeys: {
|
|
@@ -23,12 +23,15 @@ export declare function useBodhveda(): import("bodhveda").Bodhveda;
|
|
|
23
23
|
*/
|
|
24
24
|
export declare function useRecipientID(): string;
|
|
25
25
|
/**
|
|
26
|
-
* Fetches the list of notifications for the current recipient.
|
|
26
|
+
* Fetches the list of notifications for the current recipient with infinite scrolling support.
|
|
27
27
|
*
|
|
28
|
-
* @param
|
|
29
|
-
* @
|
|
28
|
+
* @param req - Optional request parameters for listing notifications.
|
|
29
|
+
* @param options - Optional react-query infinite query options.
|
|
30
|
+
* @returns {UseInfiniteQueryResult<ListNotificationsResponse, Error>} Infinite query result containing notifications and pagination info.
|
|
30
31
|
*/
|
|
31
|
-
export declare function useNotifications(options?:
|
|
32
|
+
export declare function useNotifications(req?: ListNotificationsRequest, options?: Partial<UseInfiniteQueryOptions<ListNotificationsResponse, Error, ListNotificationsResponse, [
|
|
33
|
+
typeof QueryKeys.useNotifications
|
|
34
|
+
]>>): UseInfiniteQueryResult<ListNotificationsResponse, Error>;
|
|
32
35
|
/**
|
|
33
36
|
* Fetches the unread notifications count for the current recipient.
|
|
34
37
|
*
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,qBAAqB,EACrB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,qBAAqB,EACrB,kBAAkB,EAElB,uBAAuB,EACvB,sBAAsB,EAItB,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,EAC/B,gCAAgC,EAChC,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,MAAM,EACN,uBAAuB,EACvB,wBAAwB,EAC3B,MAAM,UAAU,CAAC;AAIlB,KAAK,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AACzD,KAAK,eAAe,GAAG,qBAAqB,CAAC;AAE7C,eAAO,MAAM,SAAS;;;;;CAKrB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,gCAQ1B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,WAQ7B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,GAAE,wBAA6B,EAClC,OAAO,GAAE,OAAO,CACZ,uBAAuB,CACnB,yBAAyB,EACzB,KAAK,EACL,yBAAyB,EACzB;IAAC,OAAO,SAAS,CAAC,gBAAgB;CAAC,CACtC,CACC,GACP,sBAAsB,CAAC,yBAAyB,EAAE,KAAK,CAAC,CA4B1D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,OAAO,GAAE,YAAiB,GAC3B,cAAc,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAU1C;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,eAAoB,0IA6BxE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,gIA0BnE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC1B,OAAO,GAAE,YAAiB,GAC3B,cAAc,CAAC,uBAAuB,CAAC,CASzC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAoB,oHA0BhE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,YAAiB,GAC3B,cAAc,CAAC,uBAAuB,CAAC,CAUzC"}
|
package/dist/hooks.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useContext } from "react";
|
|
2
|
-
import { useMutation, useQuery, useQueryClient, } from "@tanstack/react-query";
|
|
2
|
+
import { useInfiniteQuery, useMutation, useQuery, useQueryClient, } from "@tanstack/react-query";
|
|
3
3
|
import { BodhvedaContext } from "./context";
|
|
4
4
|
export const QueryKeys = {
|
|
5
5
|
useNotifications: ["useNotifications"],
|
|
@@ -34,17 +34,32 @@ export function useRecipientID() {
|
|
|
34
34
|
return context.recipientID;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
* Fetches the list of notifications for the current recipient.
|
|
37
|
+
* Fetches the list of notifications for the current recipient with infinite scrolling support.
|
|
38
38
|
*
|
|
39
|
-
* @param
|
|
40
|
-
* @
|
|
39
|
+
* @param req - Optional request parameters for listing notifications.
|
|
40
|
+
* @param options - Optional react-query infinite query options.
|
|
41
|
+
* @returns {UseInfiniteQueryResult<ListNotificationsResponse, Error>} Infinite query result containing notifications and pagination info.
|
|
41
42
|
*/
|
|
42
|
-
export function useNotifications(options = {}) {
|
|
43
|
+
export function useNotifications(req = {}, options = {}) {
|
|
43
44
|
const bodhveda = useBodhveda();
|
|
44
45
|
const recipientID = useRecipientID();
|
|
45
|
-
|
|
46
|
+
const { limit = 10 } = req;
|
|
47
|
+
return useInfiniteQuery({
|
|
46
48
|
queryKey: [QueryKeys.useNotifications],
|
|
47
|
-
queryFn: () =>
|
|
49
|
+
queryFn: ({ pageParam }) => {
|
|
50
|
+
return bodhveda.recipients.notifications.list(recipientID, {
|
|
51
|
+
limit,
|
|
52
|
+
before: pageParam ? String(pageParam) : undefined,
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
initialPageParam: null,
|
|
56
|
+
getNextPageParam: (lastPage) => lastPage.cursor.before,
|
|
57
|
+
select: (data) => {
|
|
58
|
+
return {
|
|
59
|
+
...data.pages[data.pages.length - 1],
|
|
60
|
+
notifications: data.pages.flatMap((page) => page.notifications),
|
|
61
|
+
};
|
|
62
|
+
},
|
|
48
63
|
...options,
|
|
49
64
|
});
|
|
50
65
|
}
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAGH,WAAW,EACX,QAAQ,EACR,cAAc,GAEjB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.tsx"],"names":[],"mappings":"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"}
|