@tnf-dev/react 1.0.1-7 → 1.0.1-9

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.
Files changed (159) hide show
  1. package/dist/cjs/components/icons/archive-box-icon.cjs +1 -50
  2. package/dist/cjs/components/icons/bell-icon.cjs +1 -50
  3. package/dist/cjs/components/icons/check-circle-icon.cjs +1 -50
  4. package/dist/cjs/components/icons/index.cjs +1 -112
  5. package/dist/cjs/components/inbox/bell.cjs +12 -4714
  6. package/dist/cjs/components/inbox/button.cjs +12 -4654
  7. package/dist/cjs/components/inbox/empty.cjs +12 -4635
  8. package/dist/cjs/components/inbox/inbox.cjs +12 -5291
  9. package/dist/cjs/components/inbox/index.cjs +12 -5309
  10. package/dist/cjs/components/inbox/loader.cjs +12 -4629
  11. package/dist/cjs/components/inbox/notification-header.cjs +12 -4649
  12. package/dist/cjs/components/inbox/notification-item/actions.cjs +12 -4738
  13. package/dist/cjs/components/inbox/notification-item/index.cjs +12 -4865
  14. package/dist/cjs/components/inbox/popover.cjs +12 -4711
  15. package/dist/cjs/components/index.cjs +12 -5309
  16. package/dist/cjs/contexts/StyleProvider.cjs +12 -4645
  17. package/dist/cjs/contexts/TeknifyProvider.cjs +12 -4674
  18. package/dist/cjs/contexts/index.cjs +12 -4677
  19. package/dist/cjs/dto/index.cjs +1 -19
  20. package/dist/cjs/dto/notifications/index.cjs +1 -19
  21. package/dist/cjs/dto/notifications/notification.interface.cjs +1 -19
  22. package/dist/cjs/hooks/index.cjs +1 -145
  23. package/dist/cjs/hooks/useNotifications.cjs +1 -143
  24. package/dist/cjs/index.cjs +12 -5362
  25. package/dist/cjs/utils/const.cjs +1 -31
  26. package/dist/cjs/utils/index.cjs +1 -33
  27. package/dist/esm/components/icons/archive-box-icon.js +1 -8
  28. package/dist/esm/components/icons/bell-icon.js +1 -8
  29. package/dist/esm/components/icons/check-circle-icon.js +1 -8
  30. package/dist/esm/components/icons/index.js +1 -17
  31. package/dist/esm/components/inbox/bell.js +29 -15
  32. package/dist/esm/components/inbox/button.js +29 -11
  33. package/dist/esm/components/inbox/empty.js +29 -11
  34. package/dist/esm/components/inbox/inbox.js +29 -28
  35. package/dist/esm/components/inbox/index.js +29 -50
  36. package/dist/esm/components/inbox/loader.js +29 -9
  37. package/dist/esm/components/inbox/notification-header.js +29 -11
  38. package/dist/esm/components/inbox/notification-item/actions.js +29 -16
  39. package/dist/esm/components/inbox/notification-item/index.js +29 -17
  40. package/dist/esm/components/inbox/popover.js +29 -11
  41. package/dist/esm/components/index.js +29 -51
  42. package/dist/esm/contexts/StyleProvider.js +29 -9
  43. package/dist/esm/contexts/TeknifyProvider.js +29 -12
  44. package/dist/esm/contexts/index.js +29 -13
  45. package/dist/esm/dto/index.js +0 -4
  46. package/dist/esm/dto/notifications/index.js +0 -3
  47. package/dist/esm/dto/notifications/notification.interface.js +0 -2
  48. package/dist/esm/hooks/index.js +1 -13
  49. package/dist/esm/hooks/useNotifications.js +1 -12
  50. package/dist/esm/index.js +29 -62
  51. package/dist/esm/utils/const.js +1 -8
  52. package/dist/esm/utils/index.js +1 -9
  53. package/package.json +4 -4
  54. package/dist/cjs/components/icons/archive-box-icon.cjs.map +0 -1
  55. package/dist/cjs/components/icons/bell-icon.cjs.map +0 -1
  56. package/dist/cjs/components/icons/check-circle-icon.cjs.map +0 -1
  57. package/dist/cjs/components/icons/index.cjs.map +0 -1
  58. package/dist/cjs/components/inbox/bell.cjs.map +0 -1
  59. package/dist/cjs/components/inbox/button.cjs.map +0 -1
  60. package/dist/cjs/components/inbox/empty.cjs.map +0 -1
  61. package/dist/cjs/components/inbox/inbox.cjs.map +0 -1
  62. package/dist/cjs/components/inbox/index.cjs.map +0 -1
  63. package/dist/cjs/components/inbox/loader.cjs.map +0 -1
  64. package/dist/cjs/components/inbox/notification-header.cjs.map +0 -1
  65. package/dist/cjs/components/inbox/notification-item/actions.cjs.map +0 -1
  66. package/dist/cjs/components/inbox/notification-item/index.cjs.map +0 -1
  67. package/dist/cjs/components/inbox/popover.cjs.map +0 -1
  68. package/dist/cjs/components/index.cjs.map +0 -1
  69. package/dist/cjs/contexts/StyleProvider.cjs.map +0 -1
  70. package/dist/cjs/contexts/TeknifyProvider.cjs.map +0 -1
  71. package/dist/cjs/contexts/index.cjs.map +0 -1
  72. package/dist/cjs/dto/index.cjs.map +0 -1
  73. package/dist/cjs/dto/notifications/index.cjs.map +0 -1
  74. package/dist/cjs/dto/notifications/notification.interface.cjs.map +0 -1
  75. package/dist/cjs/hooks/index.cjs.map +0 -1
  76. package/dist/cjs/hooks/useNotifications.cjs.map +0 -1
  77. package/dist/cjs/index.cjs.map +0 -1
  78. package/dist/cjs/utils/const.cjs.map +0 -1
  79. package/dist/cjs/utils/index.cjs.map +0 -1
  80. package/dist/esm/chunk-57PGXW3M.js +0 -2
  81. package/dist/esm/chunk-57PGXW3M.js.map +0 -1
  82. package/dist/esm/chunk-5ZHARJ3G.js +0 -4446
  83. package/dist/esm/chunk-5ZHARJ3G.js.map +0 -1
  84. package/dist/esm/chunk-6FGP2HJW.js +0 -9
  85. package/dist/esm/chunk-6FGP2HJW.js.map +0 -1
  86. package/dist/esm/chunk-ATNNGNAM.js +0 -2
  87. package/dist/esm/chunk-ATNNGNAM.js.map +0 -1
  88. package/dist/esm/chunk-B5I3IFK2.js +0 -113
  89. package/dist/esm/chunk-B5I3IFK2.js.map +0 -1
  90. package/dist/esm/chunk-DC2MKTMP.js +0 -2
  91. package/dist/esm/chunk-DC2MKTMP.js.map +0 -1
  92. package/dist/esm/chunk-EBHNXTGY.js +0 -2
  93. package/dist/esm/chunk-EBHNXTGY.js.map +0 -1
  94. package/dist/esm/chunk-ET4RPLX7.js +0 -32
  95. package/dist/esm/chunk-ET4RPLX7.js.map +0 -1
  96. package/dist/esm/chunk-H3IWAKC5.js +0 -34
  97. package/dist/esm/chunk-H3IWAKC5.js.map +0 -1
  98. package/dist/esm/chunk-H3RCKWE3.js +0 -2
  99. package/dist/esm/chunk-H3RCKWE3.js.map +0 -1
  100. package/dist/esm/chunk-HDKTD2IK.js +0 -49
  101. package/dist/esm/chunk-HDKTD2IK.js.map +0 -1
  102. package/dist/esm/chunk-IXQPSHNR.js +0 -32
  103. package/dist/esm/chunk-IXQPSHNR.js.map +0 -1
  104. package/dist/esm/chunk-MNBHQJKW.js +0 -2
  105. package/dist/esm/chunk-MNBHQJKW.js.map +0 -1
  106. package/dist/esm/chunk-NDUFFQA7.js +0 -24
  107. package/dist/esm/chunk-NDUFFQA7.js.map +0 -1
  108. package/dist/esm/chunk-NQ3CC7OA.js +0 -84
  109. package/dist/esm/chunk-NQ3CC7OA.js.map +0 -1
  110. package/dist/esm/chunk-QILM4R2Q.js +0 -54
  111. package/dist/esm/chunk-QILM4R2Q.js.map +0 -1
  112. package/dist/esm/chunk-RCHW4I55.js +0 -2
  113. package/dist/esm/chunk-RCHW4I55.js.map +0 -1
  114. package/dist/esm/chunk-RLFVKZHT.js +0 -30
  115. package/dist/esm/chunk-RLFVKZHT.js.map +0 -1
  116. package/dist/esm/chunk-S6WUE45S.js +0 -32
  117. package/dist/esm/chunk-S6WUE45S.js.map +0 -1
  118. package/dist/esm/chunk-SSLZWOID.js +0 -97
  119. package/dist/esm/chunk-SSLZWOID.js.map +0 -1
  120. package/dist/esm/chunk-VWQT7XSQ.js +0 -2
  121. package/dist/esm/chunk-VWQT7XSQ.js.map +0 -1
  122. package/dist/esm/chunk-WN4NSHNE.js +0 -32
  123. package/dist/esm/chunk-WN4NSHNE.js.map +0 -1
  124. package/dist/esm/chunk-XVCHU66N.js +0 -40
  125. package/dist/esm/chunk-XVCHU66N.js.map +0 -1
  126. package/dist/esm/chunk-YKV4YNJ4.js +0 -44
  127. package/dist/esm/chunk-YKV4YNJ4.js.map +0 -1
  128. package/dist/esm/chunk-YY3MZBYQ.js +0 -2
  129. package/dist/esm/chunk-YY3MZBYQ.js.map +0 -1
  130. package/dist/esm/chunk-Z4Q2SGNX.js +0 -144
  131. package/dist/esm/chunk-Z4Q2SGNX.js.map +0 -1
  132. package/dist/esm/chunk-ZBV5DZZB.js +0 -104
  133. package/dist/esm/chunk-ZBV5DZZB.js.map +0 -1
  134. package/dist/esm/components/icons/archive-box-icon.js.map +0 -1
  135. package/dist/esm/components/icons/bell-icon.js.map +0 -1
  136. package/dist/esm/components/icons/check-circle-icon.js.map +0 -1
  137. package/dist/esm/components/icons/index.js.map +0 -1
  138. package/dist/esm/components/inbox/bell.js.map +0 -1
  139. package/dist/esm/components/inbox/button.js.map +0 -1
  140. package/dist/esm/components/inbox/empty.js.map +0 -1
  141. package/dist/esm/components/inbox/inbox.js.map +0 -1
  142. package/dist/esm/components/inbox/index.js.map +0 -1
  143. package/dist/esm/components/inbox/loader.js.map +0 -1
  144. package/dist/esm/components/inbox/notification-header.js.map +0 -1
  145. package/dist/esm/components/inbox/notification-item/actions.js.map +0 -1
  146. package/dist/esm/components/inbox/notification-item/index.js.map +0 -1
  147. package/dist/esm/components/inbox/popover.js.map +0 -1
  148. package/dist/esm/components/index.js.map +0 -1
  149. package/dist/esm/contexts/StyleProvider.js.map +0 -1
  150. package/dist/esm/contexts/TeknifyProvider.js.map +0 -1
  151. package/dist/esm/contexts/index.js.map +0 -1
  152. package/dist/esm/dto/index.js.map +0 -1
  153. package/dist/esm/dto/notifications/index.js.map +0 -1
  154. package/dist/esm/dto/notifications/notification.interface.js.map +0 -1
  155. package/dist/esm/hooks/index.js.map +0 -1
  156. package/dist/esm/hooks/useNotifications.js.map +0 -1
  157. package/dist/esm/index.js.map +0 -1
  158. package/dist/esm/utils/const.js.map +0 -1
  159. package/dist/esm/utils/index.js.map +0 -1
@@ -1,20 +1,2 @@
1
1
  "use client"
2
- "use strict";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
-
17
- // src/dto/index.ts
18
- var dto_exports = {};
19
- module.exports = __toCommonJS(dto_exports);
20
- //# sourceMappingURL=index.cjs.map
2
+ "use strict";var m=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var b=(r,o,p,f)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of x(o))!a.call(r,e)&&e!==p&&m(r,e,{get:()=>o[e],enumerable:!(f=t(o,e))||f.enumerable});return r};var c=r=>b(m({},"__esModule",{value:!0}),r);var d={};module.exports=c(d);
@@ -1,20 +1,2 @@
1
1
  "use client"
2
- "use strict";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
-
17
- // src/dto/notifications/index.ts
18
- var notifications_exports = {};
19
- module.exports = __toCommonJS(notifications_exports);
20
- //# sourceMappingURL=index.cjs.map
2
+ "use strict";var m=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var b=(r,o,p,f)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of x(o))!a.call(r,e)&&e!==p&&m(r,e,{get:()=>o[e],enumerable:!(f=t(o,e))||f.enumerable});return r};var c=r=>b(m({},"__esModule",{value:!0}),r);var d={};module.exports=c(d);
@@ -1,20 +1,2 @@
1
1
  "use client"
2
- "use strict";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from))
10
- if (!__hasOwnProp.call(to, key) && key !== except)
11
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- }
13
- return to;
14
- };
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
-
17
- // src/dto/notifications/notification.interface.ts
18
- var notification_interface_exports = {};
19
- module.exports = __toCommonJS(notification_interface_exports);
20
- //# sourceMappingURL=notification.interface.cjs.map
2
+ "use strict";var e=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var c=(o,i,f,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of r(i))!s.call(o,t)&&t!==f&&e(o,t,{get:()=>i[t],enumerable:!(a=n(i,t))||a.enumerable});return o};var m=o=>c(e({},"__esModule",{value:!0}),o);var N={};module.exports=m(N);
@@ -1,146 +1,2 @@
1
1
  "use client"
2
- "use strict";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/hooks/index.ts
22
- var hooks_exports = {};
23
- __export(hooks_exports, {
24
- useNotifications: () => useNotifications
25
- });
26
- module.exports = __toCommonJS(hooks_exports);
27
-
28
- // src/hooks/useNotifications.ts
29
- var import_react2 = require("react");
30
-
31
- // src/contexts/TeknifyProvider.tsx
32
- var import_js = require("@tnf-dev/js");
33
- var import_react = require("react");
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
- var TeknifyContext = (0, import_react.createContext)({
36
- applicationId: "",
37
- subscriberId: ""
38
- });
39
-
40
- // src/hooks/useNotifications.ts
41
- var useNotifications = () => {
42
- const { client } = (0, import_react2.useContext)(TeknifyContext);
43
- const [notifications, setNotifications] = (0, import_react2.useState)([]);
44
- const [isError, setIsError] = (0, import_react2.useState)(false);
45
- const [error, setError] = (0, import_react2.useState)(null);
46
- const [isLoading, setIsLoading] = (0, import_react2.useState)(false);
47
- const [isFirstLoad, setIsFirstLoad] = (0, import_react2.useState)(true);
48
- const [hasMore, setHasMore] = (0, import_react2.useState)(true);
49
- const [nextCursor, setNextCursor] = (0, import_react2.useState)();
50
- const [unread, setUnread] = (0, import_react2.useState)(0);
51
- const handleMarkAsRead = (0, import_react2.useCallback)(async (id) => {
52
- try {
53
- await client.notification.markAsRead(id);
54
- setNotifications((prev) => {
55
- return prev.map((notification) => {
56
- if (notification._id === id) {
57
- return {
58
- ...notification,
59
- isRead: true
60
- };
61
- }
62
- return notification;
63
- });
64
- });
65
- } catch (error2) {
66
- }
67
- }, []);
68
- const fetchNotifications = (0, import_react2.useCallback)(async () => {
69
- if (isLoading) return;
70
- try {
71
- setIsLoading(true);
72
- const res = await client.notification.getNotifications({
73
- ...nextCursor ? { cursor: nextCursor } : {}
74
- });
75
- setNotifications((prev) => {
76
- return [
77
- ...prev,
78
- ...res.data.filter((notification) => !prev.find((n) => n._id === notification._id)).map((notification) => ({
79
- ...notification,
80
- markAsRead: () => handleMarkAsRead(notification._id)
81
- }))
82
- ];
83
- });
84
- setHasMore(!!res.pagination.continueCursor);
85
- setNextCursor(res.pagination.continueCursor);
86
- setUnread(res.unread);
87
- } catch (error2) {
88
- setIsError(true);
89
- if (error2 instanceof Error) {
90
- setError(error2);
91
- } else {
92
- setError(new Error("Unknown error"));
93
- }
94
- } finally {
95
- setIsLoading(false);
96
- setIsFirstLoad(false);
97
- }
98
- }, [isLoading, nextCursor, handleMarkAsRead]);
99
- (0, import_react2.useEffect)(() => {
100
- fetchNotifications();
101
- }, []);
102
- (0, import_react2.useEffect)(() => {
103
- const handler = (notifications2) => {
104
- setNotifications((prev) => {
105
- return [
106
- ...notifications2.filter((notification) => {
107
- const foundIndex = prev.findIndex((n) => n._id === notification._id);
108
- if (foundIndex) {
109
- prev[foundIndex] = {
110
- ...notification,
111
- markAsRead: () => handleMarkAsRead(notification._id)
112
- };
113
- }
114
- return foundIndex === -1;
115
- }).map((notification) => ({
116
- ...notification,
117
- markAsRead: () => handleMarkAsRead(notification._id)
118
- })),
119
- ...prev
120
- ];
121
- });
122
- };
123
- client.notification.on(handler);
124
- return () => {
125
- client.notification.off(handler);
126
- };
127
- }, [handleMarkAsRead]);
128
- const fetchMore = (0, import_react2.useCallback)(() => {
129
- fetchNotifications();
130
- }, [fetchNotifications]);
131
- return {
132
- notifications,
133
- isLoading,
134
- isFirstLoad,
135
- isError,
136
- error,
137
- hasMore,
138
- unread,
139
- fetchMore
140
- };
141
- };
142
- // Annotate the CommonJS export names for ESM import in node:
143
- 0 && (module.exports = {
144
- useNotifications
145
- });
146
- //# sourceMappingURL=index.cjs.map
2
+ "use strict";var k=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var L=(e,n)=>{for(var i in n)k(e,i,{get:n[i],enumerable:!0})},b=(e,n,i,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of T(n))!F.call(e,a)&&a!==i&&k(e,a,{get:()=>n[a],enumerable:!(f=M(n,a))||f.enumerable});return e};var S=e=>b(k({},"__esModule",{value:!0}),e);var H={};L(H,{useNotifications:()=>W});module.exports=S(H);var r=require("react");var V=require("@tnf-dev/js"),C=require("react");var U=require("react/jsx-runtime"),N=(0,C.createContext)({applicationId:"",subscriberId:""});var W=()=>{let{client:e}=(0,r.useContext)(N),[n,i]=(0,r.useState)([]),[f,a]=(0,r.useState)(!1),[g,x]=(0,r.useState)(null),[u,y]=(0,r.useState)(!1),[h,P]=(0,r.useState)(!0),[_,A]=(0,r.useState)(!0),[l,E]=(0,r.useState)(),[I,R]=(0,r.useState)(0),d=(0,r.useCallback)(async t=>{try{await e.notification.markAsRead(t),i(c=>c.map(o=>o._id===t?{...o,isRead:!0}:o))}catch{}},[]),m=(0,r.useCallback)(async()=>{if(!u)try{y(!0);let t=await e.notification.getNotifications({...l?{cursor:l}:{}});i(c=>[...c,...t.data.filter(o=>!c.find(s=>s._id===o._id)).map(o=>({...o,markAsRead:()=>d(o._id)}))]),A(!!t.pagination.continueCursor),E(t.pagination.continueCursor),R(t.unread)}catch(t){a(!0),t instanceof Error?x(t):x(new Error("Unknown error"))}finally{y(!1),P(!1)}},[u,l,d]);(0,r.useEffect)(()=>{m()},[]),(0,r.useEffect)(()=>{let t=c=>{i(o=>[...c.filter(s=>{let p=o.findIndex(w=>w._id===s._id);return p&&(o[p]={...s,markAsRead:()=>d(s._id)}),p===-1}).map(s=>({...s,markAsRead:()=>d(s._id)})),...o])};return e.notification.on(t),()=>{e.notification.off(t)}},[d]);let v=(0,r.useCallback)(()=>{m()},[m]);return{notifications:n,isLoading:u,isFirstLoad:h,isError:f,error:g,hasMore:_,unread:I,fetchMore:v}};0&&(module.exports={useNotifications});
@@ -1,144 +1,2 @@
1
1
  "use client"
2
- "use strict";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/hooks/useNotifications.ts
22
- var useNotifications_exports = {};
23
- __export(useNotifications_exports, {
24
- useNotifications: () => useNotifications
25
- });
26
- module.exports = __toCommonJS(useNotifications_exports);
27
- var import_react2 = require("react");
28
-
29
- // src/contexts/TeknifyProvider.tsx
30
- var import_js = require("@tnf-dev/js");
31
- var import_react = require("react");
32
- var import_jsx_runtime = require("react/jsx-runtime");
33
- var TeknifyContext = (0, import_react.createContext)({
34
- applicationId: "",
35
- subscriberId: ""
36
- });
37
-
38
- // src/hooks/useNotifications.ts
39
- var useNotifications = () => {
40
- const { client } = (0, import_react2.useContext)(TeknifyContext);
41
- const [notifications, setNotifications] = (0, import_react2.useState)([]);
42
- const [isError, setIsError] = (0, import_react2.useState)(false);
43
- const [error, setError] = (0, import_react2.useState)(null);
44
- const [isLoading, setIsLoading] = (0, import_react2.useState)(false);
45
- const [isFirstLoad, setIsFirstLoad] = (0, import_react2.useState)(true);
46
- const [hasMore, setHasMore] = (0, import_react2.useState)(true);
47
- const [nextCursor, setNextCursor] = (0, import_react2.useState)();
48
- const [unread, setUnread] = (0, import_react2.useState)(0);
49
- const handleMarkAsRead = (0, import_react2.useCallback)(async (id) => {
50
- try {
51
- await client.notification.markAsRead(id);
52
- setNotifications((prev) => {
53
- return prev.map((notification) => {
54
- if (notification._id === id) {
55
- return {
56
- ...notification,
57
- isRead: true
58
- };
59
- }
60
- return notification;
61
- });
62
- });
63
- } catch (error2) {
64
- }
65
- }, []);
66
- const fetchNotifications = (0, import_react2.useCallback)(async () => {
67
- if (isLoading) return;
68
- try {
69
- setIsLoading(true);
70
- const res = await client.notification.getNotifications({
71
- ...nextCursor ? { cursor: nextCursor } : {}
72
- });
73
- setNotifications((prev) => {
74
- return [
75
- ...prev,
76
- ...res.data.filter((notification) => !prev.find((n) => n._id === notification._id)).map((notification) => ({
77
- ...notification,
78
- markAsRead: () => handleMarkAsRead(notification._id)
79
- }))
80
- ];
81
- });
82
- setHasMore(!!res.pagination.continueCursor);
83
- setNextCursor(res.pagination.continueCursor);
84
- setUnread(res.unread);
85
- } catch (error2) {
86
- setIsError(true);
87
- if (error2 instanceof Error) {
88
- setError(error2);
89
- } else {
90
- setError(new Error("Unknown error"));
91
- }
92
- } finally {
93
- setIsLoading(false);
94
- setIsFirstLoad(false);
95
- }
96
- }, [isLoading, nextCursor, handleMarkAsRead]);
97
- (0, import_react2.useEffect)(() => {
98
- fetchNotifications();
99
- }, []);
100
- (0, import_react2.useEffect)(() => {
101
- const handler = (notifications2) => {
102
- setNotifications((prev) => {
103
- return [
104
- ...notifications2.filter((notification) => {
105
- const foundIndex = prev.findIndex((n) => n._id === notification._id);
106
- if (foundIndex) {
107
- prev[foundIndex] = {
108
- ...notification,
109
- markAsRead: () => handleMarkAsRead(notification._id)
110
- };
111
- }
112
- return foundIndex === -1;
113
- }).map((notification) => ({
114
- ...notification,
115
- markAsRead: () => handleMarkAsRead(notification._id)
116
- })),
117
- ...prev
118
- ];
119
- });
120
- };
121
- client.notification.on(handler);
122
- return () => {
123
- client.notification.off(handler);
124
- };
125
- }, [handleMarkAsRead]);
126
- const fetchMore = (0, import_react2.useCallback)(() => {
127
- fetchNotifications();
128
- }, [fetchNotifications]);
129
- return {
130
- notifications,
131
- isLoading,
132
- isFirstLoad,
133
- isError,
134
- error,
135
- hasMore,
136
- unread,
137
- fetchMore
138
- };
139
- };
140
- // Annotate the CommonJS export names for ESM import in node:
141
- 0 && (module.exports = {
142
- useNotifications
143
- });
144
- //# sourceMappingURL=useNotifications.cjs.map
2
+ "use strict";var p=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var L=(e,n)=>{for(var i in n)p(e,i,{get:n[i],enumerable:!0})},b=(e,n,i,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of T(n))!F.call(e,a)&&a!==i&&p(e,a,{get:()=>n[a],enumerable:!(f=M(n,a))||f.enumerable});return e};var S=e=>b(p({},"__esModule",{value:!0}),e);var H={};L(H,{useNotifications:()=>W});module.exports=S(H);var r=require("react");var V=require("@tnf-dev/js"),C=require("react");var U=require("react/jsx-runtime"),N=(0,C.createContext)({applicationId:"",subscriberId:""});var W=()=>{let{client:e}=(0,r.useContext)(N),[n,i]=(0,r.useState)([]),[f,a]=(0,r.useState)(!1),[g,x]=(0,r.useState)(null),[u,y]=(0,r.useState)(!1),[h,P]=(0,r.useState)(!0),[_,A]=(0,r.useState)(!0),[l,E]=(0,r.useState)(),[I,R]=(0,r.useState)(0),d=(0,r.useCallback)(async t=>{try{await e.notification.markAsRead(t),i(c=>c.map(o=>o._id===t?{...o,isRead:!0}:o))}catch{}},[]),m=(0,r.useCallback)(async()=>{if(!u)try{y(!0);let t=await e.notification.getNotifications({...l?{cursor:l}:{}});i(c=>[...c,...t.data.filter(o=>!c.find(s=>s._id===o._id)).map(o=>({...o,markAsRead:()=>d(o._id)}))]),A(!!t.pagination.continueCursor),E(t.pagination.continueCursor),R(t.unread)}catch(t){a(!0),t instanceof Error?x(t):x(new Error("Unknown error"))}finally{y(!1),P(!1)}},[u,l,d]);(0,r.useEffect)(()=>{m()},[]),(0,r.useEffect)(()=>{let t=c=>{i(o=>[...c.filter(s=>{let k=o.findIndex(w=>w._id===s._id);return k&&(o[k]={...s,markAsRead:()=>d(s._id)}),k===-1}).map(s=>({...s,markAsRead:()=>d(s._id)})),...o])};return e.notification.on(t),()=>{e.notification.off(t)}},[d]);let v=(0,r.useCallback)(()=>{m()},[m]);return{notifications:n,isLoading:u,isFirstLoad:h,isError:f,error:g,hasMore:_,unread:I,fetchMore:v}};0&&(module.exports={useNotifications});