@sendbird/uikit-chat-hooks 3.7.5 → 3.8.0

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 (77) hide show
  1. package/lib/commonjs/channel/useChannelMessagesReducer.js +3 -4
  2. package/lib/commonjs/channel/useChannelMessagesReducer.js.map +1 -1
  3. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  5. package/lib/commonjs/channel/useGroupChannelList/reducer.js +3 -4
  6. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  7. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +3 -3
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  11. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +13 -13
  12. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  13. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +4 -4
  14. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  15. package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
  16. package/lib/commonjs/channel/useOpenChannelList/index.js.map +1 -1
  17. package/lib/commonjs/channel/useOpenChannelList/reducer.js +3 -4
  18. package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
  19. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  20. package/lib/commonjs/channel/useOpenChannelMessages/index.js.map +1 -1
  21. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +6 -6
  22. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  23. package/lib/commonjs/common/useAppFeatures.js.map +1 -1
  24. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  25. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  26. package/lib/commonjs/common/useTotalUnreadMessageCount.js +1 -1
  27. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  28. package/lib/commonjs/common/useUserList.js +2 -4
  29. package/lib/commonjs/common/useUserList.js.map +1 -1
  30. package/lib/commonjs/handler/useChannelHandler.js +3 -7
  31. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  32. package/lib/commonjs/handler/useConnectionHandler.js +2 -5
  33. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  34. package/lib/commonjs/handler/useUserEventHandler.js +2 -5
  35. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/model/CustomQuery.js.map +1 -1
  38. package/lib/commonjs/types.js.map +1 -1
  39. package/lib/module/channel/useChannelMessagesReducer.js +3 -4
  40. package/lib/module/channel/useChannelMessagesReducer.js.map +1 -1
  41. package/lib/module/channel/useGroupChannel.js.map +1 -1
  42. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  43. package/lib/module/channel/useGroupChannelList/reducer.js +3 -4
  44. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  45. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +3 -3
  46. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  47. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  48. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  49. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +13 -13
  50. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  51. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +4 -4
  52. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  53. package/lib/module/channel/useOpenChannel.js.map +1 -1
  54. package/lib/module/channel/useOpenChannelList/index.js.map +1 -1
  55. package/lib/module/channel/useOpenChannelList/reducer.js +3 -4
  56. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  57. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  58. package/lib/module/channel/useOpenChannelMessages/index.js.map +1 -1
  59. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +6 -6
  60. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  61. package/lib/module/common/useAppFeatures.js.map +1 -1
  62. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  63. package/lib/module/common/usePushTrigger.js.map +1 -1
  64. package/lib/module/common/useTotalUnreadMessageCount.js +1 -1
  65. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  66. package/lib/module/common/useUserList.js +2 -4
  67. package/lib/module/common/useUserList.js.map +1 -1
  68. package/lib/module/handler/useChannelHandler.js +3 -7
  69. package/lib/module/handler/useChannelHandler.js.map +1 -1
  70. package/lib/module/handler/useConnectionHandler.js +2 -5
  71. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  72. package/lib/module/handler/useUserEventHandler.js +2 -5
  73. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  74. package/lib/module/index.js.map +1 -1
  75. package/lib/module/model/CustomQuery.js.map +1 -1
  76. package/lib/module/types.js.map +1 -1
  77. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","createUserQuery","sdk","queryCreator","createApplicationUserListQuery","useUserList","options","query","useRef","error","setError","useState","loading","setLoading","refreshing","setRefreshing","users","setUsers","sortedUsers","useMemo","sortComparator","sort","upsertUser","useFreshCallback","user","_ref","draft","userIdx","findIndex","it","userId","push","deleteUser","_ref2","splice","updateUsers","clearPrev","prev","concat","init","_query$current","current","hasNext","_query$current2","next","catch","e","Logger","code","SBErrorCode","UNAUTHORIZED_REQUEST","warn","SBErrorMessage","ACL","useAsyncEffect","refresh","_query$current3","isLoading","nextUsers","exports"],"sources":["useUserList.ts"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\n\nimport type { Optional, SendbirdChatSDK, SendbirdUser, UserStruct } from '@sendbird/uikit-utils';\nimport { Logger, SBErrorCode, SBErrorMessage, useAsyncEffect, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { CustomQueryInterface, UseUserListOptions, UseUserListReturn } from '../types';\n\nconst createUserQuery = <User extends UserStruct>(\n sdk: SendbirdChatSDK,\n queryCreator?: UseUserListOptions<User>['queryCreator'],\n) => {\n if (queryCreator) return queryCreator();\n // In order to use the API, the option must be turned on in the dashboard.\n return sdk.createApplicationUserListQuery() as unknown as CustomQueryInterface<User>;\n};\n\n/**\n * Get user list from query.\n * default query uses 'instance.createApplicationUserListQuery'\n * The response type of hook is depends on return type of 'query.next()'\n *\n * You can call hook with your custom query using {@link CustomQuery}\n * Or you can create your 'CustomQueryClass' implemented {@link CustomQueryInterface}'\n *\n * ```example\n * const { users } = useUserList(sdk, {\n * queryCreator: () => {\n * const friendQuery = sdk.createFriendListQuery();\n * return new CustomQuery({\n * next: () => friendQuery.next(),\n * isLoading: () => friendQuery.isLoading,\n * hasNext: () => friendQuery.hasMore,\n * });\n * }\n * })\n * ```\n * */\nexport const useUserList = <\n Options extends UseUserListOptions<UserStruct>,\n QueriedUser extends UserStruct = Options['queryCreator'] extends Optional<\n () => CustomQueryInterface<infer User extends UserStruct>\n >\n ? User\n : SendbirdUser,\n>(\n sdk: SendbirdChatSDK,\n options?: UseUserListOptions<QueriedUser>,\n): UseUserListReturn<QueriedUser> => {\n const query = useRef<CustomQueryInterface<QueriedUser>>();\n\n const [error, setError] = useState<unknown>(null);\n const [loading, setLoading] = useState(false);\n const [refreshing, setRefreshing] = useState(false);\n\n const [users, setUsers] = useState<QueriedUser[]>([]);\n const sortedUsers = useMemo((): QueriedUser[] => {\n if (options?.sortComparator) return users.sort(options.sortComparator);\n return users;\n }, [users, options?.sortComparator]);\n\n const upsertUser = useFreshCallback((user: QueriedUser) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === user.userId);\n if (userIdx > -1) draft[userIdx] = user;\n else draft.push(user);\n return draft;\n });\n });\n\n const deleteUser = useFreshCallback((userId: QueriedUser['userId']) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === userId);\n if (userIdx > -1) draft.splice(userIdx, 1);\n return draft;\n });\n });\n\n const updateUsers = (users: QueriedUser[], clearPrev: boolean) => {\n if (clearPrev) setUsers(users);\n else setUsers((prev) => prev.concat(users));\n };\n\n const init = useFreshCallback(async () => {\n query.current = createUserQuery<QueriedUser>(sdk, options?.queryCreator);\n if (query.current?.hasNext) {\n const users = await query.current?.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.UNAUTHORIZED_REQUEST) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(users, true);\n }\n });\n\n useAsyncEffect(async () => {\n setLoading(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n setUsers([]);\n } finally {\n setLoading(false);\n }\n }, []);\n\n const refresh = useFreshCallback(async () => {\n setRefreshing(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n setUsers([]);\n } finally {\n setRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (query.current && query.current?.hasNext && !query.current.isLoading) {\n const nextUsers = await query.current.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.UNAUTHORIZED_REQUEST) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(nextUsers, false);\n }\n });\n\n return {\n loading,\n error,\n users: sortedUsers,\n upsertUser,\n deleteUser,\n next,\n refreshing,\n refresh,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","createUserQuery","sdk","queryCreator","createApplicationUserListQuery","useUserList","options","query","useRef","error","setError","useState","loading","setLoading","refreshing","setRefreshing","users","setUsers","sortedUsers","useMemo","sortComparator","sort","upsertUser","useFreshCallback","user","draft","userIdx","findIndex","it","userId","push","deleteUser","splice","updateUsers","clearPrev","prev","concat","init","_query$current","current","hasNext","_query$current2","next","catch","e","Logger","code","SBErrorCode","UNAUTHORIZED_REQUEST","warn","SBErrorMessage","ACL","useAsyncEffect","refresh","_query$current3","isLoading","nextUsers","exports"],"sources":["useUserList.ts"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\n\nimport type { Optional, SendbirdChatSDK, SendbirdUser, UserStruct } from '@sendbird/uikit-utils';\nimport { Logger, SBErrorCode, SBErrorMessage, useAsyncEffect, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { CustomQueryInterface, UseUserListOptions, UseUserListReturn } from '../types';\n\nconst createUserQuery = <User extends UserStruct>(\n sdk: SendbirdChatSDK,\n queryCreator?: UseUserListOptions<User>['queryCreator'],\n) => {\n if (queryCreator) return queryCreator();\n // In order to use the API, the option must be turned on in the dashboard.\n return sdk.createApplicationUserListQuery() as unknown as CustomQueryInterface<User>;\n};\n\n/**\n * Get user list from query.\n * default query uses 'instance.createApplicationUserListQuery'\n * The response type of hook is depends on return type of 'query.next()'\n *\n * You can call hook with your custom query using {@link CustomQuery}\n * Or you can create your 'CustomQueryClass' implemented {@link CustomQueryInterface}'\n *\n * ```example\n * const { users } = useUserList(sdk, {\n * queryCreator: () => {\n * const friendQuery = sdk.createFriendListQuery();\n * return new CustomQuery({\n * next: () => friendQuery.next(),\n * isLoading: () => friendQuery.isLoading,\n * hasNext: () => friendQuery.hasMore,\n * });\n * }\n * })\n * ```\n * */\nexport const useUserList = <\n Options extends UseUserListOptions<UserStruct>,\n QueriedUser extends UserStruct = Options['queryCreator'] extends Optional<\n () => CustomQueryInterface<infer User extends UserStruct>\n >\n ? User\n : SendbirdUser,\n>(\n sdk: SendbirdChatSDK,\n options?: UseUserListOptions<QueriedUser>,\n): UseUserListReturn<QueriedUser> => {\n const query = useRef<CustomQueryInterface<QueriedUser>>();\n\n const [error, setError] = useState<unknown>(null);\n const [loading, setLoading] = useState(false);\n const [refreshing, setRefreshing] = useState(false);\n\n const [users, setUsers] = useState<QueriedUser[]>([]);\n const sortedUsers = useMemo((): QueriedUser[] => {\n if (options?.sortComparator) return users.sort(options.sortComparator);\n return users;\n }, [users, options?.sortComparator]);\n\n const upsertUser = useFreshCallback((user: QueriedUser) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === user.userId);\n if (userIdx > -1) draft[userIdx] = user;\n else draft.push(user);\n return draft;\n });\n });\n\n const deleteUser = useFreshCallback((userId: QueriedUser['userId']) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === userId);\n if (userIdx > -1) draft.splice(userIdx, 1);\n return draft;\n });\n });\n\n const updateUsers = (users: QueriedUser[], clearPrev: boolean) => {\n if (clearPrev) setUsers(users);\n else setUsers((prev) => prev.concat(users));\n };\n\n const init = useFreshCallback(async () => {\n query.current = createUserQuery<QueriedUser>(sdk, options?.queryCreator);\n if (query.current?.hasNext) {\n const users = await query.current?.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.UNAUTHORIZED_REQUEST) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(users, true);\n }\n });\n\n useAsyncEffect(async () => {\n setLoading(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n setUsers([]);\n } finally {\n setLoading(false);\n }\n }, []);\n\n const refresh = useFreshCallback(async () => {\n setRefreshing(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n setUsers([]);\n } finally {\n setRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (query.current && query.current?.hasNext && !query.current.isLoading) {\n const nextUsers = await query.current.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.UNAUTHORIZED_REQUEST) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(nextUsers, false);\n }\n });\n\n return {\n loading,\n error,\n users: sortedUsers,\n upsertUser,\n deleteUser,\n next,\n refreshing,\n refresh,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -10,8 +10,7 @@ var _openChannel = require("@sendbird/chat/openChannel");
10
10
  /**
11
11
  * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
12
12
  * */
13
- const useChannelHandler = function (sdk, handlerId, hookHandler) {
14
- let type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'group';
13
+ const useChannelHandler = (sdk, handlerId, hookHandler, type = 'group') => {
15
14
  const handlerRef = (0, _react.useRef)(hookHandler);
16
15
  (0, _react.useLayoutEffect)(() => {
17
16
  handlerRef.current = hookHandler;
@@ -21,12 +20,9 @@ const useChannelHandler = function (sdk, handlerId, hookHandler) {
21
20
  const handlerKeys = Object.keys(handler);
22
21
  handlerKeys.forEach(key => {
23
22
  // @ts-ignore
24
- handler[key] = function () {
23
+ handler[key] = (...args) => {
25
24
  var _handlerRef$current, _handlerRef$current$k;
26
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27
- args[_key] = arguments[_key];
28
- }
29
- return (_handlerRef$current = handlerRef.current) === null || _handlerRef$current === void 0 ? void 0 : (_handlerRef$current$k = _handlerRef$current[key]) === null || _handlerRef$current$k === void 0 ? void 0 : _handlerRef$current$k.call(_handlerRef$current, ...args);
25
+ return (_handlerRef$current = handlerRef.current) === null || _handlerRef$current === void 0 || (_handlerRef$current$k = _handlerRef$current[key]) === null || _handlerRef$current$k === void 0 ? void 0 : _handlerRef$current$k.call(_handlerRef$current, ...args);
30
26
  };
31
27
  });
32
28
  return handler;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_openChannel","useChannelHandler","sdk","handlerId","hookHandler","type","arguments","length","undefined","handlerRef","useRef","useLayoutEffect","current","useEffect","handlerMapper","handler","handlerKeys","Object","keys","forEach","key","_handlerRef$current","_handlerRef$current$k","_len","args","Array","_key","call","groupChannel","addGroupChannelHandler","GroupChannelHandler","openChannel","addOpenChannelHandler","OpenChannelHandler","removeGroupChannelHandler","removeOpenChannelHandler","exports"],"sources":["useChannelHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { GroupChannelHandler } from '@sendbird/chat/groupChannel';\nimport { OpenChannelHandler } from '@sendbird/chat/openChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\n\ntype ChannelType = 'open' | 'group';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useChannelHandler = <T extends ChannelType = 'group'>(\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<T extends 'group' ? GroupChannelHandler : OpenChannelHandler>,\n type: T = 'group' as T,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n const handlerMapper = <T extends GroupChannelHandler | OpenChannelHandler>(handler: T): T => {\n const handlerKeys = Object.keys(handler) as (keyof T)[];\n handlerKeys.forEach((key) => {\n // @ts-ignore\n handler[key] = (...args: unknown[]) => handlerRef.current?.[key]?.(...args);\n });\n return handler;\n };\n\n if (type === 'group') {\n sdk.groupChannel.addGroupChannelHandler(handlerId, handlerMapper(new GroupChannelHandler()));\n } else if (type === 'open') {\n sdk.openChannel.addOpenChannelHandler(handlerId, handlerMapper(new OpenChannelHandler()));\n }\n\n return () => {\n if (type === 'group') {\n sdk.groupChannel.removeGroupChannelHandler(handlerId);\n } else if (type === 'open') {\n sdk.openChannel.removeOpenChannelHandler(handlerId);\n }\n };\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAKA;AACA;AACA;AACO,MAAMG,iBAAiB,GAAG,SAAAA,CAC/BC,GAAoB,EACpBC,SAAiB,EACjBC,WAAkF,EAE/E;EAAA,IADHC,IAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAEjB,MAAMG,UAAU,GAAG,IAAAC,aAAM,EAACN,WAAW,CAAC;EACtC,IAAAO,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGR,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAS,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAwDC,OAAU,IAAQ;MAC3F,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAgB;MACvDC,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;QAC3B;QACAL,OAAO,CAACK,GAAG,CAAC,GAAG;UAAA,IAAAC,mBAAA,EAAAC,qBAAA;UAAA,SAAAC,IAAA,GAAAjB,SAAA,CAAAC,MAAA,EAAIiB,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJF,IAAI,CAAAE,IAAA,IAAApB,SAAA,CAAAoB,IAAA;UAAA;UAAA,QAAAL,mBAAA,GAAgBZ,UAAU,CAACG,OAAO,cAAAS,mBAAA,wBAAAC,qBAAA,GAAlBD,mBAAA,CAAqBD,GAAG,CAAC,cAAAE,qBAAA,uBAAzBA,qBAAA,CAAAK,IAAA,CAAAN,mBAAA,EAA4B,GAAGG,IAAI,CAAC;QAAA;MAC7E,CAAC,CAAC;MACF,OAAOT,OAAO;IAChB,CAAC;IAED,IAAIV,IAAI,KAAK,OAAO,EAAE;MACpBH,GAAG,CAAC0B,YAAY,CAACC,sBAAsB,CAAC1B,SAAS,EAAEW,aAAa,CAAC,IAAIgB,iCAAmB,EAAE,CAAC,CAAC;IAC9F,CAAC,MAAM,IAAIzB,IAAI,KAAK,MAAM,EAAE;MAC1BH,GAAG,CAAC6B,WAAW,CAACC,qBAAqB,CAAC7B,SAAS,EAAEW,aAAa,CAAC,IAAImB,+BAAkB,EAAE,CAAC,CAAC;IAC3F;IAEA,OAAO,MAAM;MACX,IAAI5B,IAAI,KAAK,OAAO,EAAE;QACpBH,GAAG,CAAC0B,YAAY,CAACM,yBAAyB,CAAC/B,SAAS,CAAC;MACvD,CAAC,MAAM,IAAIE,IAAI,KAAK,MAAM,EAAE;QAC1BH,GAAG,CAAC6B,WAAW,CAACI,wBAAwB,CAAChC,SAAS,CAAC;MACrD;IACF,CAAC;EACH,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAACiC,OAAA,CAAAnC,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_openChannel","useChannelHandler","sdk","handlerId","hookHandler","type","handlerRef","useRef","useLayoutEffect","current","useEffect","handlerMapper","handler","handlerKeys","Object","keys","forEach","key","args","_handlerRef$current","_handlerRef$current$k","call","groupChannel","addGroupChannelHandler","GroupChannelHandler","openChannel","addOpenChannelHandler","OpenChannelHandler","removeGroupChannelHandler","removeOpenChannelHandler","exports"],"sources":["useChannelHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { GroupChannelHandler } from '@sendbird/chat/groupChannel';\nimport { OpenChannelHandler } from '@sendbird/chat/openChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\n\ntype ChannelType = 'open' | 'group';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useChannelHandler = <T extends ChannelType = 'group'>(\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<T extends 'group' ? GroupChannelHandler : OpenChannelHandler>,\n type: T = 'group' as T,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n const handlerMapper = <T extends GroupChannelHandler | OpenChannelHandler>(handler: T): T => {\n const handlerKeys = Object.keys(handler) as (keyof T)[];\n handlerKeys.forEach((key) => {\n // @ts-ignore\n handler[key] = (...args: unknown[]) => handlerRef.current?.[key]?.(...args);\n });\n return handler;\n };\n\n if (type === 'group') {\n sdk.groupChannel.addGroupChannelHandler(handlerId, handlerMapper(new GroupChannelHandler()));\n } else if (type === 'open') {\n sdk.openChannel.addOpenChannelHandler(handlerId, handlerMapper(new OpenChannelHandler()));\n }\n\n return () => {\n if (type === 'group') {\n sdk.groupChannel.removeGroupChannelHandler(handlerId);\n } else if (type === 'open') {\n sdk.openChannel.removeOpenChannelHandler(handlerId);\n }\n };\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAKA;AACA;AACA;AACO,MAAMG,iBAAiB,GAAGA,CAC/BC,GAAoB,EACpBC,SAAiB,EACjBC,WAAkF,EAClFC,IAAO,GAAG,OAAY,KACnB;EACH,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACH,WAAW,CAAC;EACtC,IAAAI,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGL,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAM,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAwDC,OAAU,IAAQ;MAC3F,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAgB;MACvDC,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;QAC3B;QACAL,OAAO,CAACK,GAAG,CAAC,GAAG,CAAC,GAAGC,IAAe;UAAA,IAAAC,mBAAA,EAAAC,qBAAA;UAAA,QAAAD,mBAAA,GAAKb,UAAU,CAACG,OAAO,cAAAU,mBAAA,gBAAAC,qBAAA,GAAlBD,mBAAA,CAAqBF,GAAG,CAAC,cAAAG,qBAAA,uBAAzBA,qBAAA,CAAAC,IAAA,CAAAF,mBAAA,EAA4B,GAAGD,IAAI,CAAC;QAAA;MAC7E,CAAC,CAAC;MACF,OAAON,OAAO;IAChB,CAAC;IAED,IAAIP,IAAI,KAAK,OAAO,EAAE;MACpBH,GAAG,CAACoB,YAAY,CAACC,sBAAsB,CAACpB,SAAS,EAAEQ,aAAa,CAAC,IAAIa,iCAAmB,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC,MAAM,IAAInB,IAAI,KAAK,MAAM,EAAE;MAC1BH,GAAG,CAACuB,WAAW,CAACC,qBAAqB,CAACvB,SAAS,EAAEQ,aAAa,CAAC,IAAIgB,+BAAkB,CAAC,CAAC,CAAC,CAAC;IAC3F;IAEA,OAAO,MAAM;MACX,IAAItB,IAAI,KAAK,OAAO,EAAE;QACpBH,GAAG,CAACoB,YAAY,CAACM,yBAAyB,CAACzB,SAAS,CAAC;MACvD,CAAC,MAAM,IAAIE,IAAI,KAAK,MAAM,EAAE;QAC1BH,GAAG,CAACuB,WAAW,CAACI,wBAAwB,CAAC1B,SAAS,CAAC;MACrD;IACF,CAAC;EACH,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAAC2B,OAAA,CAAA7B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -17,13 +17,10 @@ const useConnectionHandler = (sdk, handlerId, hookHandler) => {
17
17
  const handler = new _chat.ConnectionHandler();
18
18
  const handlerKeys = Object.keys(handler);
19
19
  handlerKeys.forEach(key => {
20
- handler[key] = function () {
20
+ handler[key] = (...args) => {
21
21
  var _handlerRef$current$k, _handlerRef$current;
22
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23
- args[_key] = arguments[_key];
24
- }
25
22
  // @ts-ignore
26
- (_handlerRef$current$k = (_handlerRef$current = handlerRef.current)[key]) === null || _handlerRef$current$k === void 0 ? void 0 : _handlerRef$current$k.call(_handlerRef$current, ...args);
23
+ (_handlerRef$current$k = (_handlerRef$current = handlerRef.current)[key]) === null || _handlerRef$current$k === void 0 || _handlerRef$current$k.call(_handlerRef$current, ...args);
27
24
  };
28
25
  });
29
26
  sdk.addConnectionHandler(handlerId, handler);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_chat","_uikitUtils","useConnectionHandler","sdk","handlerId","hookHandler","handlerRef","useRef","useLayoutEffect","current","useEffect","Logger","info","handler","ConnectionHandler","handlerKeys","Object","keys","forEach","key","_handlerRef$current$k","_handlerRef$current","_len","arguments","length","args","Array","_key","call","addConnectionHandler","removeConnectionHandler","exports"],"sources":["useConnectionHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { ConnectionHandler } from '@sendbird/chat';\nimport { Logger, SendbirdChatSDK } from '@sendbird/uikit-utils';\n\nexport const useConnectionHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<ConnectionHandler>,\n) => {\n const handlerRef = useRef<Partial<ConnectionHandler>>();\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n Logger.info('[useConnectionHandler]', handlerId);\n\n const handler = new ConnectionHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n handlerKeys.forEach((key) => {\n handler[key] = (...args: unknown[]) => {\n // @ts-ignore\n handlerRef.current[key]?.(...args);\n };\n });\n\n sdk.addConnectionHandler(handlerId, handler);\n return () => sdk.removeConnectionHandler(handlerId);\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,oBAAoB,GAAGA,CAClCC,GAAoB,EACpBC,SAAiB,EACjBC,WAAuC,KACpC;EACH,MAAMC,UAAU,GAAG,IAAAC,aAAM,GAA8B;EACvD,IAAAC,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGJ,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAK,gBAAS,EAAC,MAAM;IACdC,kBAAM,CAACC,IAAI,CAAC,wBAAwB,EAAER,SAAS,CAAC;IAEhD,MAAMS,OAAO,GAAG,IAAIC,uBAAiB,EAAE;IACvC,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAA6B;IACpEE,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;MAC3BN,OAAO,CAACM,GAAG,CAAC,GAAG,YAAwB;QAAA,IAAAC,qBAAA,EAAAC,mBAAA;QAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAApBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;UAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;QAAA;QACrB;QACA,CAAAP,qBAAA,IAAAC,mBAAA,GAAAf,UAAU,CAACG,OAAO,EAACU,GAAG,CAAC,cAAAC,qBAAA,uBAAvBA,qBAAA,CAAAQ,IAAA,CAAAP,mBAAA,EAA0B,GAAGI,IAAI,CAAC;MACpC,CAAC;IACH,CAAC,CAAC;IAEFtB,GAAG,CAAC0B,oBAAoB,CAACzB,SAAS,EAAES,OAAO,CAAC;IAC5C,OAAO,MAAMV,GAAG,CAAC2B,uBAAuB,CAAC1B,SAAS,CAAC;EACrD,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAAC2B,OAAA,CAAA7B,oBAAA,GAAAA,oBAAA"}
1
+ {"version":3,"names":["_react","require","_chat","_uikitUtils","useConnectionHandler","sdk","handlerId","hookHandler","handlerRef","useRef","useLayoutEffect","current","useEffect","Logger","info","handler","ConnectionHandler","handlerKeys","Object","keys","forEach","key","args","_handlerRef$current$k","_handlerRef$current","call","addConnectionHandler","removeConnectionHandler","exports"],"sources":["useConnectionHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { ConnectionHandler } from '@sendbird/chat';\nimport { Logger, SendbirdChatSDK } from '@sendbird/uikit-utils';\n\nexport const useConnectionHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<ConnectionHandler>,\n) => {\n const handlerRef = useRef<Partial<ConnectionHandler>>();\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n Logger.info('[useConnectionHandler]', handlerId);\n\n const handler = new ConnectionHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n handlerKeys.forEach((key) => {\n handler[key] = (...args: unknown[]) => {\n // @ts-ignore\n handlerRef.current[key]?.(...args);\n };\n });\n\n sdk.addConnectionHandler(handlerId, handler);\n return () => sdk.removeConnectionHandler(handlerId);\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,oBAAoB,GAAGA,CAClCC,GAAoB,EACpBC,SAAiB,EACjBC,WAAuC,KACpC;EACH,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAA6B,CAAC;EACvD,IAAAC,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGJ,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAK,gBAAS,EAAC,MAAM;IACdC,kBAAM,CAACC,IAAI,CAAC,wBAAwB,EAAER,SAAS,CAAC;IAEhD,MAAMS,OAAO,GAAG,IAAIC,uBAAiB,CAAC,CAAC;IACvC,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAA6B;IACpEE,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;MAC3BN,OAAO,CAACM,GAAG,CAAC,GAAG,CAAC,GAAGC,IAAe,KAAK;QAAA,IAAAC,qBAAA,EAAAC,mBAAA;QACrC;QACA,CAAAD,qBAAA,IAAAC,mBAAA,GAAAhB,UAAU,CAACG,OAAO,EAACU,GAAG,CAAC,cAAAE,qBAAA,eAAvBA,qBAAA,CAAAE,IAAA,CAAAD,mBAAA,EAA0B,GAAGF,IAAI,CAAC;MACpC,CAAC;IACH,CAAC,CAAC;IAEFjB,GAAG,CAACqB,oBAAoB,CAACpB,SAAS,EAAES,OAAO,CAAC;IAC5C,OAAO,MAAMV,GAAG,CAACsB,uBAAuB,CAACrB,SAAS,CAAC;EACrD,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAACsB,OAAA,CAAAxB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -17,13 +17,10 @@ const useUserEventHandler = (sdk, handlerId, hookHandler) => {
17
17
  const handler = new _chat.UserEventHandler();
18
18
  const handlerKeys = Object.keys(handler);
19
19
  handlerKeys.forEach(key => {
20
- handler[key] = function () {
20
+ handler[key] = (...args) => {
21
21
  var _handlerRef$current$k, _handlerRef$current;
22
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23
- args[_key] = arguments[_key];
24
- }
25
22
  // @ts-ignore
26
- (_handlerRef$current$k = (_handlerRef$current = handlerRef.current)[key]) === null || _handlerRef$current$k === void 0 ? void 0 : _handlerRef$current$k.call(_handlerRef$current, ...args);
23
+ (_handlerRef$current$k = (_handlerRef$current = handlerRef.current)[key]) === null || _handlerRef$current$k === void 0 || _handlerRef$current$k.call(_handlerRef$current, ...args);
27
24
  };
28
25
  });
29
26
  sdk.addUserEventHandler(handlerId, handler);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_chat","_uikitUtils","useUserEventHandler","sdk","handlerId","hookHandler","handlerRef","useRef","useLayoutEffect","current","useEffect","Logger","debug","handler","UserEventHandler","handlerKeys","Object","keys","forEach","key","_handlerRef$current$k","_handlerRef$current","_len","arguments","length","args","Array","_key","call","addUserEventHandler","removeUserEventHandler","exports"],"sources":["useUserEventHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { UserEventHandler } from '@sendbird/chat';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport const useUserEventHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<UserEventHandler>,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n Logger.debug('[useUserEventHandler] hook called by', handlerId);\n\n const handler = new UserEventHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n\n handlerKeys.forEach((key) => {\n handler[key] = (...args: unknown[]) => {\n // @ts-ignore\n handlerRef.current[key]?.(...args);\n };\n });\n\n sdk.addUserEventHandler(handlerId, handler);\n return () => sdk.removeUserEventHandler(handlerId);\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,mBAAmB,GAAGA,CACjCC,GAAoB,EACpBC,SAAiB,EACjBC,WAAsC,KACnC;EACH,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACF,WAAW,CAAC;EACtC,IAAAG,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGJ,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAK,gBAAS,EAAC,MAAM;IACdC,kBAAM,CAACC,KAAK,CAAC,sCAAsC,EAAER,SAAS,CAAC;IAE/D,MAAMS,OAAO,GAAG,IAAIC,sBAAgB,EAAE;IACtC,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAA6B;IAEpEE,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;MAC3BN,OAAO,CAACM,GAAG,CAAC,GAAG,YAAwB;QAAA,IAAAC,qBAAA,EAAAC,mBAAA;QAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAApBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;UAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;QAAA;QACrB;QACA,CAAAP,qBAAA,IAAAC,mBAAA,GAAAf,UAAU,CAACG,OAAO,EAACU,GAAG,CAAC,cAAAC,qBAAA,uBAAvBA,qBAAA,CAAAQ,IAAA,CAAAP,mBAAA,EAA0B,GAAGI,IAAI,CAAC;MACpC,CAAC;IACH,CAAC,CAAC;IAEFtB,GAAG,CAAC0B,mBAAmB,CAACzB,SAAS,EAAES,OAAO,CAAC;IAC3C,OAAO,MAAMV,GAAG,CAAC2B,sBAAsB,CAAC1B,SAAS,CAAC;EACpD,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAAC2B,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_react","require","_chat","_uikitUtils","useUserEventHandler","sdk","handlerId","hookHandler","handlerRef","useRef","useLayoutEffect","current","useEffect","Logger","debug","handler","UserEventHandler","handlerKeys","Object","keys","forEach","key","args","_handlerRef$current$k","_handlerRef$current","call","addUserEventHandler","removeUserEventHandler","exports"],"sources":["useUserEventHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { UserEventHandler } from '@sendbird/chat';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport const useUserEventHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<UserEventHandler>,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n Logger.debug('[useUserEventHandler] hook called by', handlerId);\n\n const handler = new UserEventHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n\n handlerKeys.forEach((key) => {\n handler[key] = (...args: unknown[]) => {\n // @ts-ignore\n handlerRef.current[key]?.(...args);\n };\n });\n\n sdk.addUserEventHandler(handlerId, handler);\n return () => sdk.removeUserEventHandler(handlerId);\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,mBAAmB,GAAGA,CACjCC,GAAoB,EACpBC,SAAiB,EACjBC,WAAsC,KACnC;EACH,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACF,WAAW,CAAC;EACtC,IAAAG,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGJ,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAK,gBAAS,EAAC,MAAM;IACdC,kBAAM,CAACC,KAAK,CAAC,sCAAsC,EAAER,SAAS,CAAC;IAE/D,MAAMS,OAAO,GAAG,IAAIC,sBAAgB,CAAC,CAAC;IACtC,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAA6B;IAEpEE,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;MAC3BN,OAAO,CAACM,GAAG,CAAC,GAAG,CAAC,GAAGC,IAAe,KAAK;QAAA,IAAAC,qBAAA,EAAAC,mBAAA;QACrC;QACA,CAAAD,qBAAA,IAAAC,mBAAA,GAAAhB,UAAU,CAACG,OAAO,EAACU,GAAG,CAAC,cAAAE,qBAAA,eAAvBA,qBAAA,CAAAE,IAAA,CAAAD,mBAAA,EAA0B,GAAGF,IAAI,CAAC;MACpC,CAAC;IACH,CAAC,CAAC;IAEFjB,GAAG,CAACqB,mBAAmB,CAACpB,SAAS,EAAES,OAAO,CAAC;IAC3C,OAAO,MAAMV,GAAG,CAACsB,sBAAsB,CAACrB,SAAS,CAAC;EACpD,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAACsB,OAAA,CAAAxB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_useGroupChannelList","require","_useGroupChannelMessages","_useGroupChannel","_useOpenChannelList","_useOpenChannelMessages","_useOpenChannel","_useAppFeatures","_useMessageOutgoingStatus","_usePushTrigger","_useTotalUnreadMessageCount","_useUserList","_useChannelHandler","_useConnectionHandler","_useUserEventHandler","_CustomQuery"],"sources":["index.ts"],"sourcesContent":["export { useGroupChannelList } from './channel/useGroupChannelList';\nexport { useGroupChannelMessages } from './channel/useGroupChannelMessages';\nexport { useGroupChannel } from './channel/useGroupChannel';\n\nexport { useOpenChannelList } from './channel/useOpenChannelList';\nexport { useOpenChannelMessages } from './channel/useOpenChannelMessages';\nexport { useOpenChannel } from './channel/useOpenChannel';\n\nexport { useAppFeatures } from './common/useAppFeatures';\nexport { useMessageOutgoingStatus } from './common/useMessageOutgoingStatus';\nexport { usePushTrigger } from './common/usePushTrigger';\nexport { useTotalUnreadMessageCount } from './common/useTotalUnreadMessageCount';\nexport { useUserList } from './common/useUserList';\n\nexport { useChannelHandler } from './handler/useChannelHandler';\nexport { useConnectionHandler } from './handler/useConnectionHandler';\nexport { useUserEventHandler } from './handler/useUserEventHandler';\n\nexport { CustomQuery } from './model/CustomQuery';\n\nexport type {\n UseGroupChannelList,\n UseGroupChannelListOptions,\n UseGroupChannelMessages,\n UseGroupChannelMessagesOptions,\n UseUserListOptions,\n UseUserListReturn,\n CustomQueryInterface,\n CustomBidirectionalQueryInterface,\n UseOpenChannelMessagesOptions,\n UseOpenChannelListOptions,\n UseOpenChannelList,\n UseOpenChannelMessages,\n} from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,uBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,yBAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,2BAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AAEA,IAAAW,kBAAA,GAAAX,OAAA;AACA,IAAAY,qBAAA,GAAAZ,OAAA;AACA,IAAAa,oBAAA,GAAAb,OAAA;AAEA,IAAAc,YAAA,GAAAd,OAAA"}
1
+ {"version":3,"names":["_useGroupChannelList","require","_useGroupChannelMessages","_useGroupChannel","_useOpenChannelList","_useOpenChannelMessages","_useOpenChannel","_useAppFeatures","_useMessageOutgoingStatus","_usePushTrigger","_useTotalUnreadMessageCount","_useUserList","_useChannelHandler","_useConnectionHandler","_useUserEventHandler","_CustomQuery"],"sources":["index.ts"],"sourcesContent":["export { useGroupChannelList } from './channel/useGroupChannelList';\nexport { useGroupChannelMessages } from './channel/useGroupChannelMessages';\nexport { useGroupChannel } from './channel/useGroupChannel';\n\nexport { useOpenChannelList } from './channel/useOpenChannelList';\nexport { useOpenChannelMessages } from './channel/useOpenChannelMessages';\nexport { useOpenChannel } from './channel/useOpenChannel';\n\nexport { useAppFeatures } from './common/useAppFeatures';\nexport { useMessageOutgoingStatus } from './common/useMessageOutgoingStatus';\nexport { usePushTrigger } from './common/usePushTrigger';\nexport { useTotalUnreadMessageCount } from './common/useTotalUnreadMessageCount';\nexport { useUserList } from './common/useUserList';\n\nexport { useChannelHandler } from './handler/useChannelHandler';\nexport { useConnectionHandler } from './handler/useConnectionHandler';\nexport { useUserEventHandler } from './handler/useUserEventHandler';\n\nexport { CustomQuery } from './model/CustomQuery';\n\nexport type {\n UseGroupChannelList,\n UseGroupChannelListOptions,\n UseGroupChannelMessages,\n UseGroupChannelMessagesOptions,\n UseUserListOptions,\n UseUserListReturn,\n CustomQueryInterface,\n CustomBidirectionalQueryInterface,\n UseOpenChannelMessagesOptions,\n UseOpenChannelListOptions,\n UseOpenChannelList,\n UseOpenChannelMessages,\n} from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,uBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,yBAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,2BAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AAEA,IAAAW,kBAAA,GAAAX,OAAA;AACA,IAAAY,qBAAA,GAAAZ,OAAA;AACA,IAAAa,oBAAA,GAAAb,OAAA;AAEA,IAAAc,YAAA,GAAAd,OAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["CustomQuery","constructor","params","isLoading","hasNext","next","exports"],"sources":["CustomQuery.ts"],"sourcesContent":["import type { CustomQueryInterface } from '../types';\n\ntype ConstructorParams<T> = {\n next: () => Promise<T[]>;\n isLoading: () => boolean;\n hasNext: () => boolean;\n};\n\nexport class CustomQuery<T> implements CustomQueryInterface<T> {\n constructor(private params: ConstructorParams<T>) {}\n get isLoading(): boolean {\n return this.params.isLoading();\n }\n get hasNext(): boolean {\n return this.params.hasNext();\n }\n next() {\n return this.params.next();\n }\n}\n"],"mappings":";;;;;;AAQO,MAAMA,WAAW,CAAuC;EAC7DC,WAAWA,CAASC,MAA4B,EAAE;IAAA,KAA9BA,MAA4B,GAA5BA,MAA4B;EAAG;EACnD,IAAIC,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACD,MAAM,CAACC,SAAS,EAAE;EAChC;EACA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACF,MAAM,CAACE,OAAO,EAAE;EAC9B;EACAC,IAAIA,CAAA,EAAG;IACL,OAAO,IAAI,CAACH,MAAM,CAACG,IAAI,EAAE;EAC3B;AACF;AAACC,OAAA,CAAAN,WAAA,GAAAA,WAAA"}
1
+ {"version":3,"names":["CustomQuery","constructor","params","isLoading","hasNext","next","exports"],"sources":["CustomQuery.ts"],"sourcesContent":["import type { CustomQueryInterface } from '../types';\n\ntype ConstructorParams<T> = {\n next: () => Promise<T[]>;\n isLoading: () => boolean;\n hasNext: () => boolean;\n};\n\nexport class CustomQuery<T> implements CustomQueryInterface<T> {\n constructor(private params: ConstructorParams<T>) {}\n get isLoading(): boolean {\n return this.params.isLoading();\n }\n get hasNext(): boolean {\n return this.params.hasNext();\n }\n next() {\n return this.params.next();\n }\n}\n"],"mappings":";;;;;;AAQO,MAAMA,WAAW,CAAuC;EAC7DC,WAAWA,CAASC,MAA4B,EAAE;IAAA,KAA9BA,MAA4B,GAA5BA,MAA4B;EAAG;EACnD,IAAIC,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACD,MAAM,CAACC,SAAS,CAAC,CAAC;EAChC;EACA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACF,MAAM,CAACE,OAAO,CAAC,CAAC;EAC9B;EACAC,IAAIA,CAAA,EAAG;IACL,OAAO,IAAI,CAACH,MAAM,CAACG,IAAI,CAAC,CAAC;EAC3B;AACF;AAACC,OAAA,CAAAN,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReplyType } from '@sendbird/chat/message';\nimport type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdOpenChannel,\n SendbirdOpenChannelListQuery,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n *\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n *\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> fetch next messages and append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * reset message list with starting point\n * */\n resetWithStartingPoint: (startingPoint: number, callback?: () => void) => void;\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n replyType?: ReplyType;\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: (options?: Pick<UseGroupChannelMessagesOptions, 'startingPoint'>) => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n shouldCountNewMessages?: () => boolean;\n startingPoint?: number;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n onMessagesUpdated?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseOpenChannelList\n * @description interface for open channel list hook\n * */\nexport interface UseOpenChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseOpenChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Get open channels state\n * */\n openChannels: SendbirdOpenChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseOpenChannelListOptions = {\n queryCreator?: () => SendbirdOpenChannelListQuery;\n};\n\n/**\n * @interface UseOpenChannelMessages\n * @description interface for open channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> noop\n * */\nexport interface UseOpenChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdOpenChannel, userId?: string, options?: UseOpenChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseOpenChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n onChannelDeleted?: () => void;\n onError?: (error?: unknown) => void;\n shouldCountNewMessages?: () => boolean;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReplyType } from '@sendbird/chat/message';\nimport type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdOpenChannel,\n SendbirdOpenChannelListQuery,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n *\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n *\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> fetch next messages and append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * reset message list with starting point\n * */\n resetWithStartingPoint: (startingPoint: number, callback?: () => void) => void;\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n replyType?: ReplyType;\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: (options?: Pick<UseGroupChannelMessagesOptions, 'startingPoint'>) => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n shouldCountNewMessages?: () => boolean;\n startingPoint?: number;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n onMessagesUpdated?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseOpenChannelList\n * @description interface for open channel list hook\n * */\nexport interface UseOpenChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseOpenChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Get open channels state\n * */\n openChannels: SendbirdOpenChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseOpenChannelListOptions = {\n queryCreator?: () => SendbirdOpenChannelListQuery;\n};\n\n/**\n * @interface UseOpenChannelMessages\n * @description interface for open channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> noop\n * */\nexport interface UseOpenChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdOpenChannel, userId?: string, options?: UseOpenChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseOpenChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n onChannelDeleted?: () => void;\n onError?: (error?: unknown) => void;\n shouldCountNewMessages?: () => boolean;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,10 +1,9 @@
1
1
  import { useReducer } from 'react';
2
2
  import { SendingStatus } from '@sendbird/chat/message';
3
3
  import { arrayToMapWithGetter, getMessageUniqId, isMyMessage, isNewMessage, isSendableMessage, useIIFE } from '@sendbird/uikit-utils';
4
- const defaultReducer = (_ref, action) => {
5
- let {
6
- ...draft
7
- } = _ref;
4
+ const defaultReducer = ({
5
+ ...draft
6
+ }, action) => {
8
7
  switch (action.type) {
9
8
  case 'update_refreshing':
10
9
  {
@@ -1 +1 @@
1
- {"version":3,"names":["useReducer","SendingStatus","arrayToMapWithGetter","getMessageUniqId","isMyMessage","isNewMessage","isSendableMessage","useIIFE","defaultReducer","_ref","action","draft","type","value","status","userId","currentUserId","clearBeforeAction","messagesToObject","messages","nextMessages","filter","next","prev","reqId","messageId","shouldUpdate","shouldUpdateMessage","obj","newMessages","it","messageKeys","map","forEach","key","messageIds","msgId","message","reqIds","reduce","accum","curr","sendingStatus","SUCCEEDED","useChannelMessagesReducer","sortComparator","loading","refreshing","messageMap","newMessageMap","dispatch","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","Array","from","Set","Object","values","sort"],"sources":["useChannelMessagesReducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendableMessage } from '@sendbird/chat/lib/__definition';\nimport { SendingStatus } from '@sendbird/chat/message';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport {\n SendbirdMessage,\n arrayToMapWithGetter,\n getMessageUniqId,\n isMyMessage,\n isNewMessage,\n isSendableMessage,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\ntype Options = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n};\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_new_messages';\n value: { messages: SendbirdBaseMessage[]; clearBeforeAction: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_new_messages';\n value: { messageIds: (string | number)[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdBaseMessage>;\n newMessageMap: Record<string, SendbirdBaseMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing': {\n draft['refreshing'] = action.value.status;\n return draft;\n }\n case 'update_loading': {\n draft['loading'] = action.value.status;\n return draft;\n }\n case 'update_messages': {\n const userId = action.value.currentUserId;\n\n if (action.value.clearBeforeAction) {\n draft['messageMap'] = messagesToObject(action.value.messages);\n } else {\n // Filtering meaningless message updates\n const nextMessages = action.value.messages.filter((next) => {\n if (isMyMessage(next, userId)) {\n const prev = draft['messageMap'][next.reqId] ?? draft['messageMap'][next.messageId];\n if (isMyMessage(prev, userId)) {\n const shouldUpdate = shouldUpdateMessage(prev, next);\n if (shouldUpdate) {\n // Remove existing messages before update to prevent duplicate display\n delete draft['messageMap'][prev.reqId];\n delete draft['messageMap'][prev.messageId];\n }\n return shouldUpdate;\n }\n }\n return true;\n });\n\n const obj = messagesToObject(nextMessages);\n draft['messageMap'] = { ...draft['messageMap'], ...obj };\n }\n\n return draft;\n }\n case 'update_new_messages': {\n const userId = action.value.currentUserId;\n const newMessages = action.value.messages.filter((it) => isNewMessage(it, userId));\n\n if (action.value.clearBeforeAction) {\n draft['newMessageMap'] = arrayToMapWithGetter(newMessages, getMessageUniqId);\n } else {\n // Remove existing messages before update to prevent duplicate display\n const messageKeys = newMessages.map((it) => it.messageId);\n messageKeys.forEach((key) => delete draft['newMessageMap'][key]);\n\n draft['newMessageMap'] = {\n ...draft['newMessageMap'],\n ...arrayToMapWithGetter(newMessages, getMessageUniqId),\n };\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_new_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'newMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => {\n const message = draft[key][msgId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n action.value.reqIds.forEach((reqId) => {\n const message = draft[key][reqId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n\n return draft;\n }\n }\n};\n\nconst messagesToObject = (messages: SendbirdBaseMessage[]) => {\n return messages.reduce((accum, curr) => {\n if (isSendableMessage(curr)) {\n accum[curr.reqId] = curr;\n if (curr.sendingStatus === SendingStatus.SUCCEEDED) {\n accum[curr.messageId] = curr;\n }\n } else {\n accum[curr.messageId] = curr;\n }\n return accum;\n }, {} as Record<string, SendbirdBaseMessage>);\n};\n\nconst shouldUpdateMessage = (prev: SendableMessage, next: SendableMessage) => {\n // message data update (e.g. reactions)\n if (prev.sendingStatus === SendingStatus.SUCCEEDED) return next.sendingStatus === SendingStatus.SUCCEEDED;\n\n // message sending status update\n return prev.sendingStatus !== next.sendingStatus;\n};\n\nexport const useChannelMessagesReducer = (sortComparator?: Options['sortComparator']) => {\n const [{ loading, refreshing, messageMap, newMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n newMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteMessages = (messageIds: (string | number)[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNewMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_new_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteNewMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_new_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Array.from(new Set(Object.values(messageMap))).sort(sortComparator);\n return Array.from(new Set(Object.values(messageMap)));\n });\n const newMessages = Object.values(newMessageMap);\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n deleteMessages,\n\n loading,\n refreshing,\n messages,\n\n newMessages,\n updateNewMessages,\n deleteNewMessages,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useReducer","SendingStatus","arrayToMapWithGetter","getMessageUniqId","isMyMessage","isNewMessage","isSendableMessage","useIIFE","defaultReducer","draft","action","type","value","status","userId","currentUserId","clearBeforeAction","messagesToObject","messages","nextMessages","filter","next","prev","reqId","messageId","shouldUpdate","shouldUpdateMessage","obj","newMessages","it","messageKeys","map","forEach","key","messageIds","msgId","message","reqIds","reduce","accum","curr","sendingStatus","SUCCEEDED","useChannelMessagesReducer","sortComparator","loading","refreshing","messageMap","newMessageMap","dispatch","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","Array","from","Set","Object","values","sort"],"sources":["useChannelMessagesReducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendableMessage } from '@sendbird/chat/lib/__definition';\nimport { SendingStatus } from '@sendbird/chat/message';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport {\n SendbirdMessage,\n arrayToMapWithGetter,\n getMessageUniqId,\n isMyMessage,\n isNewMessage,\n isSendableMessage,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\ntype Options = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n};\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_new_messages';\n value: { messages: SendbirdBaseMessage[]; clearBeforeAction: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_new_messages';\n value: { messageIds: (string | number)[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdBaseMessage>;\n newMessageMap: Record<string, SendbirdBaseMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing': {\n draft['refreshing'] = action.value.status;\n return draft;\n }\n case 'update_loading': {\n draft['loading'] = action.value.status;\n return draft;\n }\n case 'update_messages': {\n const userId = action.value.currentUserId;\n\n if (action.value.clearBeforeAction) {\n draft['messageMap'] = messagesToObject(action.value.messages);\n } else {\n // Filtering meaningless message updates\n const nextMessages = action.value.messages.filter((next) => {\n if (isMyMessage(next, userId)) {\n const prev = draft['messageMap'][next.reqId] ?? draft['messageMap'][next.messageId];\n if (isMyMessage(prev, userId)) {\n const shouldUpdate = shouldUpdateMessage(prev, next);\n if (shouldUpdate) {\n // Remove existing messages before update to prevent duplicate display\n delete draft['messageMap'][prev.reqId];\n delete draft['messageMap'][prev.messageId];\n }\n return shouldUpdate;\n }\n }\n return true;\n });\n\n const obj = messagesToObject(nextMessages);\n draft['messageMap'] = { ...draft['messageMap'], ...obj };\n }\n\n return draft;\n }\n case 'update_new_messages': {\n const userId = action.value.currentUserId;\n const newMessages = action.value.messages.filter((it) => isNewMessage(it, userId));\n\n if (action.value.clearBeforeAction) {\n draft['newMessageMap'] = arrayToMapWithGetter(newMessages, getMessageUniqId);\n } else {\n // Remove existing messages before update to prevent duplicate display\n const messageKeys = newMessages.map((it) => it.messageId);\n messageKeys.forEach((key) => delete draft['newMessageMap'][key]);\n\n draft['newMessageMap'] = {\n ...draft['newMessageMap'],\n ...arrayToMapWithGetter(newMessages, getMessageUniqId),\n };\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_new_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'newMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => {\n const message = draft[key][msgId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n action.value.reqIds.forEach((reqId) => {\n const message = draft[key][reqId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n\n return draft;\n }\n }\n};\n\nconst messagesToObject = (messages: SendbirdBaseMessage[]) => {\n return messages.reduce((accum, curr) => {\n if (isSendableMessage(curr)) {\n accum[curr.reqId] = curr;\n if (curr.sendingStatus === SendingStatus.SUCCEEDED) {\n accum[curr.messageId] = curr;\n }\n } else {\n accum[curr.messageId] = curr;\n }\n return accum;\n }, {} as Record<string, SendbirdBaseMessage>);\n};\n\nconst shouldUpdateMessage = (prev: SendableMessage, next: SendableMessage) => {\n // message data update (e.g. reactions)\n if (prev.sendingStatus === SendingStatus.SUCCEEDED) return next.sendingStatus === SendingStatus.SUCCEEDED;\n\n // message sending status update\n return prev.sendingStatus !== next.sendingStatus;\n};\n\nexport const useChannelMessagesReducer = (sortComparator?: Options['sortComparator']) => {\n const [{ loading, refreshing, messageMap, newMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n newMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteMessages = (messageIds: (string | number)[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNewMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_new_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteNewMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_new_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Array.from(new Set(Object.values(messageMap))).sort(sortComparator);\n return Array.from(new Set(Object.values(messageMap)));\n });\n const newMessages = Object.values(newMessageMap);\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n deleteMessages,\n\n loading,\n refreshing,\n messages,\n\n newMessages,\n updateNewMessages,\n deleteNewMessages,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useReducer","useAsyncEffect","initialState","loading","error","undefined","channel","reducer","state","nextState","useGroupChannel","sdk","channelUrl","setState","groupChannel","getChannel","e"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\ntype State = { loading: boolean; channel?: SendbirdGroupChannel; error?: unknown };\n\nconst initialState: State = { loading: true, error: undefined, channel: undefined };\nconst reducer = (state: State, nextState: Partial<State>) => ({ ...state, ...nextState });\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [state, setState] = useReducer(reducer, initialState);\n\n useAsyncEffect(async () => {\n setState(initialState);\n\n try {\n setState({ channel: await sdk.groupChannel.getChannel(channelUrl), loading: false });\n } catch (e) {\n setState({ error: e, loading: false });\n }\n }, [channelUrl]);\n\n return state;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAAgDC,cAAc,QAAQ,uBAAuB;AAI7F,MAAMC,YAAmB,GAAG;EAAEC,OAAO,EAAE,IAAI;EAAEC,KAAK,EAAEC,SAAS;EAAEC,OAAO,EAAED;AAAU,CAAC;AACnF,MAAME,OAAO,GAAGA,CAACC,KAAY,EAAEC,SAAyB,MAAM;EAAE,GAAGD,KAAK;EAAE,GAAGC;AAAU,CAAC,CAAC;AAEzF,OAAO,MAAMC,eAAe,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC3E,MAAM,CAACJ,KAAK,EAAEK,QAAQ,CAAC,GAAGb,UAAU,CAACO,OAAO,EAAEL,YAAY,CAAC;EAE3DD,cAAc,CAAC,YAAY;IACzBY,QAAQ,CAACX,YAAY,CAAC;IAEtB,IAAI;MACFW,QAAQ,CAAC;QAAEP,OAAO,EAAE,MAAMK,GAAG,CAACG,YAAY,CAACC,UAAU,CAACH,UAAU,CAAC;QAAET,OAAO,EAAE;MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,OAAOa,CAAC,EAAE;MACVH,QAAQ,CAAC;QAAET,KAAK,EAAEY,CAAC;QAAEb,OAAO,EAAE;MAAM,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAACS,UAAU,CAAC,CAAC;EAEhB,OAAOJ,KAAK;AACd,CAAC"}
1
+ {"version":3,"names":["useReducer","useAsyncEffect","initialState","loading","error","undefined","channel","reducer","state","nextState","useGroupChannel","sdk","channelUrl","setState","groupChannel","getChannel","e"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\ntype State = { loading: boolean; channel?: SendbirdGroupChannel; error?: unknown };\n\nconst initialState: State = { loading: true, error: undefined, channel: undefined };\nconst reducer = (state: State, nextState: Partial<State>) => ({ ...state, ...nextState });\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [state, setState] = useReducer(reducer, initialState);\n\n useAsyncEffect(async () => {\n setState(initialState);\n\n try {\n setState({ channel: await sdk.groupChannel.getChannel(channelUrl), loading: false });\n } catch (e) {\n setState({ error: e, loading: false });\n }\n }, [channelUrl]);\n\n return state;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAAgDC,cAAc,QAAQ,uBAAuB;AAI7F,MAAMC,YAAmB,GAAG;EAAEC,OAAO,EAAE,IAAI;EAAEC,KAAK,EAAEC,SAAS;EAAEC,OAAO,EAAED;AAAU,CAAC;AACnF,MAAME,OAAO,GAAGA,CAACC,KAAY,EAAEC,SAAyB,MAAM;EAAE,GAAGD,KAAK;EAAE,GAAGC;AAAU,CAAC,CAAC;AAEzF,OAAO,MAAMC,eAAe,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC3E,MAAM,CAACJ,KAAK,EAAEK,QAAQ,CAAC,GAAGb,UAAU,CAACO,OAAO,EAAEL,YAAY,CAAC;EAE3DD,cAAc,CAAC,YAAY;IACzBY,QAAQ,CAACX,YAAY,CAAC;IAEtB,IAAI;MACFW,QAAQ,CAAC;QAAEP,OAAO,EAAE,MAAMK,GAAG,CAACG,YAAY,CAACC,UAAU,CAACH,UAAU,CAAC;QAAET,OAAO,EAAE;MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,OAAOa,CAAC,EAAE;MACVH,QAAQ,CAAC;QAAET,KAAK,EAAEY,CAAC;QAAEb,OAAO,EAAE;MAAM,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAACS,UAAU,CAAC,CAAC;EAEhB,OAAOJ,KAAK;AACd,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","useGroupChannelListWithCollection","useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,iCAAiC,QAAQ,qCAAqC;AACvF,SAASC,4BAA4B,QAAQ,gCAAgC;;AAE7E;AACA;AACA;AACA,OAAO,MAAMC,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAET,MAAM,CAACU,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAOT,iCAAiC,CAACG,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAOJ,4BAA4B,CAACE,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC"}
1
+ {"version":3,"names":["Logger","useGroupChannelListWithCollection","useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,iCAAiC,QAAQ,qCAAqC;AACvF,SAASC,4BAA4B,QAAQ,gCAAgC;;AAE7E;AACA;AACA;AACA,OAAO,MAAMC,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAET,MAAM,CAACU,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAOT,iCAAiC,CAACG,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAOJ,4BAA4B,CAACE,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC","ignoreList":[]}
@@ -1,9 +1,8 @@
1
1
  import { useReducer } from 'react';
2
2
  import { getGroupChannels, mergeObjectArrays } from '@sendbird/uikit-utils';
3
- const defaultReducer = (_ref, action) => {
4
- let {
5
- ...draft
6
- } = _ref;
3
+ const defaultReducer = ({
4
+ ...draft
5
+ }, action) => {
7
6
  const compareByOrder = createCompareByOrder(draft.order);
8
7
  switch (action.type) {
9
8
  case 'update_refreshing':
@@ -1 +1 @@
1
- {"version":3,"names":["useReducer","getGroupChannels","mergeObjectArrays","defaultReducer","_ref","action","draft","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","useGroupChannelListReducer","dispatch","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateOrder","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels, mergeObjectArrays } from '@sendbird/uikit-utils';\n\ntype Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n }\n | {\n type: 'update_order';\n value: { order?: Order };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n groupChannels: SendbirdGroupChannel[];\n order?: Order;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n const compareByOrder = createCompareByOrder(draft.order);\n\n switch (action.type) {\n case 'update_refreshing': {\n draft.refreshing = action.value.status;\n break;\n }\n case 'update_loading': {\n draft.loading = action.value.status;\n break;\n }\n case 'update_channels': {\n getGroupChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.groupChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.groupChannels[idx] = freshChannel;\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.groupChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.groupChannels.splice(idx, 1);\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'append_channels': {\n const groupChannels = getGroupChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.groupChannels = groupChannels;\n } else {\n draft.groupChannels = mergeObjectArrays(draft.groupChannels, groupChannels, 'url');\n }\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'update_order': {\n draft.order = action.value.order;\n const compareByOrder = createCompareByOrder(draft.order);\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n }\n return draft;\n};\n\nexport const useGroupChannelListReducer = (order?: Order) => {\n const [{ loading, refreshing, groupChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n groupChannels: [],\n order,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n updateOrder,\n\n loading,\n refreshing,\n groupChannels,\n };\n};\n\nconst createCompareByOrder = (order?: Order) => {\n if (!order) return undefined;\n\n return (channel1: SendbirdGroupChannel, channel2: SendbirdGroupChannel): number => {\n switch (order) {\n case 'latest_last_message': {\n if (channel1.lastMessage && channel2.lastMessage) {\n return channel2.lastMessage.createdAt - channel1.lastMessage.createdAt;\n } else if (channel1.lastMessage) {\n return -1;\n } else if (channel2.lastMessage) {\n return 1;\n } else {\n return channel2.createdAt - channel1.createdAt;\n }\n }\n\n case 'chronological': {\n return channel2.createdAt - channel1.createdAt;\n }\n\n case 'channel_name_alphabetical': {\n return channel1.name.localeCompare(channel2.name);\n }\n default: {\n return 0;\n }\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useReducer","getGroupChannels","mergeObjectArrays","defaultReducer","draft","action","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","useGroupChannelListReducer","dispatch","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateOrder","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels, mergeObjectArrays } from '@sendbird/uikit-utils';\n\ntype Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n }\n | {\n type: 'update_order';\n value: { order?: Order };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n groupChannels: SendbirdGroupChannel[];\n order?: Order;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n const compareByOrder = createCompareByOrder(draft.order);\n\n switch (action.type) {\n case 'update_refreshing': {\n draft.refreshing = action.value.status;\n break;\n }\n case 'update_loading': {\n draft.loading = action.value.status;\n break;\n }\n case 'update_channels': {\n getGroupChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.groupChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.groupChannels[idx] = freshChannel;\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.groupChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.groupChannels.splice(idx, 1);\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'append_channels': {\n const groupChannels = getGroupChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.groupChannels = groupChannels;\n } else {\n draft.groupChannels = mergeObjectArrays(draft.groupChannels, groupChannels, 'url');\n }\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'update_order': {\n draft.order = action.value.order;\n const compareByOrder = createCompareByOrder(draft.order);\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n }\n return draft;\n};\n\nexport const useGroupChannelListReducer = (order?: Order) => {\n const [{ loading, refreshing, groupChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n groupChannels: [],\n order,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n updateOrder,\n\n loading,\n refreshing,\n groupChannels,\n };\n};\n\nconst createCompareByOrder = (order?: Order) => {\n if (!order) return undefined;\n\n return (channel1: SendbirdGroupChannel, channel2: SendbirdGroupChannel): number => {\n switch (order) {\n case 'latest_last_message': {\n if (channel1.lastMessage && channel2.lastMessage) {\n return channel2.lastMessage.createdAt - channel1.lastMessage.createdAt;\n } else if (channel1.lastMessage) {\n return -1;\n } else if (channel2.lastMessage) {\n return 1;\n } else {\n return channel2.createdAt - channel1.createdAt;\n }\n }\n\n case 'chronological': {\n return channel2.createdAt - channel1.createdAt;\n }\n\n case 'channel_name_alphabetical': {\n return channel1.name.localeCompare(channel2.name);\n }\n default: {\n return 0;\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -52,11 +52,11 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
52
52
  };
53
53
  const init = useFreshCallback(async uid => {
54
54
  var _collectionRef$curren2;
55
- if (collectionRef.current) (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.dispose();
55
+ if (collectionRef.current) (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 || _collectionRef$curren2.dispose();
56
56
  if (uid) {
57
57
  var _collectionRef$curren3, _collectionRef$curren4;
58
58
  collectionRef.current = createGroupChannelListCollection(sdk, options === null || options === void 0 ? void 0 : options.collectionCreator);
59
- (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 ? void 0 : _collectionRef$curren3.setGroupChannelCollectionHandler({
59
+ (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 || _collectionRef$curren3.setGroupChannelCollectionHandler({
60
60
  onChannelsAdded: (context, channels) => {
61
61
  updateChannelsAndMarkAsDelivered(true, context.source, channels);
62
62
  },
@@ -77,7 +77,7 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
77
77
  useEffect(() => {
78
78
  return () => {
79
79
  var _collectionRef$curren6;
80
- if (collectionRef.current) (_collectionRef$curren6 = collectionRef.current) === null || _collectionRef$curren6 === void 0 ? void 0 : _collectionRef$curren6.dispose();
80
+ if (collectionRef.current) (_collectionRef$curren6 = collectionRef.current) === null || _collectionRef$curren6 === void 0 || _collectionRef$curren6.dispose();
81
81
  };
82
82
  }, []);
83
83
  useAsyncEffect(async () => {
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","GroupChannelEventSource","GroupChannelFilter","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","deliveryReceiptEnabled","collectionRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","init","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","_collectionRef$curren6","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, appendChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n appendChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useRef","GroupChannelEventSource","GroupChannelFilter","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","deliveryReceiptEnabled","collectionRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","init","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","_collectionRef$curren6","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, appendChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n appendChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","queryRef","handlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","updateChannelsAndMarkAsDelivered","channels","init","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n appendChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useRef","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","queryRef","handlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","updateChannelsAndMarkAsDelivered","channels","init","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n appendChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) printIgnoredWarning();\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n\nconst printIgnoredWarning = () => {\n Logger.warn(\n 'If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' +\n 'Please use collectionCreator instead.',\n );\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,qCAAqC,QAAQ,yCAAyC;AAC/F,SAASC,gCAAgC,QAAQ,oCAAoC;;AAErF;AACA;AACA;AACA,OAAO,MAAMC,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,mBAAmB,EAAE;IAChD,OAAOV,qCAAqC,CAACG,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAOL,gCAAgC,CAACE,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAED,MAAMI,mBAAmB,GAAGA,CAAA,KAAM;EAChCX,MAAM,CAACY,IAAI,CACT,kGAAkG,GAChG,uCAAuC,CAC1C;AACH,CAAC"}
1
+ {"version":3,"names":["Logger","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) printIgnoredWarning();\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n\nconst printIgnoredWarning = () => {\n Logger.warn(\n 'If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' +\n 'Please use collectionCreator instead.',\n );\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,qCAAqC,QAAQ,yCAAyC;AAC/F,SAASC,gCAAgC,QAAQ,oCAAoC;;AAErF;AACA;AACA;AACA,OAAO,MAAMC,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,mBAAmB,CAAC,CAAC;IAChD,OAAOV,qCAAqC,CAACG,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAOL,gCAAgC,CAACE,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAED,MAAMI,mBAAmB,GAAGA,CAAA,KAAM;EAChCX,MAAM,CAACY,IAAI,CACT,kGAAkG,GAChG,uCACJ,CAAC;AACH,CAAC","ignoreList":[]}