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

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 +2 -2
  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 +0,0 @@
1
- {"version":3,"sources":["../../../src/dto/index.ts"],"sourcesContent":["export * from './notifications';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/dto/notifications/index.ts"],"sourcesContent":["export * from './notification.interface';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/dto/notifications/notification.interface.ts"],"sourcesContent":["import { Notification as BaseNotification } from '@tnf-dev/core';\n\nexport interface Notification extends BaseNotification {\n markAsRead: () => Promise<void>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/hooks/index.ts","../../../src/hooks/useNotifications.ts","../../../src/contexts/TeknifyProvider.tsx"],"sourcesContent":["export * from './useNotifications';\n","import { useCallback, useContext, useEffect, useState } from 'react';\nimport { TeknifyContext } from '../contexts';\nimport { Notification } from '../dto';\n\nexport const useNotifications = () => {\n const { client } = useContext(TeknifyContext);\n const [notifications, setNotifications] = useState<Notification[]>([]);\n const [isError, setIsError] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [isFirstLoad, setIsFirstLoad] = useState(true);\n const [hasMore, setHasMore] = useState(true);\n const [nextCursor, setNextCursor] = useState<string | undefined>();\n const [unread, setUnread] = useState(0);\n\n const handleMarkAsRead = useCallback(async (id: string) => {\n try {\n await client.notification.markAsRead(id);\n setNotifications((prev) => {\n return prev.map((notification) => {\n if (notification._id === id) {\n return {\n ...notification,\n isRead: true,\n };\n }\n return notification;\n });\n });\n } catch (error) {}\n }, []);\n\n const fetchNotifications = useCallback(async () => {\n if (isLoading) return;\n try {\n setIsLoading(true);\n const res = await client.notification.getNotifications({\n ...(nextCursor ? { cursor: nextCursor } : {}),\n });\n\n setNotifications((prev) => {\n return [\n ...prev,\n ...res.data\n .filter((notification) => !prev.find((n) => n._id === notification._id))\n .map((notification) => ({\n ...notification,\n markAsRead: () => handleMarkAsRead(notification._id),\n })),\n ];\n });\n setHasMore(!!res.pagination.continueCursor);\n setNextCursor(res.pagination.continueCursor);\n setUnread(res.unread);\n } catch (error) {\n setIsError(true);\n if (error instanceof Error) {\n setError(error);\n } else {\n setError(new Error('Unknown error'));\n }\n } finally {\n setIsLoading(false);\n setIsFirstLoad(false);\n }\n }, [isLoading, nextCursor, handleMarkAsRead]);\n\n useEffect(() => {\n fetchNotifications();\n }, []);\n\n useEffect(() => {\n const handler = (notifications: Array<Omit<Notification, 'markAsRead'>>) => {\n setNotifications((prev) => {\n return [\n ...notifications\n .filter((notification) => {\n const foundIndex = prev.findIndex((n) => n._id === notification._id);\n if (foundIndex) {\n prev[foundIndex] = {\n ...notification,\n markAsRead: () => handleMarkAsRead(notification._id),\n };\n }\n return foundIndex === -1;\n })\n .map((notification) => ({\n ...notification,\n markAsRead: () => handleMarkAsRead(notification._id),\n })),\n ...prev,\n ];\n });\n };\n client.notification.on(handler);\n return () => {\n client.notification.off(handler);\n };\n }, [handleMarkAsRead]);\n\n const fetchMore = useCallback(() => {\n fetchNotifications();\n }, [fetchNotifications]);\n\n return {\n notifications,\n isLoading,\n isFirstLoad,\n isError,\n error,\n hasMore,\n unread,\n fetchMore,\n };\n};\n","import { TeknifyClient } from '@tnf-dev/js';\nimport { createContext, FC, PropsWithChildren, useMemo } from 'react';\nimport StyleProvider from './StyleProvider';\ninterface NotekProviderProps extends PropsWithChildren {\n applicationId: string;\n subscriberId: string;\n}\n\ninterface NotekContextValues {\n applicationId: string;\n subscriberId: string;\n client: TeknifyClient;\n}\n\nexport const TeknifyContext = createContext<NotekContextValues>({\n applicationId: '',\n subscriberId: '',\n} as any);\n\nconst NotekProvider: FC<NotekProviderProps> = ({ applicationId, subscriberId, children, ...props }) => {\n const values: NotekContextValues = useMemo(\n () => ({\n applicationId,\n subscriberId,\n client: new TeknifyClient({\n applicationId,\n subscriberId,\n }),\n }),\n [applicationId, subscriberId],\n );\n\n return (\n <TeknifyContext.Provider value={values}>\n <StyleProvider>{children}</StyleProvider>\n </TeknifyContext.Provider>\n );\n};\n\nexport default NotekProvider;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAA6D;;;ACA7D,gBAA8B;AAC9B,mBAA8D;AAiCxD;AApBC,IAAM,qBAAiB,4BAAkC;AAAA,EAC9D,eAAe;AAAA,EACf,cAAc;AAChB,CAAQ;;;ADbD,IAAM,mBAAmB,MAAM;AACpC,QAAM,EAAE,OAAO,QAAI,0BAAW,cAAc;AAC5C,QAAM,CAAC,eAAe,gBAAgB,QAAI,wBAAyB,CAAC,CAAC;AACrE,QAAM,CAAC,SAAS,UAAU,QAAI,wBAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAuB,IAAI;AACrD,QAAM,CAAC,WAAW,YAAY,QAAI,wBAAS,KAAK;AAChD,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAS,IAAI;AACnD,QAAM,CAAC,SAAS,UAAU,QAAI,wBAAS,IAAI;AAC3C,QAAM,CAAC,YAAY,aAAa,QAAI,wBAA6B;AACjE,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAAS,CAAC;AAEtC,QAAM,uBAAmB,2BAAY,OAAO,OAAe;AACzD,QAAI;AACF,YAAM,OAAO,aAAa,WAAW,EAAE;AACvC,uBAAiB,CAAC,SAAS;AACzB,eAAO,KAAK,IAAI,CAAC,iBAAiB;AAChC,cAAI,aAAa,QAAQ,IAAI;AAC3B,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,QAAQ;AAAA,YACV;AAAA,UACF;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH,CAAC;AAAA,IACH,SAASC,QAAO;AAAA,IAAC;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,QAAM,yBAAqB,2BAAY,YAAY;AACjD,QAAI,UAAW;AACf,QAAI;AACF,mBAAa,IAAI;AACjB,YAAM,MAAM,MAAM,OAAO,aAAa,iBAAiB;AAAA,QACrD,GAAI,aAAa,EAAE,QAAQ,WAAW,IAAI,CAAC;AAAA,MAC7C,CAAC;AAED,uBAAiB,CAAC,SAAS;AACzB,eAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG,IAAI,KACJ,OAAO,CAAC,iBAAiB,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,QAAQ,aAAa,GAAG,CAAC,EACtE,IAAI,CAAC,kBAAkB;AAAA,YACtB,GAAG;AAAA,YACH,YAAY,MAAM,iBAAiB,aAAa,GAAG;AAAA,UACrD,EAAE;AAAA,QACN;AAAA,MACF,CAAC;AACD,iBAAW,CAAC,CAAC,IAAI,WAAW,cAAc;AAC1C,oBAAc,IAAI,WAAW,cAAc;AAC3C,gBAAU,IAAI,MAAM;AAAA,IACtB,SAASA,QAAO;AACd,iBAAW,IAAI;AACf,UAAIA,kBAAiB,OAAO;AAC1B,iBAASA,MAAK;AAAA,MAChB,OAAO;AACL,iBAAS,IAAI,MAAM,eAAe,CAAC;AAAA,MACrC;AAAA,IACF,UAAE;AACA,mBAAa,KAAK;AAClB,qBAAe,KAAK;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,gBAAgB,CAAC;AAE5C,+BAAU,MAAM;AACd,uBAAmB;AAAA,EACrB,GAAG,CAAC,CAAC;AAEL,+BAAU,MAAM;AACd,UAAM,UAAU,CAACC,mBAA2D;AAC1E,uBAAiB,CAAC,SAAS;AACzB,eAAO;AAAA,UACL,GAAGA,eACA,OAAO,CAAC,iBAAiB;AACxB,kBAAM,aAAa,KAAK,UAAU,CAAC,MAAM,EAAE,QAAQ,aAAa,GAAG;AACnE,gBAAI,YAAY;AACd,mBAAK,UAAU,IAAI;AAAA,gBACjB,GAAG;AAAA,gBACH,YAAY,MAAM,iBAAiB,aAAa,GAAG;AAAA,cACrD;AAAA,YACF;AACA,mBAAO,eAAe;AAAA,UACxB,CAAC,EACA,IAAI,CAAC,kBAAkB;AAAA,YACtB,GAAG;AAAA,YACH,YAAY,MAAM,iBAAiB,aAAa,GAAG;AAAA,UACrD,EAAE;AAAA,UACJ,GAAG;AAAA,QACL;AAAA,MACF,CAAC;AAAA,IACH;AACA,WAAO,aAAa,GAAG,OAAO;AAC9B,WAAO,MAAM;AACX,aAAO,aAAa,IAAI,OAAO;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,gBAAY,2BAAY,MAAM;AAClC,uBAAmB;AAAA,EACrB,GAAG,CAAC,kBAAkB,CAAC;AAEvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":["import_react","error","notifications"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/hooks/useNotifications.ts","../../../src/contexts/TeknifyProvider.tsx"],"sourcesContent":["import { useCallback, useContext, useEffect, useState } from 'react';\nimport { TeknifyContext } from '../contexts';\nimport { Notification } from '../dto';\n\nexport const useNotifications = () => {\n const { client } = useContext(TeknifyContext);\n const [notifications, setNotifications] = useState<Notification[]>([]);\n const [isError, setIsError] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [isFirstLoad, setIsFirstLoad] = useState(true);\n const [hasMore, setHasMore] = useState(true);\n const [nextCursor, setNextCursor] = useState<string | undefined>();\n const [unread, setUnread] = useState(0);\n\n const handleMarkAsRead = useCallback(async (id: string) => {\n try {\n await client.notification.markAsRead(id);\n setNotifications((prev) => {\n return prev.map((notification) => {\n if (notification._id === id) {\n return {\n ...notification,\n isRead: true,\n };\n }\n return notification;\n });\n });\n } catch (error) {}\n }, []);\n\n const fetchNotifications = useCallback(async () => {\n if (isLoading) return;\n try {\n setIsLoading(true);\n const res = await client.notification.getNotifications({\n ...(nextCursor ? { cursor: nextCursor } : {}),\n });\n\n setNotifications((prev) => {\n return [\n ...prev,\n ...res.data\n .filter((notification) => !prev.find((n) => n._id === notification._id))\n .map((notification) => ({\n ...notification,\n markAsRead: () => handleMarkAsRead(notification._id),\n })),\n ];\n });\n setHasMore(!!res.pagination.continueCursor);\n setNextCursor(res.pagination.continueCursor);\n setUnread(res.unread);\n } catch (error) {\n setIsError(true);\n if (error instanceof Error) {\n setError(error);\n } else {\n setError(new Error('Unknown error'));\n }\n } finally {\n setIsLoading(false);\n setIsFirstLoad(false);\n }\n }, [isLoading, nextCursor, handleMarkAsRead]);\n\n useEffect(() => {\n fetchNotifications();\n }, []);\n\n useEffect(() => {\n const handler = (notifications: Array<Omit<Notification, 'markAsRead'>>) => {\n setNotifications((prev) => {\n return [\n ...notifications\n .filter((notification) => {\n const foundIndex = prev.findIndex((n) => n._id === notification._id);\n if (foundIndex) {\n prev[foundIndex] = {\n ...notification,\n markAsRead: () => handleMarkAsRead(notification._id),\n };\n }\n return foundIndex === -1;\n })\n .map((notification) => ({\n ...notification,\n markAsRead: () => handleMarkAsRead(notification._id),\n })),\n ...prev,\n ];\n });\n };\n client.notification.on(handler);\n return () => {\n client.notification.off(handler);\n };\n }, [handleMarkAsRead]);\n\n const fetchMore = useCallback(() => {\n fetchNotifications();\n }, [fetchNotifications]);\n\n return {\n notifications,\n isLoading,\n isFirstLoad,\n isError,\n error,\n hasMore,\n unread,\n fetchMore,\n };\n};\n","import { TeknifyClient } from '@tnf-dev/js';\nimport { createContext, FC, PropsWithChildren, useMemo } from 'react';\nimport StyleProvider from './StyleProvider';\ninterface NotekProviderProps extends PropsWithChildren {\n applicationId: string;\n subscriberId: string;\n}\n\ninterface NotekContextValues {\n applicationId: string;\n subscriberId: string;\n client: TeknifyClient;\n}\n\nexport const TeknifyContext = createContext<NotekContextValues>({\n applicationId: '',\n subscriberId: '',\n} as any);\n\nconst NotekProvider: FC<NotekProviderProps> = ({ applicationId, subscriberId, children, ...props }) => {\n const values: NotekContextValues = useMemo(\n () => ({\n applicationId,\n subscriberId,\n client: new TeknifyClient({\n applicationId,\n subscriberId,\n }),\n }),\n [applicationId, subscriberId],\n );\n\n return (\n <TeknifyContext.Provider value={values}>\n <StyleProvider>{children}</StyleProvider>\n </TeknifyContext.Provider>\n );\n};\n\nexport default NotekProvider;\n"],"mappings":"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","names":["import_react","error","notifications"]}