@planningcenter/chat-react-native 4.2.1-qa-staging.3 → 4.2.1-rc.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 (169) hide show
  1. package/build/components/conversation/message_form.d.ts +1 -2
  2. package/build/components/conversation/message_form.d.ts.map +1 -1
  3. package/build/components/conversation/message_form.js +51 -54
  4. package/build/components/conversation/message_form.js.map +1 -1
  5. package/build/components/conversation/message_list.d.ts +2 -3
  6. package/build/components/conversation/message_list.d.ts.map +1 -1
  7. package/build/components/conversation/message_list.js +66 -152
  8. package/build/components/conversation/message_list.js.map +1 -1
  9. package/build/contexts/conversation_context.d.ts +1 -3
  10. package/build/contexts/conversation_context.d.ts.map +1 -1
  11. package/build/contexts/conversation_context.js +18 -23
  12. package/build/contexts/conversation_context.js.map +1 -1
  13. package/build/hooks/index.d.ts +0 -1
  14. package/build/hooks/index.d.ts.map +1 -1
  15. package/build/hooks/index.js +0 -1
  16. package/build/hooks/index.js.map +1 -1
  17. package/build/hooks/paginator_meta.d.ts +1 -3
  18. package/build/hooks/paginator_meta.d.ts.map +1 -1
  19. package/build/hooks/paginator_meta.js +8 -25
  20. package/build/hooks/paginator_meta.js.map +1 -1
  21. package/build/hooks/use_api.d.ts.map +1 -1
  22. package/build/hooks/use_api.js +8 -5
  23. package/build/hooks/use_api.js.map +1 -1
  24. package/build/hooks/use_conversation_messages.d.ts +2 -9
  25. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  26. package/build/hooks/use_conversation_messages.js +45 -84
  27. package/build/hooks/use_conversation_messages.js.map +1 -1
  28. package/build/hooks/use_conversation_messages_jolt_events.d.ts +1 -17
  29. package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
  30. package/build/hooks/use_conversation_messages_jolt_events.js +80 -89
  31. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  32. package/build/hooks/use_mark_latest_message_read.d.ts +1 -2
  33. package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
  34. package/build/hooks/use_mark_latest_message_read.js +3 -4
  35. package/build/hooks/use_mark_latest_message_read.js.map +1 -1
  36. package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
  37. package/build/hooks/use_message_create_or_update.js +80 -91
  38. package/build/hooks/use_message_create_or_update.js.map +1 -1
  39. package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
  40. package/build/hooks/use_message_reaction_toggle.js +40 -45
  41. package/build/hooks/use_message_reaction_toggle.js.map +1 -1
  42. package/build/hooks/use_suspense_api.d.ts.map +1 -1
  43. package/build/hooks/use_suspense_api.js +8 -5
  44. package/build/hooks/use_suspense_api.js.map +1 -1
  45. package/build/screens/conversation_new/components/services_form.js +8 -9
  46. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  47. package/build/screens/conversation_screen.d.ts +0 -1
  48. package/build/screens/conversation_screen.d.ts.map +1 -1
  49. package/build/screens/conversation_screen.js +251 -466
  50. package/build/screens/conversation_screen.js.map +1 -1
  51. package/build/screens/message_actions_screen.d.ts.map +1 -1
  52. package/build/screens/message_actions_screen.js +26 -21
  53. package/build/screens/message_actions_screen.js.map +1 -1
  54. package/build/screens/message_report_screen.d.ts.map +1 -1
  55. package/build/screens/message_report_screen.js +44 -17
  56. package/build/screens/message_report_screen.js.map +1 -1
  57. package/build/screens/reactions_screen.d.ts.map +1 -1
  58. package/build/screens/reactions_screen.js +88 -70
  59. package/build/screens/reactions_screen.js.map +1 -1
  60. package/build/types/api_primitives.d.ts +0 -2
  61. package/build/types/api_primitives.d.ts.map +1 -1
  62. package/build/types/api_primitives.js.map +1 -1
  63. package/build/types/resources/member.d.ts +0 -1
  64. package/build/types/resources/member.d.ts.map +1 -1
  65. package/build/types/resources/member.js.map +1 -1
  66. package/build/utils/cache/optimistically_update_message.d.ts +1 -2
  67. package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
  68. package/build/utils/cache/optimistically_update_message.js +4 -4
  69. package/build/utils/cache/optimistically_update_message.js.map +1 -1
  70. package/build/utils/client/types.d.ts +0 -1
  71. package/build/utils/client/types.d.ts.map +1 -1
  72. package/build/utils/client/types.js.map +1 -1
  73. package/build/utils/generate_placeholder_ulid.d.ts +6 -0
  74. package/build/utils/generate_placeholder_ulid.d.ts.map +1 -1
  75. package/build/utils/generate_placeholder_ulid.js +2 -2
  76. package/build/utils/generate_placeholder_ulid.js.map +1 -1
  77. package/build/utils/request/get_messages.d.ts +6 -18
  78. package/build/utils/request/get_messages.d.ts.map +1 -1
  79. package/build/utils/request/get_messages.js +12 -10
  80. package/build/utils/request/get_messages.js.map +1 -1
  81. package/package.json +3 -3
  82. package/src/__tests__/hooks/paginator_meta.test.ts +2 -73
  83. package/src/components/conversation/__tests__/message_list.test.tsx +0 -42
  84. package/src/components/conversation/message_form.tsx +0 -3
  85. package/src/components/conversation/message_list.tsx +4 -58
  86. package/src/contexts/conversation_context.tsx +1 -6
  87. package/src/hooks/index.ts +0 -1
  88. package/src/hooks/paginator_meta.ts +5 -29
  89. package/src/hooks/use_api.ts +5 -4
  90. package/src/hooks/use_conversation_messages.ts +11 -52
  91. package/src/hooks/use_conversation_messages_jolt_events.ts +43 -62
  92. package/src/hooks/use_mark_latest_message_read.ts +3 -4
  93. package/src/hooks/use_message_create_or_update.ts +8 -8
  94. package/src/hooks/use_message_reaction_toggle.ts +1 -3
  95. package/src/hooks/use_suspense_api.ts +5 -4
  96. package/src/screens/conversation_new/components/services_form.tsx +5 -5
  97. package/src/screens/conversation_screen.tsx +16 -119
  98. package/src/screens/message_actions_screen.tsx +5 -3
  99. package/src/screens/message_report_screen.tsx +3 -2
  100. package/src/screens/reactions_screen.tsx +4 -2
  101. package/src/types/api_primitives.ts +0 -2
  102. package/src/types/resources/member.ts +0 -1
  103. package/src/utils/cache/optimistically_update_message.ts +5 -2
  104. package/src/utils/client/types.ts +0 -1
  105. package/src/utils/generate_placeholder_ulid.ts +2 -2
  106. package/src/utils/request/get_messages.ts +14 -12
  107. package/build/components/conversation/anchor_not_found_boundary.d.ts +0 -18
  108. package/build/components/conversation/anchor_not_found_boundary.d.ts.map +0 -1
  109. package/build/components/conversation/anchor_not_found_boundary.js +0 -20
  110. package/build/components/conversation/anchor_not_found_boundary.js.map +0 -1
  111. package/build/hooks/use_conversation_message_lookup.d.ts +0 -7
  112. package/build/hooks/use_conversation_message_lookup.d.ts.map +0 -1
  113. package/build/hooks/use_conversation_message_lookup.js +0 -52
  114. package/build/hooks/use_conversation_message_lookup.js.map +0 -1
  115. package/build/hooks/use_direct_message_eligibility.d.ts +0 -14
  116. package/build/hooks/use_direct_message_eligibility.d.ts.map +0 -1
  117. package/build/hooks/use_direct_message_eligibility.js +0 -87
  118. package/build/hooks/use_direct_message_eligibility.js.map +0 -1
  119. package/build/hooks/use_fetch_newer_messages.d.ts +0 -8
  120. package/build/hooks/use_fetch_newer_messages.d.ts.map +0 -1
  121. package/build/hooks/use_fetch_newer_messages.js +0 -62
  122. package/build/hooks/use_fetch_newer_messages.js.map +0 -1
  123. package/build/hooks/use_fetch_newer_on_foreground.d.ts +0 -8
  124. package/build/hooks/use_fetch_newer_on_foreground.d.ts.map +0 -1
  125. package/build/hooks/use_fetch_newer_on_foreground.js +0 -42
  126. package/build/hooks/use_fetch_newer_on_foreground.js.map +0 -1
  127. package/build/hooks/use_held_back_messages.d.ts +0 -11
  128. package/build/hooks/use_held_back_messages.d.ts.map +0 -1
  129. package/build/hooks/use_held_back_messages.js +0 -24
  130. package/build/hooks/use_held_back_messages.js.map +0 -1
  131. package/build/utils/cache/find_message_in_caches.d.ts +0 -4
  132. package/build/utils/cache/find_message_in_caches.d.ts.map +0 -1
  133. package/build/utils/cache/find_message_in_caches.js +0 -16
  134. package/build/utils/cache/find_message_in_caches.js.map +0 -1
  135. package/build/utils/cache/prepend_newer_page.d.ts +0 -7
  136. package/build/utils/cache/prepend_newer_page.d.ts.map +0 -1
  137. package/build/utils/cache/prepend_newer_page.js +0 -15
  138. package/build/utils/cache/prepend_newer_page.js.map +0 -1
  139. package/build/utils/gated_message_cache.d.ts +0 -7
  140. package/build/utils/gated_message_cache.d.ts.map +0 -1
  141. package/build/utils/gated_message_cache.js +0 -13
  142. package/build/utils/gated_message_cache.js.map +0 -1
  143. package/build/utils/ulid.d.ts +0 -3
  144. package/build/utils/ulid.d.ts.map +0 -1
  145. package/build/utils/ulid.js +0 -7
  146. package/build/utils/ulid.js.map +0 -1
  147. package/src/__tests__/hooks/use_conversation_messages.test.ts +0 -22
  148. package/src/__tests__/hooks/use_conversation_messages_jolt_events.test.ts +0 -33
  149. package/src/__tests__/hooks/use_direct_message_eligibility.test.tsx +0 -83
  150. package/src/__tests__/screens/conversation_new/components/services_form.test.tsx +0 -91
  151. package/src/__tests__/utils/gated_message_cache.test.ts +0 -26
  152. package/src/__tests__/utils/request/get_messages.test.ts +0 -24
  153. package/src/__tests__/utils/ulid.test.ts +0 -15
  154. package/src/components/conversation/__tests__/anchor_not_found_boundary.test.tsx +0 -51
  155. package/src/components/conversation/anchor_not_found_boundary.tsx +0 -21
  156. package/src/hooks/__tests__/use_fetch_newer_messages.test.tsx +0 -68
  157. package/src/hooks/__tests__/use_held_back_messages.test.tsx +0 -60
  158. package/src/hooks/__tests__/use_message_reaction_toggle.test.tsx +0 -73
  159. package/src/hooks/use_conversation_message_lookup.ts +0 -29
  160. package/src/hooks/use_direct_message_eligibility.ts +0 -40
  161. package/src/hooks/use_fetch_newer_messages.ts +0 -44
  162. package/src/hooks/use_fetch_newer_on_foreground.ts +0 -25
  163. package/src/hooks/use_held_back_messages.ts +0 -33
  164. package/src/utils/cache/__tests__/find_message_in_caches.test.ts +0 -37
  165. package/src/utils/cache/__tests__/prepend_newer_page.test.ts +0 -34
  166. package/src/utils/cache/find_message_in_caches.ts +0 -20
  167. package/src/utils/cache/prepend_newer_page.ts +0 -19
  168. package/src/utils/gated_message_cache.ts +0 -19
  169. package/src/utils/ulid.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"paginator_meta.js","names":["getNextPageParamFromMeta","next","idLt","withOrder","where","id_lt","order","idGt","id_gt","idLte","id_lte","idGte","id_gte","offset","Number","undefined","param","BOUND_KEYS","mergePageWhere","argsWhere","pageWhere","pageHasCursor","some","key","base","Object","fromEntries","entries","filter","includes","getNewerPageParam","page","pageParam","isAscendingPage","meta","prev"],"sources":["../../src/hooks/paginator_meta.ts"],"sourcesContent":["import { ApiCollection, NextPageCursor, ResourceObject } from '../types/api_primitives'\nimport { RequestData } from '../utils/client'\n\nexport const getNextPageParamFromMeta = (\n next: NextPageCursor = {}\n): Partial<RequestData> | undefined => {\n if (next.idLt) return withOrder({ where: { id_lt: next.idLt } }, next.order)\n if (next.idGt) return withOrder({ where: { id_gt: next.idGt } }, next.order)\n if (next.idLte) return withOrder({ where: { id_lte: next.idLte } }, next.order)\n if (next.idGte) return withOrder({ where: { id_gte: next.idGte } }, next.order)\n if (next.offset) return { offset: Number(next.offset) }\n return undefined\n}\n\nconst withOrder = (param: Partial<RequestData>, order: NextPageCursor['order']) =>\n order ? { ...param, order } : param\n\nconst BOUND_KEYS = ['id_lt', 'id_lte', 'id_gt', 'id_gte', 'id_around']\n\nexport const mergePageWhere = (\n argsWhere: RequestData['where'] = {},\n pageWhere: RequestData['where'] = {}\n): RequestData['where'] => {\n const pageHasCursor = BOUND_KEYS.some(key => key in pageWhere)\n const base = pageHasCursor\n ? Object.fromEntries(Object.entries(argsWhere).filter(([key]) => !BOUND_KEYS.includes(key)))\n : argsWhere\n return { ...base, ...pageWhere }\n}\n\nexport const getNewerPageParam = (\n page: ApiCollection<ResourceObject>,\n pageParam: Partial<RequestData> | undefined\n): Partial<RequestData> | undefined => {\n const isAscendingPage = pageParam?.order === 'asc'\n return getNextPageParamFromMeta(isAscendingPage ? page.meta?.next : page.meta?.prev)\n}\n"],"mappings":"AAGA,OAAO,MAAMA,wBAAwB,GAAGA,CACtCC,IAAoB,GAAG,CAAC,CAAC,KACY;EACrC,IAAIA,IAAI,CAACC,IAAI,EAAE,OAAOC,SAAS,CAAC;IAAEC,KAAK,EAAE;MAAEC,KAAK,EAAEJ,IAAI,CAACC;IAAK;EAAE,CAAC,EAAED,IAAI,CAACK,KAAK,CAAC;EAC5E,IAAIL,IAAI,CAACM,IAAI,EAAE,OAAOJ,SAAS,CAAC;IAAEC,KAAK,EAAE;MAAEI,KAAK,EAAEP,IAAI,CAACM;IAAK;EAAE,CAAC,EAAEN,IAAI,CAACK,KAAK,CAAC;EAC5E,IAAIL,IAAI,CAACQ,KAAK,EAAE,OAAON,SAAS,CAAC;IAAEC,KAAK,EAAE;MAAEM,MAAM,EAAET,IAAI,CAACQ;IAAM;EAAE,CAAC,EAAER,IAAI,CAACK,KAAK,CAAC;EAC/E,IAAIL,IAAI,CAACU,KAAK,EAAE,OAAOR,SAAS,CAAC;IAAEC,KAAK,EAAE;MAAEQ,MAAM,EAAEX,IAAI,CAACU;IAAM;EAAE,CAAC,EAAEV,IAAI,CAACK,KAAK,CAAC;EAC/E,IAAIL,IAAI,CAACY,MAAM,EAAE,OAAO;IAAEA,MAAM,EAAEC,MAAM,CAACb,IAAI,CAACY,MAAM;EAAE,CAAC;EACvD,OAAOE,SAAS;AAClB,CAAC;AAED,MAAMZ,SAAS,GAAGA,CAACa,KAA2B,EAAEV,KAA8B,KAC5EA,KAAK,GAAG;EAAE,GAAGU,KAAK;EAAEV;AAAM,CAAC,GAAGU,KAAK;AAErC,MAAMC,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;AAEtE,OAAO,MAAMC,cAAc,GAAGA,CAC5BC,SAA+B,GAAG,CAAC,CAAC,EACpCC,SAA+B,GAAG,CAAC,CAAC,KACX;EACzB,MAAMC,aAAa,GAAGJ,UAAU,CAACK,IAAI,CAACC,GAAG,IAAIA,GAAG,IAAIH,SAAS,CAAC;EAC9D,MAAMI,IAAI,GAAGH,aAAa,GACtBI,MAAM,CAACC,WAAW,CAACD,MAAM,CAACE,OAAO,CAACR,SAAS,CAAC,CAACS,MAAM,CAAC,CAAC,CAACL,GAAG,CAAC,KAAK,CAACN,UAAU,CAACY,QAAQ,CAACN,GAAG,CAAC,CAAC,CAAC,GAC1FJ,SAAS;EACb,OAAO;IAAE,GAAGK,IAAI;IAAE,GAAGJ;EAAU,CAAC;AAClC,CAAC;AAED,OAAO,MAAMU,iBAAiB,GAAGA,CAC/BC,IAAmC,EACnCC,SAA2C,KACN;EACrC,MAAMC,eAAe,GAAGD,SAAS,EAAE1B,KAAK,KAAK,KAAK;EAClD,OAAON,wBAAwB,CAACiC,eAAe,GAAGF,IAAI,CAACG,IAAI,EAAEjC,IAAI,GAAG8B,IAAI,CAACG,IAAI,EAAEC,IAAI,CAAC;AACtF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"paginator_meta.js","names":["getNextPageParamFromMeta","next","idLt","where","id_lt","idGt","id_gt","idLte","id_lte","idGte","id_gte","offset","Number","undefined"],"sources":["../../src/hooks/paginator_meta.ts"],"sourcesContent":["import { NextPageCursor } from '../types/api_primitives'\nimport { RequestData } from '../utils/client'\n\nexport const getNextPageParamFromMeta = (\n next: NextPageCursor = {}\n): Partial<RequestData> | undefined => {\n if (next.idLt) return { where: { id_lt: next.idLt } }\n if (next.idGt) return { where: { id_gt: next.idGt } }\n if (next.idLte) return { where: { id_lte: next.idLte } }\n if (next.idGte) return { where: { id_gte: next.idGte } }\n if (next.offset) return { offset: Number(next.offset) }\n return undefined\n}\n"],"mappings":"AAGA,OAAO,MAAMA,wBAAwB,GAAGA,CACtCC,IAAoB,GAAG,CAAC,CAAC,KACY;EACrC,IAAIA,IAAI,CAACC,IAAI,EAAE,OAAO;IAAEC,KAAK,EAAE;MAAEC,KAAK,EAAEH,IAAI,CAACC;IAAK;EAAE,CAAC;EACrD,IAAID,IAAI,CAACI,IAAI,EAAE,OAAO;IAAEF,KAAK,EAAE;MAAEG,KAAK,EAAEL,IAAI,CAACI;IAAK;EAAE,CAAC;EACrD,IAAIJ,IAAI,CAACM,KAAK,EAAE,OAAO;IAAEJ,KAAK,EAAE;MAAEK,MAAM,EAAEP,IAAI,CAACM;IAAM;EAAE,CAAC;EACxD,IAAIN,IAAI,CAACQ,KAAK,EAAE,OAAO;IAAEN,KAAK,EAAE;MAAEO,MAAM,EAAET,IAAI,CAACQ;IAAM;EAAE,CAAC;EACxD,IAAIR,IAAI,CAACU,MAAM,EAAE,OAAO;IAAEA,MAAM,EAAEC,MAAM,CAACX,IAAI,CAACU,MAAM;EAAE,CAAC;EACvD,OAAOE,SAAS;AAClB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"use_api.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,uBAAuB,CAAA;AAGhF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAsB,MAAM,yBAAyB,CAAA;AAE3E,OAAO,EAAE,GAAG,EAAgB,MAAM,kBAAkB,CAAA;AAGpD,UAAU,aAAc,SAAQ,UAAU;IACxC,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EACnE,MAAM,aAAa,EACnB,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsB1B,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,cAAc,EACtD,MAAM,aAAa,EACnB,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B1B,CAAA"}
1
+ {"version":3,"file":"use_api.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,uBAAuB,CAAA;AAGhF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAsB,MAAM,yBAAyB,CAAA;AAE3E,OAAO,EAAE,GAAG,EAAgB,MAAM,kBAAkB,CAAA;AAGpD,UAAU,aAAc,SAAQ,UAAU;IACxC,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EACnE,MAAM,aAAa,EACnB,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsB1B,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,cAAc,EACtD,MAAM,aAAa,EACnB,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC1B,CAAA"}
@@ -3,7 +3,7 @@ import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
3
3
  import { useContext } from 'react';
4
4
  import { ChatContext } from '../contexts/chat_context';
5
5
  import { throwResponseError } from '../utils/response_error';
6
- import { getNextPageParamFromMeta, mergePageWhere } from './paginator_meta';
6
+ import { getNextPageParamFromMeta } from './paginator_meta';
7
7
  import { useApiClient } from './use_api_client';
8
8
  import { getRequestQueryKey } from './use_suspense_api';
9
9
  export const useApiGet = (args, opts) => {
@@ -106,15 +106,18 @@ export const useApiPaginator = (args, opts) => {
106
106
  const {
107
107
  pageParam
108
108
  } = t2;
109
- const where = mergePageWhere(args.data.where, pageParam?.where);
109
+ const pageParmWhere = pageParam?.where || {};
110
+ const argsWhere = args.data.where || {};
111
+ const where = {
112
+ ...argsWhere,
113
+ ...pageParmWhere
114
+ };
110
115
  const app = args.app || "chat";
111
116
  const offset = pageParam?.offset || args.data.offset;
112
- const order = pageParam?.order || args.data.order;
113
117
  const data = {
114
118
  ...args.data,
115
119
  where,
116
- offset,
117
- order
120
+ offset
118
121
  };
119
122
  return apiClient[app].get({
120
123
  url: args.url,
@@ -1 +1 @@
1
- {"version":3,"file":"use_api.js","names":["useInfiniteQuery","useQuery","useContext","ChatContext","throwResponseError","getNextPageParamFromMeta","mergePageWhere","useApiClient","getRequestQueryKey","useApiGet","args","opts","$","_c","session","apiClient","enabled","token","access_token","t0","t1","t2","queryKey","url","d","headers","t3","app","undefined","get","data","catch","queryFn","query","t4","useApiPaginator","pageParam","where","offset","order","Symbol","for","initialPageParam","getNextPageParam","_temp","t5","pages","flatMap","_temp2","data_0","t6","lastPage","meta","next","page"],"sources":["../../src/hooks/use_api.ts"],"sourcesContent":["import { InfiniteData, useInfiniteQuery, useQuery } from '@tanstack/react-query'\nimport { useContext } from 'react'\nimport { ChatContext } from '../contexts/chat_context'\nimport { ApiCollection, ApiResource, ResourceObject } from '../types'\nimport { GetRequest, RequestData } from '../utils/client'\nimport { ResponseError, throwResponseError } from '../utils/response_error'\nimport { getNextPageParamFromMeta, mergePageWhere } from './paginator_meta'\nimport { App, useApiClient } from './use_api_client'\nimport { getRequestQueryKey, RequestQueryKey } from './use_suspense_api'\n\ninterface ApiGetOptions extends GetRequest {\n app?: App\n}\n\nexport type ApiGetQueryOptions = {\n staleTime?: number\n gcTime?: number\n enabled?: boolean\n throwOnError?: boolean | ((error: ResponseError) => boolean)\n}\n\nexport const useApiGet = <T extends ResourceObject | ResourceObject[]>(\n args: ApiGetOptions,\n opts?: ApiGetQueryOptions\n) => {\n type Resource = ApiResource<T>\n const { session } = useContext(ChatContext)\n const apiClient = useApiClient()\n\n const enabled = !!session.token?.access_token && (opts?.enabled ?? true)\n\n const { data, ...query } = useQuery<Resource, ResponseError>({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ queryKey }) => {\n const [url, d, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return (apiClient[app].get({ url, data: d, headers }) as Promise<Resource>).catch(\n throwResponseError\n )\n },\n ...opts,\n enabled,\n })\n\n return { ...data, ...query }\n}\n\nexport const useApiPaginator = <T extends ResourceObject>(\n args: ApiGetOptions,\n opts?: ApiGetQueryOptions\n) => {\n const { session } = useContext(ChatContext)\n const apiClient = useApiClient()\n const enabled = !!session.token?.access_token && (opts?.enabled ?? true)\n const query = useInfiniteQuery<\n ApiCollection<T>,\n ResponseError,\n InfiniteData<ApiCollection<T>>,\n any,\n Partial<RequestData> | undefined\n >({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ pageParam }) => {\n const where = mergePageWhere(args.data.where, pageParam?.where)\n const app = args.app || 'chat'\n const offset = pageParam?.offset || args.data.offset\n const order = pageParam?.order || args.data.order\n const data = { ...args.data, where, offset, order }\n\n return apiClient[app].get<ApiCollection<T>>({ url: args.url, data }).catch(throwResponseError)\n },\n initialPageParam: {} as Partial<RequestData>,\n getNextPageParam: lastPage => getNextPageParamFromMeta(lastPage.meta?.next),\n ...(opts || {}),\n enabled,\n })\n\n const data: T[] = query.data?.pages?.flatMap(page => page.data) || []\n\n return { ...query, data }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"use_api.js","names":["useInfiniteQuery","useQuery","useContext","ChatContext","throwResponseError","getNextPageParamFromMeta","useApiClient","getRequestQueryKey","useApiGet","args","opts","$","_c","session","apiClient","enabled","token","access_token","t0","t1","t2","queryKey","url","d","headers","t3","app","undefined","get","data","catch","queryFn","query","t4","useApiPaginator","pageParam","pageParmWhere","where","argsWhere","offset","Symbol","for","initialPageParam","getNextPageParam","_temp","t5","pages","flatMap","_temp2","data_0","t6","lastPage","meta","next","page"],"sources":["../../src/hooks/use_api.ts"],"sourcesContent":["import { InfiniteData, useInfiniteQuery, useQuery } from '@tanstack/react-query'\nimport { useContext } from 'react'\nimport { ChatContext } from '../contexts/chat_context'\nimport { ApiCollection, ApiResource, ResourceObject } from '../types'\nimport { GetRequest, RequestData } from '../utils/client'\nimport { ResponseError, throwResponseError } from '../utils/response_error'\nimport { getNextPageParamFromMeta } from './paginator_meta'\nimport { App, useApiClient } from './use_api_client'\nimport { getRequestQueryKey, RequestQueryKey } from './use_suspense_api'\n\ninterface ApiGetOptions extends GetRequest {\n app?: App\n}\n\nexport type ApiGetQueryOptions = {\n staleTime?: number\n gcTime?: number\n enabled?: boolean\n throwOnError?: boolean | ((error: ResponseError) => boolean)\n}\n\nexport const useApiGet = <T extends ResourceObject | ResourceObject[]>(\n args: ApiGetOptions,\n opts?: ApiGetQueryOptions\n) => {\n type Resource = ApiResource<T>\n const { session } = useContext(ChatContext)\n const apiClient = useApiClient()\n\n const enabled = !!session.token?.access_token && (opts?.enabled ?? true)\n\n const { data, ...query } = useQuery<Resource, ResponseError>({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ queryKey }) => {\n const [url, d, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return (apiClient[app].get({ url, data: d, headers }) as Promise<Resource>).catch(\n throwResponseError\n )\n },\n ...opts,\n enabled,\n })\n\n return { ...data, ...query }\n}\n\nexport const useApiPaginator = <T extends ResourceObject>(\n args: ApiGetOptions,\n opts?: ApiGetQueryOptions\n) => {\n const { session } = useContext(ChatContext)\n const apiClient = useApiClient()\n const enabled = !!session.token?.access_token && (opts?.enabled ?? true)\n const query = useInfiniteQuery<\n ApiCollection<T>,\n ResponseError,\n InfiniteData<ApiCollection<T>>,\n any,\n Partial<RequestData> | undefined\n >({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ pageParam }) => {\n const pageParmWhere = pageParam?.where || {}\n const argsWhere = args.data.where || {}\n const where = { ...argsWhere, ...pageParmWhere }\n const app = args.app || 'chat'\n const offset = pageParam?.offset || args.data.offset\n const data = { ...args.data, where, offset }\n\n return apiClient[app].get<ApiCollection<T>>({ url: args.url, data }).catch(throwResponseError)\n },\n initialPageParam: {} as Partial<RequestData>,\n getNextPageParam: lastPage => getNextPageParamFromMeta(lastPage.meta?.next),\n ...(opts || {}),\n enabled,\n })\n\n const data: T[] = query.data?.pages?.flatMap(page => page.data) || []\n\n return { ...query, data }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,21 +1,14 @@
1
1
  import { MessageResource } from '../types';
2
2
  import { SuspensePaginatorOptions } from './use_suspense_api';
3
- type Options = {
3
+ export declare const useConversationMessages: ({ conversation_id, reply_root_id }: {
4
4
  conversation_id: number;
5
5
  reply_root_id?: string | null;
6
- anchor?: string | null;
7
- };
8
- export declare const anchoredRetry: (failureCount: number, error: unknown) => boolean;
9
- export declare const useConversationMessages: ({ conversation_id, reply_root_id, anchor }: Options, opts?: SuspensePaginatorOptions) => {
6
+ }, opts?: SuspensePaginatorOptions) => {
10
7
  messages: MessageResource[];
11
8
  refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<import("..").ApiCollection<MessageResource>, unknown>, Response>>;
12
9
  isRefetching: boolean;
13
10
  fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("..").ApiCollection<MessageResource>, unknown>, Response>>;
14
11
  hasNextPage: boolean;
15
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("..").ApiCollection<MessageResource>, unknown>, Response>>;
16
- hasPreviousPage: boolean;
17
- isFetchingPreviousPage: boolean;
18
12
  queryKey: import("./use_suspense_api").RequestQueryKey;
19
13
  };
20
- export {};
21
14
  //# sourceMappingURL=use_conversation_messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversation_messages.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation_messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK1C,OAAO,EAAE,wBAAwB,EAAwB,MAAM,oBAAoB,CAAA;AAEnF,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,cAAc,MAAM,EAAE,OAAO,OAAO,YAKjE,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,4CAA4C,OAAO,EACnD,OAAO,wBAAwB;;;;;;;;;;CAkDhC,CAAA"}
1
+ {"version":3,"file":"use_conversation_messages.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation_messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,EAAE,wBAAwB,EAAwB,MAAM,oBAAoB,CAAA;AAEnF,eAAO,MAAM,uBAAuB,GAClC,oCAAoC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC9F,OAAO,wBAAwB;;;;;;;CAwBhC,CAAA"}
@@ -2,130 +2,91 @@ import { c as _c } from "react/compiler-runtime";
2
2
  import { useMemo } from 'react';
3
3
  import { replaceEqualById } from '../utils/replace_equal_by_id';
4
4
  import { getMessagesQueryKey, getMessagesRequestArgs } from '../utils/request/get_messages';
5
- import { ResponseError } from '../utils/response_error';
6
- import { getNewerPageParam } from './paginator_meta';
7
5
  import { useSuspensePaginator } from './use_suspense_api';
8
- export const anchoredRetry = (failureCount, error) => {
9
- const status = error instanceof ResponseError ? error.status : undefined;
10
- if (status === 404 || status === 429) return false;
11
- return failureCount < 3;
12
- };
13
6
  export const useConversationMessages = (t0, opts) => {
14
- const $ = _c(25);
7
+ const $ = _c(17);
15
8
  const {
16
9
  conversation_id,
17
- reply_root_id,
18
- anchor
10
+ reply_root_id
19
11
  } = t0;
20
12
  let t1;
21
- if ($[0] !== anchor || $[1] !== conversation_id || $[2] !== reply_root_id) {
13
+ if ($[0] !== conversation_id || $[1] !== reply_root_id) {
22
14
  t1 = getMessagesRequestArgs({
23
15
  conversation_id,
24
- reply_root_id,
25
- anchor
16
+ reply_root_id
26
17
  });
27
- $[0] = anchor;
28
- $[1] = conversation_id;
29
- $[2] = reply_root_id;
30
- $[3] = t1;
18
+ $[0] = conversation_id;
19
+ $[1] = reply_root_id;
20
+ $[2] = t1;
31
21
  } else {
32
- t1 = $[3];
22
+ t1 = $[2];
33
23
  }
34
24
  let t2;
35
- if ($[4] !== anchor) {
36
- t2 = anchor ? {
37
- getPreviousPageParam: _temp,
38
- gcTime: 0,
39
- staleTime: Infinity,
40
- retry: anchoredRetry
41
- } : {};
42
- $[4] = anchor;
43
- $[5] = t2;
44
- } else {
45
- t2 = $[5];
46
- }
47
- let t3;
48
- if ($[6] !== opts || $[7] !== t2) {
49
- t3 = {
25
+ if ($[3] !== opts) {
26
+ t2 = {
50
27
  structuralSharing: replaceEqualById,
51
- ...t2,
52
28
  ...opts
53
29
  };
54
- $[6] = opts;
55
- $[7] = t2;
56
- $[8] = t3;
30
+ $[3] = opts;
31
+ $[4] = t2;
57
32
  } else {
58
- t3 = $[8];
33
+ t2 = $[4];
59
34
  }
60
35
  const {
61
36
  data,
62
37
  refetch,
63
38
  isRefetching,
64
39
  fetchNextPage,
65
- hasNextPage,
66
- fetchPreviousPage,
67
- hasPreviousPage,
68
- isFetchingPreviousPage
69
- } = useSuspensePaginator(t1, t3);
70
- let t4;
71
- if ($[9] !== anchor || $[10] !== conversation_id || $[11] !== reply_root_id) {
72
- t4 = getMessagesQueryKey({
40
+ hasNextPage
41
+ } = useSuspensePaginator(t1, t2);
42
+ let t3;
43
+ if ($[5] !== conversation_id || $[6] !== reply_root_id) {
44
+ t3 = getMessagesQueryKey({
73
45
  conversation_id,
74
- reply_root_id,
75
- anchor
46
+ reply_root_id
76
47
  });
77
- $[9] = anchor;
78
- $[10] = conversation_id;
79
- $[11] = reply_root_id;
80
- $[12] = t4;
48
+ $[5] = conversation_id;
49
+ $[6] = reply_root_id;
50
+ $[7] = t3;
81
51
  } else {
82
- t4 = $[12];
52
+ t3 = $[7];
83
53
  }
84
- const queryKey = t4;
85
- let t5;
86
- if ($[13] !== data) {
87
- t5 = data.filter(_temp2).sort(_temp3);
88
- $[13] = data;
89
- $[14] = t5;
54
+ const queryKey = t3;
55
+ let t4;
56
+ if ($[8] !== data) {
57
+ t4 = data.filter(_temp).sort(_temp2);
58
+ $[8] = data;
59
+ $[9] = t4;
90
60
  } else {
91
- t5 = $[14];
61
+ t4 = $[9];
92
62
  }
93
- const messages = t5;
94
- let t6;
95
- if ($[15] !== fetchNextPage || $[16] !== fetchPreviousPage || $[17] !== hasNextPage || $[18] !== hasPreviousPage || $[19] !== isFetchingPreviousPage || $[20] !== isRefetching || $[21] !== messages || $[22] !== queryKey || $[23] !== refetch) {
96
- t6 = {
63
+ const messages = t4;
64
+ let t5;
65
+ if ($[10] !== fetchNextPage || $[11] !== hasNextPage || $[12] !== isRefetching || $[13] !== messages || $[14] !== queryKey || $[15] !== refetch) {
66
+ t5 = {
97
67
  messages,
98
68
  refetch,
99
69
  isRefetching,
100
70
  fetchNextPage,
101
71
  hasNextPage,
102
- fetchPreviousPage,
103
- hasPreviousPage,
104
- isFetchingPreviousPage,
105
72
  queryKey
106
73
  };
107
- $[15] = fetchNextPage;
108
- $[16] = fetchPreviousPage;
109
- $[17] = hasNextPage;
110
- $[18] = hasPreviousPage;
111
- $[19] = isFetchingPreviousPage;
112
- $[20] = isRefetching;
113
- $[21] = messages;
114
- $[22] = queryKey;
115
- $[23] = refetch;
116
- $[24] = t6;
74
+ $[10] = fetchNextPage;
75
+ $[11] = hasNextPage;
76
+ $[12] = isRefetching;
77
+ $[13] = messages;
78
+ $[14] = queryKey;
79
+ $[15] = refetch;
80
+ $[16] = t5;
117
81
  } else {
118
- t6 = $[24];
82
+ t5 = $[16];
119
83
  }
120
- return t6;
84
+ return t5;
121
85
  };
122
- function _temp(page, _pages, pageParam) {
123
- return getNewerPageParam(page, pageParam);
124
- }
125
- function _temp2(message) {
86
+ function _temp(message) {
126
87
  return (!message.deletedAt || message.replyRootId) && (message.attachments?.length || message.text?.length);
127
88
  }
128
- function _temp3(a, b) {
89
+ function _temp2(a, b) {
129
90
  return -a.id.localeCompare(b.id);
130
91
  }
131
92
  //# sourceMappingURL=use_conversation_messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversation_messages.js","names":["useMemo","replaceEqualById","getMessagesQueryKey","getMessagesRequestArgs","ResponseError","getNewerPageParam","useSuspensePaginator","anchoredRetry","failureCount","error","status","undefined","useConversationMessages","t0","opts","$","_c","conversation_id","reply_root_id","anchor","t1","t2","getPreviousPageParam","_temp","gcTime","staleTime","Infinity","retry","t3","structuralSharing","data","refetch","isRefetching","fetchNextPage","hasNextPage","fetchPreviousPage","hasPreviousPage","isFetchingPreviousPage","t4","queryKey","t5","filter","_temp2","sort","_temp3","messages","t6","page","_pages","pageParam","message","deletedAt","replyRootId","attachments","length","text","a","b","id","localeCompare"],"sources":["../../src/hooks/use_conversation_messages.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { MessageResource } from '../types'\nimport { replaceEqualById } from '../utils/replace_equal_by_id'\nimport { getMessagesQueryKey, getMessagesRequestArgs } from '../utils/request/get_messages'\nimport { ResponseError } from '../utils/response_error'\nimport { getNewerPageParam } from './paginator_meta'\nimport { SuspensePaginatorOptions, useSuspensePaginator } from './use_suspense_api'\n\ntype Options = {\n conversation_id: number\n reply_root_id?: string | null\n anchor?: string | null\n}\n\nexport const anchoredRetry = (failureCount: number, error: unknown) => {\n const status = error instanceof ResponseError ? error.status : undefined\n if (status === 404 || status === 429) return false\n\n return failureCount < 3\n}\n\nexport const useConversationMessages = (\n { conversation_id, reply_root_id, anchor }: Options,\n opts?: SuspensePaginatorOptions\n) => {\n const {\n data,\n refetch,\n isRefetching,\n fetchNextPage,\n hasNextPage,\n fetchPreviousPage,\n hasPreviousPage,\n isFetchingPreviousPage,\n } = useSuspensePaginator<MessageResource>(\n getMessagesRequestArgs({ conversation_id, reply_root_id, anchor }),\n {\n structuralSharing: replaceEqualById,\n ...(anchor\n ? {\n getPreviousPageParam: (page, _pages, pageParam) => getNewerPageParam(page, pageParam),\n gcTime: 0,\n staleTime: Infinity,\n retry: anchoredRetry,\n }\n : {}),\n ...opts,\n }\n )\n const queryKey = getMessagesQueryKey({ conversation_id, reply_root_id, anchor })\n const messages = useMemo(\n () =>\n data\n .filter(\n message =>\n (!message.deletedAt || message.replyRootId) &&\n (message.attachments?.length || message.text?.length)\n )\n .sort((a, b) => -a.id.localeCompare(b.id)),\n [data]\n )\n\n return {\n messages,\n refetch,\n isRefetching,\n fetchNextPage,\n hasNextPage,\n fetchPreviousPage,\n hasPreviousPage,\n isFetchingPreviousPage,\n queryKey,\n }\n}\n"],"mappings":";AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,mBAAmB,EAAEC,sBAAsB,QAAQ,+BAA+B;AAC3F,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,iBAAiB,QAAQ,kBAAkB;AACpD,SAAmCC,oBAAoB,QAAQ,oBAAoB;AAQnF,OAAO,MAAMC,aAAa,GAAGA,CAACC,YAAoB,EAAEC,KAAc,KAAK;EACrE,MAAMC,MAAM,GAAGD,KAAK,YAAYL,aAAa,GAAGK,KAAK,CAACC,MAAM,GAAGC,SAAS;EACxE,IAAID,MAAM,KAAK,GAAG,IAAIA,MAAM,KAAK,GAAG,EAAE,OAAO,KAAK;EAElD,OAAOF,YAAY,GAAG,CAAC;AACzB,CAAC;AAED,OAAO,MAAMI,uBAAuB,GAAGA,CAAAC,EAAA,EAAAC,IAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACrC;IAAAC,eAAA;IAAAC,aAAA;IAAAC;EAAA,IAAAN,EAAmD;EAAA,IAAAO,EAAA;EAAA,IAAAL,CAAA,QAAAI,MAAA,IAAAJ,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAG,aAAA;IAajDE,EAAA,GAAAjB,sBAAsB,CAAC;MAAAc,eAAA;MAAAC,aAAA;MAAAC;IAAyC,CAAC,CAAC;IAAAJ,CAAA,MAAAI,MAAA;IAAAJ,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,aAAA;IAAAH,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAAA,IAAAM,EAAA;EAAA,IAAAN,CAAA,QAAAI,MAAA;IAG5DE,EAAA,GAAAF,MAAM,GAAN;MAAAG,oBAAA,EAEwBC,KAA+D;MAAAC,MAAA,EAC7E,CAAC;MAAAC,SAAA,EACEC,QAAQ;MAAAC,KAAA,EACZpB;IAER,CAAC,GAPF,CAOC,CAAC;IAAAQ,CAAA,MAAAI,MAAA;IAAAJ,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAA,IAAAa,EAAA;EAAA,IAAAb,CAAA,QAAAD,IAAA,IAAAC,CAAA,QAAAM,EAAA;IATRO,EAAA;MAAAC,iBAAA,EACqB5B,gBAAgB;MAAA,GAC/BoB,EAOE;MAAA,GACHP;IACL,CAAC;IAAAC,CAAA,MAAAD,IAAA;IAAAC,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAtBH;IAAAe,IAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,aAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,eAAA;IAAAC;EAAA,IASI/B,oBAAoB,CACtBc,EAAkE,EAClEQ,EAYF,CAAC;EAAA,IAAAU,EAAA;EAAA,IAAAvB,CAAA,QAAAI,MAAA,IAAAJ,CAAA,SAAAE,eAAA,IAAAF,CAAA,SAAAG,aAAA;IACgBoB,EAAA,GAAApC,mBAAmB,CAAC;MAAAe,eAAA;MAAAC,aAAA;MAAAC;IAAyC,CAAC,CAAC;IAAAJ,CAAA,MAAAI,MAAA;IAAAJ,CAAA,OAAAE,eAAA;IAAAF,CAAA,OAAAG,aAAA;IAAAH,CAAA,OAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAhF,MAAAwB,QAAA,GAAiBD,EAA+D;EAAA,IAAAE,EAAA;EAAA,IAAAzB,CAAA,SAAAe,IAAA;IAG5EU,EAAA,GAAAV,IAAI,CAAAW,MACK,CACLC,MAGF,CAAC,CAAAC,IACI,CAACC,MAAmC,CAAC;IAAA7B,CAAA,OAAAe,IAAA;IAAAf,CAAA,OAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EARhD,MAAA8B,QAAA,GAEIL,EAM4C;EAE/C,IAAAM,EAAA;EAAA,IAAA/B,CAAA,SAAAkB,aAAA,IAAAlB,CAAA,SAAAoB,iBAAA,IAAApB,CAAA,SAAAmB,WAAA,IAAAnB,CAAA,SAAAqB,eAAA,IAAArB,CAAA,SAAAsB,sBAAA,IAAAtB,CAAA,SAAAiB,YAAA,IAAAjB,CAAA,SAAA8B,QAAA,IAAA9B,CAAA,SAAAwB,QAAA,IAAAxB,CAAA,SAAAgB,OAAA;IAEMe,EAAA;MAAAD,QAAA;MAAAd,OAAA;MAAAC,YAAA;MAAAC,aAAA;MAAAC,WAAA;MAAAC,iBAAA;MAAAC,eAAA;MAAAC,sBAAA;MAAAE;IAUP,CAAC;IAAAxB,CAAA,OAAAkB,aAAA;IAAAlB,CAAA,OAAAoB,iBAAA;IAAApB,CAAA,OAAAmB,WAAA;IAAAnB,CAAA,OAAAqB,eAAA;IAAArB,CAAA,OAAAsB,sBAAA;IAAAtB,CAAA,OAAAiB,YAAA;IAAAjB,CAAA,OAAA8B,QAAA;IAAA9B,CAAA,OAAAwB,QAAA;IAAAxB,CAAA,OAAAgB,OAAA;IAAAhB,CAAA,OAAA+B,EAAA;EAAA;IAAAA,EAAA,GAAA/B,CAAA;EAAA;EAAA,OAVM+B,EAUN;AAAA,CACF;AApDsC,SAAAvB,MAAAwB,IAAA,EAAAC,MAAA,EAAAC,SAAA;EAAA,OAmBwB5C,iBAAiB,CAAC0C,IAAI,EAAEE,SAAS,CAAC;AAAA;AAnB1D,SAAAP,OAAAQ,OAAA;EAAA,OAkC3B,CAAC,CAACA,OAAO,CAAAC,SAAiC,IAAnBD,OAAO,CAAAE,WACuB,MAApDF,OAAO,CAAAG,WAAoB,EAAAC,MAAwB,IAApBJ,OAAO,CAAAK,IAAa,EAAAD,MAAC;AAAA;AAnC1B,SAAAV,OAAAY,CAAA,EAAAC,CAAA;EAAA,OAqCf,CAACD,CAAC,CAAAE,EAAG,CAAAC,aAAc,CAACF,CAAC,CAAAC,EAAG,CAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"use_conversation_messages.js","names":["useMemo","replaceEqualById","getMessagesQueryKey","getMessagesRequestArgs","useSuspensePaginator","useConversationMessages","t0","opts","$","_c","conversation_id","reply_root_id","t1","t2","structuralSharing","data","refetch","isRefetching","fetchNextPage","hasNextPage","t3","queryKey","t4","filter","_temp","sort","_temp2","messages","t5","message","deletedAt","replyRootId","attachments","length","text","a","b","id","localeCompare"],"sources":["../../src/hooks/use_conversation_messages.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { MessageResource } from '../types'\nimport { replaceEqualById } from '../utils/replace_equal_by_id'\nimport { getMessagesQueryKey, getMessagesRequestArgs } from '../utils/request/get_messages'\nimport { SuspensePaginatorOptions, useSuspensePaginator } from './use_suspense_api'\n\nexport const useConversationMessages = (\n { conversation_id, reply_root_id }: { conversation_id: number; reply_root_id?: string | null },\n opts?: SuspensePaginatorOptions\n) => {\n const { data, refetch, isRefetching, fetchNextPage, hasNextPage } =\n useSuspensePaginator<MessageResource>(\n getMessagesRequestArgs({ conversation_id, reply_root_id }),\n {\n structuralSharing: replaceEqualById,\n ...opts,\n }\n )\n const queryKey = getMessagesQueryKey({ conversation_id, reply_root_id })\n const messages = useMemo(\n () =>\n data\n .filter(\n message =>\n (!message.deletedAt || message.replyRootId) &&\n (message.attachments?.length || message.text?.length)\n )\n .sort((a, b) => -a.id.localeCompare(b.id)),\n [data]\n )\n\n return { messages, refetch, isRefetching, fetchNextPage, hasNextPage, queryKey }\n}\n"],"mappings":";AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,mBAAmB,EAAEC,sBAAsB,QAAQ,+BAA+B;AAC3F,SAAmCC,oBAAoB,QAAQ,oBAAoB;AAEnF,OAAO,MAAMC,uBAAuB,GAAGA,CAAAC,EAAA,EAAAC,IAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACrC;IAAAC,eAAA;IAAAC;EAAA,IAAAL,EAA8F;EAAA,IAAAM,EAAA;EAAA,IAAAJ,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAG,aAAA;IAK1FC,EAAA,GAAAT,sBAAsB,CAAC;MAAAO,eAAA;MAAAC;IAAiC,CAAC,CAAC;IAAAH,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,aAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAAA,IAAAK,EAAA;EAAA,IAAAL,CAAA,QAAAD,IAAA;IAC1DM,EAAA;MAAAC,iBAAA,EACqBb,gBAAgB;MAAA,GAChCM;IACL,CAAC;IAAAC,CAAA,MAAAD,IAAA;IAAAC,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EANL;IAAAO,IAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,aAAA;IAAAC;EAAA,IACEf,oBAAoB,CAClBQ,EAA0D,EAC1DC,EAIF,CAAC;EAAA,IAAAO,EAAA;EAAA,IAAAZ,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAG,aAAA;IACcS,EAAA,GAAAlB,mBAAmB,CAAC;MAAAQ,eAAA;MAAAC;IAAiC,CAAC,CAAC;IAAAH,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,aAAA;IAAAH,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAxE,MAAAa,QAAA,GAAiBD,EAAuD;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAO,IAAA;IAGpEO,EAAA,GAAAP,IAAI,CAAAQ,MACK,CACLC,KAGF,CAAC,CAAAC,IACI,CAACC,MAAmC,CAAC;IAAAlB,CAAA,MAAAO,IAAA;IAAAP,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EARhD,MAAAmB,QAAA,GAEIL,EAM4C;EAE/C,IAAAM,EAAA;EAAA,IAAApB,CAAA,SAAAU,aAAA,IAAAV,CAAA,SAAAW,WAAA,IAAAX,CAAA,SAAAS,YAAA,IAAAT,CAAA,SAAAmB,QAAA,IAAAnB,CAAA,SAAAa,QAAA,IAAAb,CAAA,SAAAQ,OAAA;IAEMY,EAAA;MAAAD,QAAA;MAAAX,OAAA;MAAAC,YAAA;MAAAC,aAAA;MAAAC,WAAA;MAAAE;IAAwE,CAAC;IAAAb,CAAA,OAAAU,aAAA;IAAAV,CAAA,OAAAW,WAAA;IAAAX,CAAA,OAAAS,YAAA;IAAAT,CAAA,OAAAmB,QAAA;IAAAnB,CAAA,OAAAa,QAAA;IAAAb,CAAA,OAAAQ,OAAA;IAAAR,CAAA,OAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAAA,OAAzEoB,EAAyE;AAAA,CACjF;AA1BsC,SAAAJ,MAAAK,OAAA;EAAA,OAkB3B,CAAC,CAACA,OAAO,CAAAC,SAAiC,IAAnBD,OAAO,CAAAE,WACuB,MAApDF,OAAO,CAAAG,WAAoB,EAAAC,MAAwB,IAApBJ,OAAO,CAAAK,IAAa,EAAAD,MAAC;AAAA;AAnB1B,SAAAP,OAAAS,CAAA,EAAAC,CAAA;EAAA,OAqBf,CAACD,CAAC,CAAAE,EAAG,CAAAC,aAAc,CAACF,CAAC,CAAAC,EAAG,CAAC;AAAA","ignoreList":[]}
@@ -1,22 +1,6 @@
1
- export type MessagesJoltEvent = 'message.created' | 'message.updated' | 'message.destroyed' | 'reaction';
2
- export interface MessagesCache {
3
- queryKey: unknown[];
4
- canUpdate?: (event: MessagesJoltEvent) => boolean;
5
- }
6
- export interface MessagesView {
7
- replyRootId: string | null;
8
- cache: MessagesCache;
9
- }
10
- type MessageEventData = {
11
- sort_key: string;
12
- reply_root_id?: string | null;
13
- };
14
1
  interface Props {
15
2
  conversationId: number;
16
- replyRootId?: string | null;
17
- messageCache?: MessagesCache;
18
3
  }
19
- export declare const queryKeysForEvent: (event: MessagesJoltEvent, view: MessagesView, data: MessageEventData) => unknown[][];
20
- export declare function useConversationMessagesJoltEvents({ conversationId, replyRootId, messageCache, }: Props): void;
4
+ export declare function useConversationMessagesJoltEvents({ conversationId }: Props): void;
21
5
  export {};
22
6
  //# sourceMappingURL=use_conversation_messages_jolt_events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversation_messages_jolt_events.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation_messages_jolt_events.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,UAAU,CAAA;AAEd,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAA;CAClD;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,aAAa,CAAA;CACrB;AAED,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAA;AAE3E,UAAU,KAAK;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B;AAKD,eAAO,MAAM,iBAAiB,GAC5B,OAAO,iBAAiB,EACxB,MAAM,YAAY,EAClB,MAAM,gBAAgB,gBAIvB,CAAA;AAED,wBAAgB,iCAAiC,CAAC,EAChD,cAAc,EACd,WAAkB,EAClB,YAAY,GACb,EAAE,KAAK,QAsFP"}
1
+ {"version":3,"file":"use_conversation_messages_jolt_events.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation_messages_jolt_events.ts"],"names":[],"mappings":"AA0BA,UAAU,KAAK;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,iCAAiC,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,QAqG1E"}
@@ -1,68 +1,45 @@
1
1
  import { c as _c } from "react/compiler-runtime";
2
2
  import { useQueryClient } from '@tanstack/react-query';
3
3
  import { deleteRecordInPagesData } from '../utils';
4
- import { updateCacheWithMessage, updateCacheWithIndividualMessage, updateCacheWithReaction, updateCacheReplyRoots } from '../utils/cache/messages_cache';
4
+ import { updateCacheWithMessage, updateCacheWithIndividualMessage, updateCacheWithReaction, updateCacheReplyRoots, getThreadedMessagesQueryKey } from '../utils/cache/messages_cache';
5
5
  import { transformMessageEventDataToMessageResource } from '../utils/jolt/transform_message_event_data_to_message_resource';
6
6
  import { completeMessageCreationTracking } from '../utils/performance_tracking';
7
7
  import { getMessageQueryKey } from '../utils/request/get_message';
8
- import { getMessagesQueryKey } from '../utils/request/get_messages';
8
+ import { getMessagesRequestArgs } from '../utils/request/get_messages';
9
9
  import { useApiClient } from './use_api_client';
10
10
  import { useCurrentPerson } from './use_current_person';
11
11
  import { useJoltChannel, useJoltEvent } from './use_jolt';
12
+ import { getRequestQueryKey } from './use_suspense_api';
12
13
  import { TYPING_TIMEOUT_INTERVAL, useTypingStatusCache } from './use_typing_status_cache';
13
- const belongsToView = (replyRootId, data) => replyRootId === null || data.reply_root_id === replyRootId || data.sort_key === replyRootId;
14
- export const queryKeysForEvent = (event, view, data) => {
15
- const accepted = !view.cache.canUpdate || view.cache.canUpdate(event);
16
- return belongsToView(view.replyRootId, data) && accepted ? [view.cache.queryKey] : [];
17
- };
18
14
  export function useConversationMessagesJoltEvents(t0) {
19
- const $ = _c(25);
15
+ const $ = _c(22);
20
16
  const {
21
- conversationId,
22
- replyRootId: t1,
23
- messageCache
17
+ conversationId
24
18
  } = t0;
25
- const replyRootId = t1 === undefined ? null : t1;
26
19
  const queryClient = useQueryClient();
27
20
  const currentPerson = useCurrentPerson();
28
21
  const joltChannel = useJoltChannel(`chat.conversations.${conversationId}`);
29
- let t2;
30
- if ($[0] !== conversationId || $[1] !== messageCache || $[2] !== replyRootId) {
31
- t2 = messageCache ?? {
32
- queryKey: getMessagesQueryKey({
33
- conversation_id: conversationId,
34
- reply_root_id: replyRootId
35
- })
36
- };
22
+ let t1;
23
+ if ($[0] !== conversationId) {
24
+ const messagesRequestArgs = getMessagesRequestArgs({
25
+ conversation_id: conversationId
26
+ });
27
+ t1 = getRequestQueryKey(messagesRequestArgs);
37
28
  $[0] = conversationId;
38
- $[1] = messageCache;
39
- $[2] = replyRootId;
40
- $[3] = t2;
41
- } else {
42
- t2 = $[3];
43
- }
44
- let t3;
45
- if ($[4] !== replyRootId || $[5] !== t2) {
46
- t3 = {
47
- replyRootId,
48
- cache: t2
49
- };
50
- $[4] = replyRootId;
51
- $[5] = t2;
52
- $[6] = t3;
29
+ $[1] = t1;
53
30
  } else {
54
- t3 = $[6];
31
+ t1 = $[1];
55
32
  }
56
- const view = t3;
33
+ const messagesQueryKey = t1;
57
34
  const apiClient = useApiClient();
58
35
  const {
59
36
  addTypingEvent,
60
37
  removeTypingEventById,
61
38
  removeAllTypingEventsByAuthorId
62
39
  } = useTypingStatusCache(conversationId);
63
- let t4;
64
- if ($[7] !== apiClient || $[8] !== conversationId || $[9] !== currentPerson.id || $[10] !== queryClient || $[11] !== removeAllTypingEventsByAuthorId || $[12] !== view) {
65
- t4 = async e => {
40
+ let t2;
41
+ if ($[2] !== apiClient || $[3] !== conversationId || $[4] !== currentPerson.id || $[5] !== messagesQueryKey || $[6] !== queryClient || $[7] !== removeAllTypingEventsByAuthorId) {
42
+ t2 = async e => {
66
43
  const {
67
44
  data
68
45
  } = e.data;
@@ -80,10 +57,14 @@ export function useConversationMessagesJoltEvents(t0) {
80
57
  });
81
58
  }
82
59
  }
83
- const targetQueryKeys = queryKeysForEvent(e.event, view, data);
84
- targetQueryKeys.forEach(queryKey => updateCacheWithMessage(queryClient, queryKey, message, e.event));
85
- if (isReplyRootUpdate) {
86
- targetQueryKeys.forEach(queryKey_0 => updateCacheReplyRoots(queryClient, queryKey_0, message));
60
+ updateCacheWithMessage(queryClient, messagesQueryKey, message, e.event);
61
+ if (data.reply_root_id) {
62
+ const threadedMessagesQueryKey = getThreadedMessagesQueryKey(conversationId, data.reply_root_id);
63
+ updateCacheWithMessage(queryClient, threadedMessagesQueryKey, message, e.event);
64
+ if (isReplyRootUpdate) {
65
+ updateCacheReplyRoots(queryClient, messagesQueryKey, message);
66
+ updateCacheReplyRoots(queryClient, threadedMessagesQueryKey, message);
67
+ }
87
68
  }
88
69
  if (e.event === "message.updated") {
89
70
  const individualMessageQueryKey = getMessageQueryKey({
@@ -93,20 +74,20 @@ export function useConversationMessagesJoltEvents(t0) {
93
74
  updateCacheWithIndividualMessage(queryClient, individualMessageQueryKey, message);
94
75
  }
95
76
  };
96
- $[7] = apiClient;
97
- $[8] = conversationId;
98
- $[9] = currentPerson.id;
99
- $[10] = queryClient;
100
- $[11] = removeAllTypingEventsByAuthorId;
101
- $[12] = view;
102
- $[13] = t4;
77
+ $[2] = apiClient;
78
+ $[3] = conversationId;
79
+ $[4] = currentPerson.id;
80
+ $[5] = messagesQueryKey;
81
+ $[6] = queryClient;
82
+ $[7] = removeAllTypingEventsByAuthorId;
83
+ $[8] = t2;
103
84
  } else {
104
- t4 = $[13];
85
+ t2 = $[8];
105
86
  }
106
- const handleMessageUpdateOrCreate = t4;
107
- let t5;
108
- if ($[14] !== currentPerson.id || $[15] !== queryClient || $[16] !== view) {
109
- t5 = async e_0 => {
87
+ const handleMessageUpdateOrCreate = t2;
88
+ let t3;
89
+ if ($[9] !== conversationId || $[10] !== currentPerson.id || $[11] !== messagesQueryKey || $[12] !== queryClient) {
90
+ t3 = async e_0 => {
110
91
  const {
111
92
  data: data_0
112
93
  } = e_0.data;
@@ -114,52 +95,62 @@ export function useConversationMessagesJoltEvents(t0) {
114
95
  data: data_0,
115
96
  currentPersonId: currentPerson.id
116
97
  });
117
- queryKeysForEvent("message.destroyed", view, data_0).forEach(queryKey_1 => queryClient.setQueryData(queryKey_1, prev => deleteRecordInPagesData({
98
+ queryClient.setQueryData(messagesQueryKey, prev => deleteRecordInPagesData({
118
99
  data: prev,
119
100
  record: message_0
120
- })));
101
+ }));
102
+ if (data_0.reply_root_id) {
103
+ const threadedMessagesQueryKey_0 = getThreadedMessagesQueryKey(conversationId, data_0.reply_root_id);
104
+ queryClient.setQueryData(threadedMessagesQueryKey_0, prev_0 => deleteRecordInPagesData({
105
+ data: prev_0,
106
+ record: message_0
107
+ }));
108
+ }
121
109
  };
122
- $[14] = currentPerson.id;
123
- $[15] = queryClient;
124
- $[16] = view;
125
- $[17] = t5;
110
+ $[9] = conversationId;
111
+ $[10] = currentPerson.id;
112
+ $[11] = messagesQueryKey;
113
+ $[12] = queryClient;
114
+ $[13] = t3;
126
115
  } else {
127
- t5 = $[17];
116
+ t3 = $[13];
128
117
  }
129
- const handleMessageDeleted = t5;
130
- let t6;
131
- if ($[18] !== currentPerson.id || $[19] !== queryClient || $[20] !== view) {
132
- t6 = async e_1 => {
133
- const data_1 = {
134
- sort_key: e_1.data.data.message_sort_key,
135
- reply_root_id: e_1.data.data.reply_root_id
136
- };
137
- queryKeysForEvent("reaction", view, data_1).forEach(queryKey_2 => updateCacheWithReaction(queryClient, queryKey_2, e_1, currentPerson.id));
118
+ const handleMessageDeleted = t3;
119
+ let t4;
120
+ if ($[14] !== conversationId || $[15] !== currentPerson.id || $[16] !== messagesQueryKey || $[17] !== queryClient) {
121
+ t4 = async e_1 => {
122
+ updateCacheWithReaction(queryClient, messagesQueryKey, e_1, currentPerson.id);
123
+ const replyRootId = e_1.data.data.reply_root_id;
124
+ if (replyRootId) {
125
+ const threadedMessagesQueryKey_1 = getThreadedMessagesQueryKey(conversationId, replyRootId);
126
+ updateCacheWithReaction(queryClient, threadedMessagesQueryKey_1, e_1, currentPerson.id);
127
+ }
138
128
  };
139
- $[18] = currentPerson.id;
140
- $[19] = queryClient;
141
- $[20] = view;
142
- $[21] = t6;
129
+ $[14] = conversationId;
130
+ $[15] = currentPerson.id;
131
+ $[16] = messagesQueryKey;
132
+ $[17] = queryClient;
133
+ $[18] = t4;
143
134
  } else {
144
- t6 = $[21];
135
+ t4 = $[18];
145
136
  }
146
- const handleReactionJoltEvent = t6;
147
- let t7;
148
- if ($[22] !== addTypingEvent || $[23] !== removeTypingEventById) {
149
- t7 = async e_2 => {
137
+ const handleReactionJoltEvent = t4;
138
+ let t5;
139
+ if ($[19] !== addTypingEvent || $[20] !== removeTypingEventById) {
140
+ t5 = async e_2 => {
150
141
  const {
151
- data: data_2
142
+ data: data_1
152
143
  } = e_2.data;
153
- addTypingEvent(data_2);
154
- setTimeout(() => removeTypingEventById(data_2.id), TYPING_TIMEOUT_INTERVAL);
144
+ addTypingEvent(data_1);
145
+ setTimeout(() => removeTypingEventById(data_1.id), TYPING_TIMEOUT_INTERVAL);
155
146
  };
156
- $[22] = addTypingEvent;
157
- $[23] = removeTypingEventById;
158
- $[24] = t7;
147
+ $[19] = addTypingEvent;
148
+ $[20] = removeTypingEventById;
149
+ $[21] = t5;
159
150
  } else {
160
- t7 = $[24];
151
+ t5 = $[21];
161
152
  }
162
- const handleTypingEvent = t7;
153
+ const handleTypingEvent = t5;
163
154
  useJoltEvent(joltChannel, "message.created", handleMessageUpdateOrCreate);
164
155
  useJoltEvent(joltChannel, "message.updated", handleMessageUpdateOrCreate);
165
156
  useJoltEvent(joltChannel, "message.destroyed", handleMessageDeleted);