@planningcenter/chat-react-native 3.2.0-rc.9 → 3.3.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 (362) hide show
  1. package/build/components/conversation/message_form/message_form_attachment_image.d.ts +13 -0
  2. package/build/components/conversation/message_form/message_form_attachment_image.d.ts.map +1 -0
  3. package/build/components/conversation/message_form/message_form_attachment_image.js +78 -0
  4. package/build/components/conversation/message_form/message_form_attachment_image.js.map +1 -0
  5. package/build/components/conversation/message_form.d.ts.map +1 -1
  6. package/build/components/conversation/message_form.js +128 -16
  7. package/build/components/conversation/message_form.js.map +1 -1
  8. package/build/components/conversations/conversation_actions.d.ts +2 -2
  9. package/build/components/conversations/conversation_actions.d.ts.map +1 -1
  10. package/build/components/conversations/conversation_actions.js.map +1 -1
  11. package/build/components/conversations/conversation_preview.d.ts +3 -1
  12. package/build/components/conversations/conversation_preview.d.ts.map +1 -1
  13. package/build/components/conversations/conversation_preview.js +2 -2
  14. package/build/components/conversations/conversation_preview.js.map +1 -1
  15. package/build/components/display/action_button.d.ts +2 -1
  16. package/build/components/display/action_button.d.ts.map +1 -1
  17. package/build/components/display/action_button.js +3 -4
  18. package/build/components/display/action_button.js.map +1 -1
  19. package/build/components/display/banner.d.ts +6 -1
  20. package/build/components/display/banner.d.ts.map +1 -1
  21. package/build/components/display/banner.js +2 -2
  22. package/build/components/display/banner.js.map +1 -1
  23. package/build/components/display/banner_collapsible.d.ts +1 -1
  24. package/build/components/display/banner_collapsible.d.ts.map +1 -1
  25. package/build/components/display/banner_collapsible.js +2 -2
  26. package/build/components/display/banner_collapsible.js.map +1 -1
  27. package/build/components/display/child_notice.d.ts +3 -1
  28. package/build/components/display/child_notice.d.ts.map +1 -1
  29. package/build/components/display/child_notice.js +2 -2
  30. package/build/components/display/child_notice.js.map +1 -1
  31. package/build/components/group_conversation_list.d.ts +19 -0
  32. package/build/components/group_conversation_list.d.ts.map +1 -0
  33. package/build/components/group_conversation_list.js +48 -0
  34. package/build/components/group_conversation_list.js.map +1 -0
  35. package/build/components/index.d.ts +1 -0
  36. package/build/components/index.d.ts.map +1 -1
  37. package/build/components/index.js +1 -0
  38. package/build/components/index.js.map +1 -1
  39. package/build/components/primitive/banner_primitive.d.ts +3 -0
  40. package/build/components/primitive/banner_primitive.d.ts.map +1 -1
  41. package/build/components/primitive/banner_primitive.js +4 -4
  42. package/build/components/primitive/banner_primitive.js.map +1 -1
  43. package/build/contexts/api_provider.d.ts +1 -1
  44. package/build/contexts/api_provider.d.ts.map +1 -1
  45. package/build/contexts/api_provider.js +3 -3
  46. package/build/contexts/api_provider.js.map +1 -1
  47. package/build/contexts/chat_context.d.ts +4 -4
  48. package/build/contexts/chat_context.d.ts.map +1 -1
  49. package/build/contexts/chat_context.js +3 -3
  50. package/build/contexts/chat_context.js.map +1 -1
  51. package/build/contexts/conversations_context.js +1 -1
  52. package/build/contexts/conversations_context.js.map +1 -1
  53. package/build/hooks/attachments/supported_extensions.d.ts +2 -0
  54. package/build/hooks/attachments/supported_extensions.d.ts.map +1 -0
  55. package/build/hooks/attachments/supported_extensions.js +48 -0
  56. package/build/hooks/attachments/supported_extensions.js.map +1 -0
  57. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts +235 -0
  58. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts.map +1 -0
  59. package/build/hooks/groups/use_group_members_for_new_conversation.js +55 -0
  60. package/build/hooks/groups/use_group_members_for_new_conversation.js.map +1 -0
  61. package/build/hooks/groups/use_groups_conversation_create.d.ts +9 -0
  62. package/build/hooks/groups/use_groups_conversation_create.d.ts.map +1 -0
  63. package/build/hooks/groups/use_groups_conversation_create.js +36 -0
  64. package/build/hooks/groups/use_groups_conversation_create.js.map +1 -0
  65. package/build/hooks/index.d.ts +4 -0
  66. package/build/hooks/index.d.ts.map +1 -1
  67. package/build/hooks/index.js +4 -0
  68. package/build/hooks/index.js.map +1 -1
  69. package/build/hooks/use_api.d.ts +43 -43
  70. package/build/hooks/use_api.d.ts.map +1 -1
  71. package/build/hooks/use_api.js +5 -0
  72. package/build/hooks/use_api.js.map +1 -1
  73. package/build/hooks/use_api_client.d.ts.map +1 -1
  74. package/build/hooks/use_api_client.js +5 -3
  75. package/build/hooks/use_api_client.js.map +1 -1
  76. package/build/hooks/use_attachment_uploader.d.ts +26 -0
  77. package/build/hooks/use_attachment_uploader.d.ts.map +1 -0
  78. package/build/hooks/use_attachment_uploader.js +111 -0
  79. package/build/hooks/use_attachment_uploader.js.map +1 -0
  80. package/build/hooks/use_chat_permissions.d.ts +14 -14
  81. package/build/hooks/use_conversation.d.ts.map +1 -1
  82. package/build/hooks/use_conversation.js +1 -0
  83. package/build/hooks/use_conversation.js.map +1 -1
  84. package/build/hooks/use_conversations_actions.d.ts.map +1 -1
  85. package/build/hooks/use_conversations_actions.js +10 -0
  86. package/build/hooks/use_conversations_actions.js.map +1 -1
  87. package/build/hooks/use_conversations_jolt_events.d.ts.map +1 -1
  88. package/build/hooks/use_conversations_jolt_events.js +4 -1
  89. package/build/hooks/use_conversations_jolt_events.js.map +1 -1
  90. package/build/hooks/use_current_person.d.ts +15 -0
  91. package/build/hooks/use_current_person.d.ts.map +1 -1
  92. package/build/hooks/use_current_person.js +26 -9
  93. package/build/hooks/use_current_person.js.map +1 -1
  94. package/build/hooks/use_groups.d.ts +26 -26
  95. package/build/hooks/use_groups_groups.d.ts +26 -26
  96. package/build/hooks/use_jolt.d.ts.map +1 -1
  97. package/build/hooks/use_jolt.js +15 -22
  98. package/build/hooks/use_jolt.js.map +1 -1
  99. package/build/hooks/use_message_create.js +2 -2
  100. package/build/hooks/use_message_create.js.map +1 -1
  101. package/build/hooks/use_suspense_api.d.ts.map +1 -1
  102. package/build/hooks/use_suspense_api.js +5 -0
  103. package/build/hooks/use_suspense_api.js.map +1 -1
  104. package/build/hooks/use_teams.d.ts +26 -26
  105. package/build/hooks/use_upload_client.d.ts +28 -0
  106. package/build/hooks/use_upload_client.d.ts.map +1 -0
  107. package/build/hooks/use_upload_client.js +32 -0
  108. package/build/hooks/use_upload_client.js.map +1 -0
  109. package/build/index.d.ts +3 -2
  110. package/build/index.d.ts.map +1 -1
  111. package/build/index.js +3 -2
  112. package/build/index.js.map +1 -1
  113. package/build/navigation/index.d.ts +52 -34
  114. package/build/navigation/index.d.ts.map +1 -1
  115. package/build/navigation/index.js +16 -2
  116. package/build/navigation/index.js.map +1 -1
  117. package/build/screens/conversation_details_screen.js +2 -2
  118. package/build/screens/conversation_details_screen.js.map +1 -1
  119. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts +10 -0
  120. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts.map +1 -0
  121. package/build/screens/conversation_filter_recipients/components/checkbox_row.js +74 -0
  122. package/build/screens/conversation_filter_recipients/components/checkbox_row.js.map +1 -0
  123. package/build/screens/conversation_filter_recipients/components/header_row.d.ts +10 -0
  124. package/build/screens/conversation_filter_recipients/components/header_row.d.ts.map +1 -0
  125. package/build/screens/conversation_filter_recipients/components/header_row.js +69 -0
  126. package/build/screens/conversation_filter_recipients/components/header_row.js.map +1 -0
  127. package/build/screens/conversation_filter_recipients/components/navigation_header.d.ts +5 -0
  128. package/build/screens/conversation_filter_recipients/components/navigation_header.d.ts.map +1 -0
  129. package/build/screens/conversation_filter_recipients/components/navigation_header.js +46 -0
  130. package/build/screens/conversation_filter_recipients/components/navigation_header.js.map +1 -0
  131. package/build/screens/conversation_filter_recipients/context/conversation_filter_recipients_context.d.ts +17 -0
  132. package/build/screens/conversation_filter_recipients/context/conversation_filter_recipients_context.d.ts.map +1 -0
  133. package/build/screens/conversation_filter_recipients/context/conversation_filter_recipients_context.js +37 -0
  134. package/build/screens/conversation_filter_recipients/context/conversation_filter_recipients_context.js.map +1 -0
  135. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts +1 -3
  136. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts.map +1 -1
  137. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js +67 -32
  138. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js.map +1 -1
  139. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.d.ts +10 -0
  140. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.d.ts.map +1 -0
  141. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.js +32 -0
  142. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.js.map +1 -0
  143. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.d.ts +8 -0
  144. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.d.ts.map +1 -0
  145. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.js +65 -0
  146. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.js.map +1 -0
  147. package/build/screens/conversation_filter_recipients/types.d.ts +38 -0
  148. package/build/screens/conversation_filter_recipients/types.d.ts.map +1 -0
  149. package/build/screens/conversation_filter_recipients/types.js +6 -0
  150. package/build/screens/conversation_filter_recipients/types.js.map +1 -0
  151. package/build/screens/conversation_filters/components/conversation_filters.js +5 -2
  152. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  153. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  154. package/build/screens/conversation_filters/components/rows.js +6 -1
  155. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  156. package/build/screens/conversation_filters/group_filters.d.ts.map +1 -1
  157. package/build/screens/conversation_filters/group_filters.js +12 -4
  158. package/build/screens/conversation_filters/group_filters.js.map +1 -1
  159. package/build/screens/conversation_filters/hooks/filters.d.ts +40 -40
  160. package/build/screens/conversation_filters/hooks/filters.js +1 -1
  161. package/build/screens/conversation_filters/hooks/filters.js.map +1 -1
  162. package/build/screens/conversation_filters/team_filters.d.ts.map +1 -1
  163. package/build/screens/conversation_filters/team_filters.js +12 -4
  164. package/build/screens/conversation_filters/team_filters.js.map +1 -1
  165. package/build/screens/conversation_filters_screen.js +1 -0
  166. package/build/screens/conversation_filters_screen.js.map +1 -1
  167. package/build/screens/conversation_new/components/groups_form.d.ts +4 -2
  168. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  169. package/build/screens/conversation_new/components/groups_form.js +40 -55
  170. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  171. package/build/screens/conversation_new/components/team_form.d.ts +1 -1
  172. package/build/screens/conversation_new/components/team_form.js.map +1 -1
  173. package/build/screens/conversation_new/conversation_new_screen.d.ts +5 -2
  174. package/build/screens/conversation_new/conversation_new_screen.d.ts.map +1 -1
  175. package/build/screens/conversation_new/conversation_new_screen.js +2 -2
  176. package/build/screens/conversation_new/conversation_new_screen.js.map +1 -1
  177. package/build/screens/conversation_screen.d.ts +7 -0
  178. package/build/screens/conversation_screen.d.ts.map +1 -1
  179. package/build/screens/conversation_screen.js +103 -4
  180. package/build/screens/conversation_screen.js.map +1 -1
  181. package/build/screens/conversation_select_recipients/components/groups_without_chat_disclaimer_row.d.ts +2 -0
  182. package/build/screens/conversation_select_recipients/components/groups_without_chat_disclaimer_row.d.ts.map +1 -0
  183. package/build/screens/conversation_select_recipients/components/groups_without_chat_disclaimer_row.js +17 -0
  184. package/build/screens/conversation_select_recipients/components/groups_without_chat_disclaimer_row.js.map +1 -0
  185. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts +12 -0
  186. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts.map +1 -0
  187. package/build/screens/conversation_select_recipients/components/recipient_link_row.js +61 -0
  188. package/build/screens/conversation_select_recipients/components/recipient_link_row.js.map +1 -0
  189. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts +7 -0
  190. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts.map +1 -0
  191. package/build/screens/conversation_select_recipients/components/view_more_link_row.js +21 -0
  192. package/build/screens/conversation_select_recipients/components/view_more_link_row.js.map +1 -0
  193. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts +4 -0
  194. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -0
  195. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +48 -0
  196. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -0
  197. package/build/screens/conversation_select_recipients/conversation_select_recipients_screen.d.ts +2 -6
  198. package/build/screens/conversation_select_recipients/conversation_select_recipients_screen.d.ts.map +1 -1
  199. package/build/screens/conversation_select_recipients/conversation_select_recipients_screen.js +37 -49
  200. package/build/screens/conversation_select_recipients/conversation_select_recipients_screen.js.map +1 -1
  201. package/build/screens/conversation_select_recipients/types/screen_props.d.ts +9 -0
  202. package/build/screens/conversation_select_recipients/types/screen_props.d.ts.map +1 -0
  203. package/build/screens/conversation_select_recipients/types/screen_props.js +2 -0
  204. package/build/screens/conversation_select_recipients/types/screen_props.js.map +1 -0
  205. package/build/screens/conversations/components/list_header_component.d.ts.map +1 -1
  206. package/build/screens/conversations/components/list_header_component.js +18 -4
  207. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  208. package/build/screens/conversations/conversations_screen.d.ts +2 -1
  209. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  210. package/build/screens/conversations/conversations_screen.js +32 -1
  211. package/build/screens/conversations/conversations_screen.js.map +1 -1
  212. package/build/screens/send_giphy_screen.js +29 -1
  213. package/build/screens/send_giphy_screen.js.map +1 -1
  214. package/build/types/resources/groups/groups_group_resource.d.ts +1 -1
  215. package/build/types/resources/groups/groups_group_resource.js.map +1 -1
  216. package/build/types/resources/groups/groups_member_resource_with_person.d.ts +14 -0
  217. package/build/types/resources/groups/groups_member_resource_with_person.d.ts.map +1 -0
  218. package/build/types/resources/groups/groups_member_resource_with_person.js +2 -0
  219. package/build/types/resources/groups/groups_member_resource_with_person.js.map +1 -0
  220. package/build/types/resources/member.d.ts +0 -10
  221. package/build/types/resources/member.d.ts.map +1 -1
  222. package/build/types/resources/member.js.map +1 -1
  223. package/build/types/resources/message.d.ts +2 -0
  224. package/build/types/resources/message.d.ts.map +1 -1
  225. package/build/types/resources/message.js.map +1 -1
  226. package/build/types/resources/oauth_token.d.ts +4 -4
  227. package/build/types/resources/oauth_token.d.ts.map +1 -1
  228. package/build/types/resources/oauth_token.js.map +1 -1
  229. package/build/utils/client/client.d.ts +4 -8
  230. package/build/utils/client/client.d.ts.map +1 -1
  231. package/build/utils/client/client.js +10 -9
  232. package/build/utils/client/client.js.map +1 -1
  233. package/build/utils/date.d.ts +5 -0
  234. package/build/utils/date.d.ts.map +1 -1
  235. package/build/utils/date.js +8 -1
  236. package/build/utils/date.js.map +1 -1
  237. package/build/utils/destructure_chat_group_graph_id.d.ts +10 -0
  238. package/build/utils/destructure_chat_group_graph_id.d.ts.map +1 -0
  239. package/build/utils/destructure_chat_group_graph_id.js +8 -0
  240. package/build/utils/destructure_chat_group_graph_id.js.map +1 -0
  241. package/build/utils/index.d.ts +1 -0
  242. package/build/utils/index.d.ts.map +1 -1
  243. package/build/utils/index.js +1 -0
  244. package/build/utils/index.js.map +1 -1
  245. package/build/utils/native_adapters/configuration.d.ts +4 -1
  246. package/build/utils/native_adapters/configuration.d.ts.map +1 -1
  247. package/build/utils/native_adapters/configuration.js +13 -1
  248. package/build/utils/native_adapters/configuration.js.map +1 -1
  249. package/build/utils/native_adapters/image_picker.d.ts +25 -0
  250. package/build/utils/native_adapters/image_picker.d.ts.map +1 -0
  251. package/build/utils/native_adapters/image_picker.js +9 -0
  252. package/build/utils/native_adapters/image_picker.js.map +1 -0
  253. package/build/utils/native_adapters/index.d.ts +1 -0
  254. package/build/utils/native_adapters/index.d.ts.map +1 -1
  255. package/build/utils/native_adapters/index.js +1 -0
  256. package/build/utils/native_adapters/index.js.map +1 -1
  257. package/build/utils/session.d.ts +6 -2
  258. package/build/utils/session.d.ts.map +1 -1
  259. package/build/utils/session.js +6 -1
  260. package/build/utils/session.js.map +1 -1
  261. package/build/utils/upload_uri.d.ts +23 -0
  262. package/build/utils/upload_uri.d.ts.map +1 -0
  263. package/build/utils/upload_uri.js +60 -0
  264. package/build/utils/upload_uri.js.map +1 -0
  265. package/build/utils/uri.d.ts +10 -2
  266. package/build/utils/uri.d.ts.map +1 -1
  267. package/build/utils/uri.js +24 -6
  268. package/build/utils/uri.js.map +1 -1
  269. package/build/vendor/tapestry/alias_tokens_color_map.d.ts +2 -0
  270. package/build/vendor/tapestry/alias_tokens_color_map.d.ts.map +1 -1
  271. package/build/vendor/tapestry/alias_tokens_color_map.js +2 -0
  272. package/build/vendor/tapestry/alias_tokens_color_map.js.map +1 -1
  273. package/package.json +4 -3
  274. package/src/__tests__/hooks/useTheme.tsx +1 -1
  275. package/src/__tests__/{client.ts → utils/client.ts} +7 -115
  276. package/src/__tests__/{session.ts → utils/session.ts} +4 -4
  277. package/src/__tests__/utils/uri.ts +107 -0
  278. package/src/components/conversation/message_form/message_form_attachment_image.tsx +121 -0
  279. package/src/components/conversation/message_form.tsx +197 -31
  280. package/src/components/conversations/conversation_actions.tsx +2 -2
  281. package/src/components/conversations/conversation_preview.tsx +8 -2
  282. package/src/components/display/action_button.tsx +4 -3
  283. package/src/components/display/banner.tsx +7 -1
  284. package/src/components/display/banner_collapsible.tsx +6 -1
  285. package/src/components/display/child_notice.tsx +9 -3
  286. package/src/components/group_conversation_list.tsx +82 -0
  287. package/src/components/index.tsx +1 -0
  288. package/src/components/primitive/banner_primitive.tsx +12 -5
  289. package/src/contexts/api_provider.tsx +3 -3
  290. package/src/contexts/chat_context.tsx +7 -7
  291. package/src/contexts/conversations_context.tsx +1 -1
  292. package/src/hooks/attachments/supported_extensions.ts +47 -0
  293. package/src/hooks/groups/use_group_members_for_new_conversation.ts +74 -0
  294. package/src/hooks/groups/use_groups_conversation_create.ts +50 -0
  295. package/src/hooks/index.ts +4 -0
  296. package/src/hooks/use_api.ts +13 -7
  297. package/src/hooks/use_api_client.ts +7 -3
  298. package/src/hooks/use_attachment_uploader.ts +179 -0
  299. package/src/hooks/use_conversation.ts +1 -0
  300. package/src/hooks/use_conversations_actions.ts +11 -0
  301. package/src/hooks/use_conversations_jolt_events.ts +5 -1
  302. package/src/hooks/use_current_person.ts +37 -9
  303. package/src/hooks/use_jolt.ts +18 -23
  304. package/src/hooks/use_message_create.ts +2 -2
  305. package/src/hooks/use_suspense_api.ts +6 -0
  306. package/src/hooks/use_upload_client.ts +67 -0
  307. package/src/index.tsx +3 -1
  308. package/src/navigation/index.tsx +23 -2
  309. package/src/screens/conversation_details_screen.tsx +2 -2
  310. package/src/screens/conversation_filter_recipients/components/checkbox_row.tsx +101 -0
  311. package/src/screens/conversation_filter_recipients/components/header_row.tsx +99 -0
  312. package/src/screens/conversation_filter_recipients/components/navigation_header.tsx +68 -0
  313. package/src/screens/conversation_filter_recipients/context/conversation_filter_recipients_context.tsx +53 -0
  314. package/src/screens/conversation_filter_recipients/conversation_filter_recipients_screen.tsx +90 -49
  315. package/src/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.tsx +50 -0
  316. package/src/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.ts +90 -0
  317. package/src/screens/conversation_filter_recipients/types.tsx +47 -0
  318. package/src/screens/conversation_filters/components/conversation_filters.tsx +5 -2
  319. package/src/screens/conversation_filters/components/rows.tsx +6 -1
  320. package/src/screens/conversation_filters/group_filters.tsx +23 -14
  321. package/src/screens/conversation_filters/hooks/filters.ts +1 -1
  322. package/src/screens/conversation_filters/team_filters.tsx +23 -14
  323. package/src/screens/conversation_filters_screen.tsx +1 -0
  324. package/src/screens/conversation_new/components/groups_form.tsx +66 -72
  325. package/src/screens/conversation_new/components/team_form.tsx +1 -1
  326. package/src/screens/conversation_new/conversation_new_screen.tsx +11 -4
  327. package/src/screens/conversation_screen.tsx +123 -4
  328. package/src/screens/conversation_select_recipients/components/groups_without_chat_disclaimer_row.tsx +21 -0
  329. package/src/screens/conversation_select_recipients/components/recipient_link_row.tsx +91 -0
  330. package/src/screens/conversation_select_recipients/components/view_more_link_row.tsx +30 -0
  331. package/src/screens/conversation_select_recipients/conversation_select_group_recipients_screen.tsx +79 -0
  332. package/src/screens/conversation_select_recipients/conversation_select_recipients_screen.tsx +57 -65
  333. package/src/screens/conversation_select_recipients/types/screen_props.tsx +11 -0
  334. package/src/screens/conversations/components/list_header_component.tsx +20 -4
  335. package/src/screens/conversations/conversations_screen.tsx +37 -2
  336. package/src/screens/send_giphy_screen.tsx +30 -1
  337. package/src/types/resources/groups/groups_group_resource.ts +1 -1
  338. package/src/types/resources/groups/groups_member_resource_with_person.ts +13 -0
  339. package/src/types/resources/member.ts +0 -11
  340. package/src/types/resources/message.ts +2 -0
  341. package/src/types/resources/oauth_token.ts +4 -4
  342. package/src/utils/client/client.ts +13 -13
  343. package/src/utils/date.ts +11 -1
  344. package/src/utils/destructure_chat_group_graph_id.ts +25 -0
  345. package/src/utils/index.ts +1 -0
  346. package/src/utils/native_adapters/configuration.ts +15 -1
  347. package/src/utils/native_adapters/image_picker.ts +31 -0
  348. package/src/utils/native_adapters/index.ts +1 -0
  349. package/src/utils/session.ts +10 -4
  350. package/src/utils/upload_uri.ts +69 -0
  351. package/src/utils/uri.ts +30 -6
  352. package/src/vendor/tapestry/alias_tokens_color_map.ts +3 -0
  353. package/build/screens/conversation_new/components/member_error_card.d.ts +0 -5
  354. package/build/screens/conversation_new/components/member_error_card.d.ts.map +0 -1
  355. package/build/screens/conversation_new/components/member_error_card.js +0 -17
  356. package/build/screens/conversation_new/components/member_error_card.js.map +0 -1
  357. package/build/screens/conversation_new/utils/fake_member_data.d.ts +0 -3
  358. package/build/screens/conversation_new/utils/fake_member_data.d.ts.map +0 -1
  359. package/build/screens/conversation_new/utils/fake_member_data.js +0 -129
  360. package/build/screens/conversation_new/utils/fake_member_data.js.map +0 -1
  361. package/src/screens/conversation_new/components/member_error_card.tsx +0 -20
  362. package/src/screens/conversation_new/utils/fake_member_data.ts +0 -130
@@ -1,11 +1,13 @@
1
1
  import { AudioAdapter } from './audio';
2
2
  import { ClipboardAdapter } from './clipboard';
3
+ import { ImagePickerAdapter } from './image_picker';
3
4
  import { VideoAdapter } from './video';
4
5
  export class ChatAdapters {
5
6
  static configure(configurations) {
6
7
  Clipboard = configurations.clipboard;
7
8
  Audio = configurations.audio;
8
9
  Video = configurations.video;
10
+ ImagePicker = configurations.imagePicker;
9
11
  }
10
12
  }
11
13
  const methodMissing = () => {
@@ -30,5 +32,15 @@ let Video = new VideoAdapter({
30
32
  return null;
31
33
  }, { $$typeof: Symbol.for('react.forward_ref') }),
32
34
  });
33
- export { Clipboard, Audio, Video };
35
+ let ImagePicker = new ImagePickerAdapter({
36
+ openCameraAsync: async () => {
37
+ methodMissing();
38
+ return { canceled: true, assets: null };
39
+ },
40
+ openImageLibraryAsync: async () => {
41
+ methodMissing();
42
+ return { canceled: true, assets: null };
43
+ },
44
+ });
45
+ export { Clipboard, Audio, Video, ImagePicker };
34
46
  //# sourceMappingURL=configuration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/utils/native_adapters/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAQtC,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,SAAS,CAAC,cAAkC;QACjD,SAAS,GAAG,cAAc,CAAC,SAAS,CAAA;QACpC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAA;QAC5B,KAAK,GAAG,cAAc,CAAC,KAAK,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;AACnF,CAAC,CAAA;AAED,IAAI,SAAS,GAAqB,IAAI,gBAAgB,CAAC;IACrD,cAAc,EAAE,KAAK,IAAI,EAAE;QACzB,aAAa,EAAE,CAAA;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IACD,cAAc,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE,CAAC,aAAa,EAAE;CACrD,CAAC,CAAA;AAEF,IAAI,KAAK,GAAiB,IAAI,YAAY,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE;QACtB,aAAa,EAAE,CAAA;QACf,OAAO,EAAS,CAAA;IAClB,CAAC;CACF,CAAC,CAAA;AAEF,IAAI,KAAK,GAAiB,IAAI,YAAY,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,GAAG,EAAE;QACH,aAAa,EAAE,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC,EACD,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAC9C;CACF,CAAC,CAAA;AAEF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA","sourcesContent":["import { AudioAdapter } from './audio'\nimport { ClipboardAdapter } from './clipboard'\nimport { VideoAdapter } from './video'\n\ntype ChatConfigurations = {\n clipboard: ClipboardAdapter\n audio: AudioAdapter\n video: VideoAdapter\n}\n\nexport class ChatAdapters {\n static configure(configurations: ChatConfigurations) {\n Clipboard = configurations.clipboard\n Audio = configurations.audio\n Video = configurations.video\n }\n}\n\nconst methodMissing = () => {\n console.warn('ChatAdapters.configure() must be called before using any adapters')\n}\n\nlet Clipboard: ClipboardAdapter = new ClipboardAdapter({\n getStringAsync: async () => {\n methodMissing()\n return ''\n },\n setStringAsync: async (_: string) => methodMissing(),\n})\n\nlet Audio: AudioAdapter = new AudioAdapter({\n useAudio: (_: string) => {\n methodMissing()\n return {} as any\n },\n})\n\nlet Video: VideoAdapter = new VideoAdapter({\n Player: Object.assign(\n () => {\n methodMissing()\n return null\n },\n { $$typeof: Symbol.for('react.forward_ref') }\n ),\n})\n\nexport { Clipboard, Audio, Video }\n"]}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/utils/native_adapters/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAStC,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,SAAS,CAAC,cAAkC;QACjD,SAAS,GAAG,cAAc,CAAC,SAAS,CAAA;QACpC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAA;QAC5B,KAAK,GAAG,cAAc,CAAC,KAAK,CAAA;QAC5B,WAAW,GAAG,cAAc,CAAC,WAAW,CAAA;IAC1C,CAAC;CACF;AAED,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;AACnF,CAAC,CAAA;AAED,IAAI,SAAS,GAAqB,IAAI,gBAAgB,CAAC;IACrD,cAAc,EAAE,KAAK,IAAI,EAAE;QACzB,aAAa,EAAE,CAAA;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IACD,cAAc,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE,CAAC,aAAa,EAAE;CACrD,CAAC,CAAA;AAEF,IAAI,KAAK,GAAiB,IAAI,YAAY,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE;QACtB,aAAa,EAAE,CAAA;QACf,OAAO,EAAS,CAAA;IAClB,CAAC;CACF,CAAC,CAAA;AAEF,IAAI,KAAK,GAAiB,IAAI,YAAY,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,GAAG,EAAE;QACH,aAAa,EAAE,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC,EACD,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAC9C;CACF,CAAC,CAAA;AAEF,IAAI,WAAW,GAAuB,IAAI,kBAAkB,CAAC;IAC3D,eAAe,EAAE,KAAK,IAAI,EAAE;QAC1B,aAAa,EAAE,CAAA;QACf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACzC,CAAC;IACD,qBAAqB,EAAE,KAAK,IAAI,EAAE;QAChC,aAAa,EAAE,CAAA;QACf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACzC,CAAC;CACF,CAAC,CAAA;AAEF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA","sourcesContent":["import { AudioAdapter } from './audio'\nimport { ClipboardAdapter } from './clipboard'\nimport { ImagePickerAdapter } from './image_picker'\nimport { VideoAdapter } from './video'\n\ntype ChatConfigurations = {\n clipboard: ClipboardAdapter\n audio: AudioAdapter\n video: VideoAdapter\n imagePicker: ImagePickerAdapter\n}\n\nexport class ChatAdapters {\n static configure(configurations: ChatConfigurations) {\n Clipboard = configurations.clipboard\n Audio = configurations.audio\n Video = configurations.video\n ImagePicker = configurations.imagePicker\n }\n}\n\nconst methodMissing = () => {\n console.warn('ChatAdapters.configure() must be called before using any adapters')\n}\n\nlet Clipboard: ClipboardAdapter = new ClipboardAdapter({\n getStringAsync: async () => {\n methodMissing()\n return ''\n },\n setStringAsync: async (_: string) => methodMissing(),\n})\n\nlet Audio: AudioAdapter = new AudioAdapter({\n useAudio: (_: string) => {\n methodMissing()\n return {} as any\n },\n})\n\nlet Video: VideoAdapter = new VideoAdapter({\n Player: Object.assign(\n () => {\n methodMissing()\n return null\n },\n { $$typeof: Symbol.for('react.forward_ref') }\n ),\n})\n\nlet ImagePicker: ImagePickerAdapter = new ImagePickerAdapter({\n openCameraAsync: async () => {\n methodMissing()\n return { canceled: true, assets: null }\n },\n openImageLibraryAsync: async () => {\n methodMissing()\n return { canceled: true, assets: null }\n },\n})\n\nexport { Clipboard, Audio, Video, ImagePicker }\n"]}
@@ -0,0 +1,25 @@
1
+ export type ImagePickerAsset = {
2
+ uri: string;
3
+ assetId?: string | null;
4
+ width: number;
5
+ height: number;
6
+ mimeType?: string;
7
+ fileName?: string | null;
8
+ fileSize?: number;
9
+ };
10
+ type ImagePickerSuccessResult = {
11
+ canceled: false;
12
+ assets: ImagePickerAsset[];
13
+ };
14
+ type ImagePickerCanceledResult = {
15
+ canceled: true;
16
+ assets: null;
17
+ };
18
+ export type ImagePickerResult = ImagePickerSuccessResult | ImagePickerCanceledResult;
19
+ export declare class ImagePickerAdapter {
20
+ openCameraAsync: () => Promise<ImagePickerResult>;
21
+ openImageLibraryAsync: () => Promise<ImagePickerResult>;
22
+ constructor(methods: ImagePickerAdapter);
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=image_picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image_picker.d.ts","sourceRoot":"","sources":["../../../src/utils/native_adapters/image_picker.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,KAAK,CAAA;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAC3B,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,IAAI,CAAA;IACd,MAAM,EAAE,IAAI,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,GAAG,yBAAyB,CAAA;AAEpF,qBAAa,kBAAkB;IAC7B,eAAe,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACjD,qBAAqB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;gBAE3C,OAAO,EAAE,kBAAkB;CAIxC"}
@@ -0,0 +1,9 @@
1
+ export class ImagePickerAdapter {
2
+ openCameraAsync;
3
+ openImageLibraryAsync;
4
+ constructor(methods) {
5
+ this.openCameraAsync = methods.openCameraAsync;
6
+ this.openImageLibraryAsync = methods.openImageLibraryAsync;
7
+ }
8
+ }
9
+ //# sourceMappingURL=image_picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image_picker.js","sourceRoot":"","sources":["../../../src/utils/native_adapters/image_picker.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,kBAAkB;IAC7B,eAAe,CAAkC;IACjD,qBAAqB,CAAkC;IAEvD,YAAY,OAA2B;QACrC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;IAC5D,CAAC;CACF","sourcesContent":["export type ImagePickerAsset = {\n uri: string\n assetId?: string | null\n width: number\n height: number\n mimeType?: string\n fileName?: string | null\n fileSize?: number\n}\n\ntype ImagePickerSuccessResult = {\n canceled: false\n assets: ImagePickerAsset[]\n}\n\ntype ImagePickerCanceledResult = {\n canceled: true\n assets: null\n}\n\nexport type ImagePickerResult = ImagePickerSuccessResult | ImagePickerCanceledResult\n\nexport class ImagePickerAdapter {\n openCameraAsync: () => Promise<ImagePickerResult>\n openImageLibraryAsync: () => Promise<ImagePickerResult>\n\n constructor(methods: ImagePickerAdapter) {\n this.openCameraAsync = methods.openCameraAsync\n this.openImageLibraryAsync = methods.openImageLibraryAsync\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  export * from './clipboard';
2
2
  export * from './configuration';
3
3
  export * from './audio';
4
+ export * from './image_picker';
4
5
  export * from './video';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/native_adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/native_adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA"}
@@ -1,5 +1,6 @@
1
1
  export * from './clipboard';
2
2
  export * from './configuration';
3
3
  export * from './audio';
4
+ export * from './image_picker';
4
5
  export * from './video';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/native_adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA","sourcesContent":["export * from './clipboard'\nexport * from './configuration'\nexport * from './audio'\nexport * from './video'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/native_adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA","sourcesContent":["export * from './clipboard'\nexport * from './configuration'\nexport * from './audio'\nexport * from './image_picker'\nexport * from './video'\n"]}
@@ -1,19 +1,23 @@
1
1
  import { OAuthToken } from '../types';
2
2
  export type ENV = 'production' | 'staging' | 'development';
3
+ export type OauthType = 'OAuth' | 'ChurchCenterOauth';
3
4
  export type PartialToken = Pick<OAuthToken, 'access_token'> & Partial<OAuthToken>;
4
- export type SessionProps<T = PartialToken> = {
5
+ export type SessionProps<T extends PartialToken> = {
5
6
  env?: ENV;
6
7
  token?: T;
8
+ type?: OauthType;
7
9
  };
8
10
  /**
9
11
  * Session class to track the environment and token
10
12
  * Not intended to make network requests or handle authentication
11
13
  */
12
- export declare class Session<T = PartialToken> {
14
+ export declare class Session<T extends PartialToken = PartialToken> {
13
15
  env: ENV;
14
16
  token: T | undefined;
17
+ type: OauthType;
15
18
  constructor(props?: SessionProps<T>);
16
19
  get isAuthenticated(): boolean;
20
+ get isChurchCenterToken(): boolean;
17
21
  toString(): string;
18
22
  static hydrate<T extends PartialToken>(sessionString: string): Session<T>;
19
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,MAAM,MAAM,GAAG,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,CAAA;AAE1D,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACjF,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,YAAY,IAAI;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,CAAA;CAAE,CAAA;AAErE;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,GAAG,YAAY;IACnC,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;gBAER,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAMnC,IAAI,eAAe,YAElB;IAED,QAAQ;IAIR,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,aAAa,EAAE,MAAM;CAQ7D"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,MAAM,MAAM,GAAG,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,CAAA;AAC1D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,mBAAmB,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACjF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,YAAY,IAAI;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAE7F;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IACxD,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;gBAEH,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAOnC,IAAI,eAAe,YAElB;IAED,IAAI,mBAAmB,YAEtB;IAED,QAAQ;IAIR,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,aAAa,EAAE,MAAM;CAQ7D"}
@@ -5,14 +5,19 @@
5
5
  export class Session {
6
6
  env;
7
7
  token;
8
+ type;
8
9
  constructor(props) {
9
- const { env = 'production', token } = props || {};
10
+ const { env = 'production', token, type } = props || {};
10
11
  this.env = env;
11
12
  this.token = token;
13
+ this.type = type || 'OAuth';
12
14
  }
13
15
  get isAuthenticated() {
14
16
  return Boolean(this.token);
15
17
  }
18
+ get isChurchCenterToken() {
19
+ return this.type === 'ChurchCenterOauth';
20
+ }
16
21
  toString() {
17
22
  return JSON.stringify({ env: this.env, token: this.token });
18
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,OAAO,OAAO;IAClB,GAAG,CAAK;IACR,KAAK,CAAe;IAEpB,YAAY,KAAuB;QACjC,MAAM,EAAE,GAAG,GAAG,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,CAAA;QACjD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,OAAO,CAAyB,aAAqB;QAC1D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACvC,OAAO,IAAI,OAAO,CAAI,KAAK,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,OAAO,EAAK,CAAA;QACzB,CAAC;IACH,CAAC;CACF","sourcesContent":["import { OAuthToken } from '../types'\n\nexport type ENV = 'production' | 'staging' | 'development'\n\nexport type PartialToken = Pick<OAuthToken, 'access_token'> & Partial<OAuthToken>\nexport type SessionProps<T = PartialToken> = { env?: ENV; token?: T }\n\n/**\n * Session class to track the environment and token\n * Not intended to make network requests or handle authentication\n */\nexport class Session<T = PartialToken> {\n env: ENV\n token: T | undefined\n\n constructor(props?: SessionProps<T>) {\n const { env = 'production', token } = props || {}\n this.env = env\n this.token = token\n }\n\n get isAuthenticated() {\n return Boolean(this.token)\n }\n\n toString() {\n return JSON.stringify({ env: this.env, token: this.token })\n }\n\n static hydrate<T extends PartialToken>(sessionString: string) {\n try {\n const props = JSON.parse(sessionString)\n return new Session<T>(props)\n } catch (error) {\n return new Session<T>()\n }\n }\n}\n"]}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,OAAO,OAAO;IAClB,GAAG,CAAK;IACR,KAAK,CAAe;IACpB,IAAI,CAAW;IAEf,YAAY,KAAuB;QACjC,MAAM,EAAE,GAAG,GAAG,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,CAAA;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,CAAA;IAC7B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAA;IAC1C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,OAAO,CAAyB,aAAqB;QAC1D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACvC,OAAO,IAAI,OAAO,CAAI,KAAK,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,OAAO,EAAK,CAAA;QACzB,CAAC;IACH,CAAC;CACF","sourcesContent":["import { OAuthToken } from '../types'\n\nexport type ENV = 'production' | 'staging' | 'development'\nexport type OauthType = 'OAuth' | 'ChurchCenterOauth'\nexport type PartialToken = Pick<OAuthToken, 'access_token'> & Partial<OAuthToken>\nexport type SessionProps<T extends PartialToken> = { env?: ENV; token?: T; type?: OauthType }\n\n/**\n * Session class to track the environment and token\n * Not intended to make network requests or handle authentication\n */\nexport class Session<T extends PartialToken = PartialToken> {\n env: ENV\n token: T | undefined\n type: OauthType\n\n constructor(props?: SessionProps<T>) {\n const { env = 'production', token, type } = props || {}\n this.env = env\n this.token = token\n this.type = type || 'OAuth'\n }\n\n get isAuthenticated() {\n return Boolean(this.token)\n }\n\n get isChurchCenterToken() {\n return this.type === 'ChurchCenterOauth'\n }\n\n toString() {\n return JSON.stringify({ env: this.env, token: this.token })\n }\n\n static hydrate<T extends PartialToken>(sessionString: string) {\n try {\n const props = JSON.parse(sessionString)\n return new Session<T>(props)\n } catch (error) {\n return new Session<T>()\n }\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { Session } from './session';
2
+ /**
3
+ * This is for accessing https://github.com/planningcenter/upload
4
+ */
5
+ export declare class UploadUri {
6
+ session: Session;
7
+ app?: string;
8
+ constructor({ session }: {
9
+ session: Session;
10
+ });
11
+ get schema(): "http" | "https";
12
+ get host(): string;
13
+ get subdomain(): "upload-staging" | "upload";
14
+ get domain(): 'pco' | 'planningcenteronline';
15
+ get tld(): "test" | "com";
16
+ get env(): import("./session").ENV;
17
+ get baseUrl(): string;
18
+ get headers(): {
19
+ 'User-Agent': string;
20
+ Authorization: string;
21
+ };
22
+ }
23
+ //# sourceMappingURL=upload_uri.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload_uri.d.ts","sourceRoot":"","sources":["../../src/utils/upload_uri.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;gBAEA,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;IAI7C,IAAI,MAAM,qBAMT;IAED,IAAI,IAAI,WAEP;IAED,IAAI,SAAS,gCAOZ;IAED,IAAI,MAAM,IAAI,KAAK,GAAG,sBAAsB,CAE3C;IAED,IAAI,GAAG,mBAON;IAED,IAAI,GAAG,4BAEN;IAED,IAAI,OAAO,WAEV;IAED,IAAI,OAAO;;;MAKV;CACF"}
@@ -0,0 +1,60 @@
1
+ import DeviceInfo from 'react-native-device-info';
2
+ const brand = DeviceInfo.getBrand();
3
+ const model = DeviceInfo.getModel();
4
+ const systemName = DeviceInfo.getSystemName();
5
+ const systemVersion = DeviceInfo.getSystemVersion();
6
+ const readableVersion = DeviceInfo.getReadableVersion();
7
+ const appName = DeviceInfo.getApplicationName();
8
+ /**
9
+ * This is for accessing https://github.com/planningcenter/upload
10
+ */
11
+ export class UploadUri {
12
+ session;
13
+ app;
14
+ constructor({ session }) {
15
+ this.session = session;
16
+ }
17
+ get schema() {
18
+ if (this.env === 'development') {
19
+ return 'http';
20
+ }
21
+ else {
22
+ return 'https';
23
+ }
24
+ }
25
+ get host() {
26
+ return `${this.subdomain}.${this.domain}.${this.tld}`;
27
+ }
28
+ get subdomain() {
29
+ switch (this.env) {
30
+ case 'staging':
31
+ return 'upload-staging';
32
+ default:
33
+ return 'upload';
34
+ }
35
+ }
36
+ get domain() {
37
+ return this.env === 'development' ? 'pco' : 'planningcenteronline';
38
+ }
39
+ get tld() {
40
+ switch (this.env) {
41
+ case 'development':
42
+ return 'test';
43
+ default:
44
+ return 'com';
45
+ }
46
+ }
47
+ get env() {
48
+ return this.session?.env || 'production';
49
+ }
50
+ get baseUrl() {
51
+ return `${this.schema}://${this.host}`;
52
+ }
53
+ get headers() {
54
+ return {
55
+ 'User-Agent': `${appName}/${readableVersion} (${brand}, ${model}, ${systemName}, ${systemVersion})`,
56
+ Authorization: `Bearer ${this.session.token?.access_token}`,
57
+ };
58
+ }
59
+ }
60
+ //# sourceMappingURL=upload_uri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload_uri.js","sourceRoot":"","sources":["../../src/utils/upload_uri.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAEjD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;AACnC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;AACnC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAA;AAC7C,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAA;AACnD,MAAM,eAAe,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAA;AACvD,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAA;AAE/C;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,OAAO,CAAS;IAChB,GAAG,CAAS;IAEZ,YAAY,EAAE,OAAO,EAAwB;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,IAAI,MAAM;QACR,IAAI,IAAI,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IACvD,CAAC;IAED,IAAI,SAAS;QACX,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO,gBAAgB,CAAA;YACzB;gBACE,OAAO,QAAQ,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAA;IACpE,CAAC;IAED,IAAI,GAAG;QACL,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,KAAK,aAAa;gBAChB,OAAO,MAAM,CAAA;YACf;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,YAAY,CAAA;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACxC,CAAC;IAED,IAAI,OAAO;QACT,OAAO;YACL,YAAY,EAAE,GAAG,OAAO,IAAI,eAAe,KAAK,KAAK,KAAK,KAAK,KAAK,UAAU,KAAK,aAAa,GAAG;YACnG,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE;SAC5D,CAAA;IACH,CAAC;CACF","sourcesContent":["import DeviceInfo from 'react-native-device-info'\nimport { Session } from './session'\nconst brand = DeviceInfo.getBrand()\nconst model = DeviceInfo.getModel()\nconst systemName = DeviceInfo.getSystemName()\nconst systemVersion = DeviceInfo.getSystemVersion()\nconst readableVersion = DeviceInfo.getReadableVersion()\nconst appName = DeviceInfo.getApplicationName()\n\n/**\n * This is for accessing https://github.com/planningcenter/upload\n */\nexport class UploadUri {\n session: Session\n app?: string\n\n constructor({ session }: { session: Session }) {\n this.session = session\n }\n\n get schema() {\n if (this.env === 'development') {\n return 'http'\n } else {\n return 'https'\n }\n }\n\n get host() {\n return `${this.subdomain}.${this.domain}.${this.tld}`\n }\n\n get subdomain() {\n switch (this.env) {\n case 'staging':\n return 'upload-staging'\n default:\n return 'upload'\n }\n }\n\n get domain(): 'pco' | 'planningcenteronline' {\n return this.env === 'development' ? 'pco' : 'planningcenteronline'\n }\n\n get tld() {\n switch (this.env) {\n case 'development':\n return 'test'\n default:\n return 'com'\n }\n }\n\n get env() {\n return this.session?.env || 'production'\n }\n\n get baseUrl() {\n return `${this.schema}://${this.host}`\n }\n\n get headers() {\n return {\n 'User-Agent': `${appName}/${readableVersion} (${brand}, ${model}, ${systemName}, ${systemVersion})`,\n Authorization: `Bearer ${this.session.token?.access_token}`,\n }\n }\n}\n"]}
@@ -1,13 +1,20 @@
1
1
  import { Session } from './session';
2
+ type Graph = 'churchcenter' | 'planningcenter';
2
3
  export declare class Uri {
3
4
  session: Session;
5
+ graph: Graph;
4
6
  app?: string;
5
- constructor({ session, app }: {
7
+ constructor({ session, app, graph }: {
6
8
  session: Session;
7
9
  app?: string;
10
+ graph?: Graph;
8
11
  });
9
12
  get schema(): "http" | "https";
10
- get host(): "api.planningcenteronline.com" | "api-staging.planningcenteronline.com" | "api.pco.test";
13
+ get host(): string;
14
+ get subdomain(): "api.staging" | "api-staging" | "api";
15
+ get domain(): 'pco' | 'planningcenteronline' | 'churchcenter';
16
+ get tld(): "test" | "com";
17
+ get isChurchCenter(): boolean;
11
18
  get env(): import("./session").ENV;
12
19
  get baseUrl(): string;
13
20
  get directory(): string;
@@ -18,4 +25,5 @@ export declare class Uri {
18
25
  appUrl: (path: string) => string;
19
26
  api: (path: string) => string;
20
27
  }
28
+ export {};
21
29
  //# sourceMappingURL=uri.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../../src/utils/uri.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,qBAAa,GAAG;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;gBAEA,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;IAKhE,IAAI,MAAM,qBAMT;IAED,IAAI,IAAI,6FAWP;IAED,IAAI,GAAG,4BAEN;IAED,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,OAAO;;;MAKV;IAED,MAAM,SAAU,MAAM,YAIrB;IAED,GAAG,SAAU,MAAM,YAIlB;CACF"}
1
+ {"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../../src/utils/uri.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,KAAK,KAAK,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAC9C,qBAAa,GAAG;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,CAAmB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;gBAEA,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAMtF,IAAI,MAAM,qBAMT;IAED,IAAI,IAAI,WAEP;IAED,IAAI,SAAS,0CAOZ;IAED,IAAI,MAAM,IAAI,KAAK,GAAG,sBAAsB,GAAG,cAAc,CAM5D;IAED,IAAI,GAAG,mBAON;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,GAAG,4BAEN;IAED,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,OAAO;;;MAKV;IAED,MAAM,SAAU,MAAM,YAIrB;IAED,GAAG,SAAU,MAAM,YAIlB;CACF"}
@@ -7,10 +7,12 @@ const readableVersion = DeviceInfo.getReadableVersion();
7
7
  const appName = DeviceInfo.getApplicationName();
8
8
  export class Uri {
9
9
  session;
10
+ graph = 'planningcenter';
10
11
  app;
11
- constructor({ session, app }) {
12
+ constructor({ session, app, graph }) {
12
13
  this.session = session;
13
14
  this.app = app;
15
+ this.graph = graph || 'planningcenter';
14
16
  }
15
17
  get schema() {
16
18
  if (this.env === 'development') {
@@ -21,17 +23,33 @@ export class Uri {
21
23
  }
22
24
  }
23
25
  get host() {
26
+ return `${this.subdomain}.${this.domain}.${this.tld}`;
27
+ }
28
+ get subdomain() {
24
29
  switch (this.env) {
25
- case 'production':
26
- return 'api.planningcenteronline.com';
27
30
  case 'staging':
28
- return 'api-staging.planningcenteronline.com';
31
+ return this.isChurchCenter ? 'api.staging' : 'api-staging';
32
+ default:
33
+ return 'api';
34
+ }
35
+ }
36
+ get domain() {
37
+ if (this.isChurchCenter) {
38
+ return 'churchcenter';
39
+ }
40
+ return this.env === 'development' ? 'pco' : 'planningcenteronline';
41
+ }
42
+ get tld() {
43
+ switch (this.env) {
29
44
  case 'development':
30
- return 'api.pco.test';
45
+ return 'test';
31
46
  default:
32
- return 'api.planningcenteronline.com';
47
+ return 'com';
33
48
  }
34
49
  }
50
+ get isChurchCenter() {
51
+ return this.session.isChurchCenterToken;
52
+ }
35
53
  get env() {
36
54
  return this.session?.env || 'production';
37
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/utils/uri.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAEjD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;AACnC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;AACnC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAA;AAC7C,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAA;AACnD,MAAM,eAAe,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAA;AACvD,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAA;AAE/C,MAAM,OAAO,GAAG;IACd,OAAO,CAAS;IAChB,GAAG,CAAS;IAEZ,YAAY,EAAE,OAAO,EAAE,GAAG,EAAsC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,IAAI,MAAM;QACR,IAAI,IAAI,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,KAAK,YAAY;gBACf,OAAO,8BAA8B,CAAA;YACvC,KAAK,SAAS;gBACZ,OAAO,sCAAsC,CAAA;YAC/C,KAAK,aAAa;gBAChB,OAAO,cAAc,CAAA;YACvB;gBACE,OAAO,8BAA8B,CAAA;QACzC,CAAC;IACH,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,YAAY,CAAA;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACxC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO;YACL,YAAY,EAAE,GAAG,OAAO,IAAI,eAAe,KAAK,KAAK,KAAK,KAAK,KAAK,UAAU,KAAK,aAAa,GAAG;YACnG,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE;SAC5D,CAAA;IACH,CAAC;IAED,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAErD,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,GAAG,EAAE,CAAA;IACzD,CAAC,CAAA;IAED,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAErD,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,GAAG,EAAE,CAAA;IACxC,CAAC,CAAA;CACF","sourcesContent":["import DeviceInfo from 'react-native-device-info'\nimport { Session } from './session'\nconst brand = DeviceInfo.getBrand()\nconst model = DeviceInfo.getModel()\nconst systemName = DeviceInfo.getSystemName()\nconst systemVersion = DeviceInfo.getSystemVersion()\nconst readableVersion = DeviceInfo.getReadableVersion()\nconst appName = DeviceInfo.getApplicationName()\n\nexport class Uri {\n session: Session\n app?: string\n\n constructor({ session, app }: { session: Session; app?: string }) {\n this.session = session\n this.app = app\n }\n\n get schema() {\n if (this.env === 'development') {\n return 'http'\n } else {\n return 'https'\n }\n }\n\n get host() {\n switch (this.env) {\n case 'production':\n return 'api.planningcenteronline.com'\n case 'staging':\n return 'api-staging.planningcenteronline.com'\n case 'development':\n return 'api.pco.test'\n default:\n return 'api.planningcenteronline.com'\n }\n }\n\n get env() {\n return this.session?.env || 'production'\n }\n\n get baseUrl() {\n return `${this.schema}://${this.host}`\n }\n\n get directory() {\n return this.app ? `/${this.app}/v2` : ''\n }\n\n get headers() {\n return {\n 'User-Agent': `${appName}/${readableVersion} (${brand}, ${model}, ${systemName}, ${systemVersion})`,\n Authorization: `Bearer ${this.session.token?.access_token}`,\n }\n }\n\n appUrl = (path: string) => {\n if (path.startsWith(`${this.schema}://`)) return path\n\n return `${this.baseUrl}${this.directory}${path || '/'}`\n }\n\n api = (path: string) => {\n if (path.startsWith(`${this.schema}://`)) return path\n\n return `${this.baseUrl}${path || '/'}`\n }\n}\n"]}
1
+ {"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/utils/uri.ts"],"names":[],"mappings":"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","sourcesContent":["import DeviceInfo from 'react-native-device-info'\nimport { Session } from './session'\nconst brand = DeviceInfo.getBrand()\nconst model = DeviceInfo.getModel()\nconst systemName = DeviceInfo.getSystemName()\nconst systemVersion = DeviceInfo.getSystemVersion()\nconst readableVersion = DeviceInfo.getReadableVersion()\nconst appName = DeviceInfo.getApplicationName()\n\ntype Graph = 'churchcenter' | 'planningcenter'\nexport class Uri {\n session: Session\n graph: Graph = 'planningcenter'\n app?: string\n\n constructor({ session, app, graph }: { session: Session; app?: string; graph?: Graph }) {\n this.session = session\n this.app = app\n this.graph = graph || 'planningcenter'\n }\n\n get schema() {\n if (this.env === 'development') {\n return 'http'\n } else {\n return 'https'\n }\n }\n\n get host() {\n return `${this.subdomain}.${this.domain}.${this.tld}`\n }\n\n get subdomain() {\n switch (this.env) {\n case 'staging':\n return this.isChurchCenter ? 'api.staging' : 'api-staging'\n default:\n return 'api'\n }\n }\n\n get domain(): 'pco' | 'planningcenteronline' | 'churchcenter' {\n if (this.isChurchCenter) {\n return 'churchcenter'\n }\n\n return this.env === 'development' ? 'pco' : 'planningcenteronline'\n }\n\n get tld() {\n switch (this.env) {\n case 'development':\n return 'test'\n default:\n return 'com'\n }\n }\n\n get isChurchCenter() {\n return this.session.isChurchCenterToken\n }\n\n get env() {\n return this.session?.env || 'production'\n }\n\n get baseUrl() {\n return `${this.schema}://${this.host}`\n }\n\n get directory() {\n return this.app ? `/${this.app}/v2` : ''\n }\n\n get headers() {\n return {\n 'User-Agent': `${appName}/${readableVersion} (${brand}, ${model}, ${systemName}, ${systemVersion})`,\n Authorization: `Bearer ${this.session.token?.access_token}`,\n }\n }\n\n appUrl = (path: string) => {\n if (path.startsWith(`${this.schema}://`)) return path\n\n return `${this.baseUrl}${this.directory}${path || '/'}`\n }\n\n api = (path: string) => {\n if (path.startsWith(`${this.schema}://`)) return path\n\n return `${this.baseUrl}${path || '/'}`\n }\n}\n"]}
@@ -27,6 +27,7 @@ export declare const aliasTokensColorMap: {
27
27
  readonly surfaceColorCanvas: string;
28
28
  readonly surfaceColor100: string;
29
29
  readonly surfaceColor090: string;
30
+ readonly surfaceColor080: string;
30
31
  readonly needsDesignPass: string;
31
32
  readonly fillColorNeutral000: string;
32
33
  readonly fillColorNeutral010: string;
@@ -68,6 +69,7 @@ export declare const aliasTokensColorMap: {
68
69
  readonly surfaceColorCanvas: string;
69
70
  readonly surfaceColor100: string;
70
71
  readonly surfaceColor090: string;
72
+ readonly surfaceColor080: string;
71
73
  readonly needsDesignPass: string;
72
74
  readonly fillColorNeutral000: string;
73
75
  readonly fillColorNeutral010: string;
@@ -1 +1 @@
1
- {"version":3,"file":"alias_tokens_color_map.d.ts","sourceRoot":"","sources":["../../../src/vendor/tapestry/alias_tokens_color_map.ts"],"names":[],"mappings":"AAgJA,eAAO,MAAM,mBAAmB;;uBA5FxB,MAAM;yCACY,MAAM;yCACN,MAAM;2CACJ,MAAM;6CACJ,MAAM;wCACX,MAAM;0CACJ,MAAM;0CACN,MAAM;4CACJ,MAAM;sCACZ,MAAM;2CACD,MAAM;2CACN,MAAM;2CACN,MAAM;0CACP,MAAM;4CACJ,MAAM;2CACP,MAAM;8CACH,MAAM;2CACT,MAAM;oDACG,MAAM;8CACZ,MAAM;6CACP,MAAM;sDACG,MAAM;uCACrB,MAAM;mCACV,MAAM;qCACJ,MAAM;kCACT,MAAM;kCACN,MAAM;kCACN,MAAM;sCAvEF,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;0CACF,MAAM;sCACV,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;8CACE,MAAM;;;uBAkC7B,MAAM;yCACY,MAAM;yCACN,MAAM;2CACJ,MAAM;6CACJ,MAAM;wCACX,MAAM;0CACJ,MAAM;0CACN,MAAM;4CACJ,MAAM;sCACZ,MAAM;2CACD,MAAM;2CACN,MAAM;2CACN,MAAM;0CACP,MAAM;4CACJ,MAAM;2CACP,MAAM;8CACH,MAAM;2CACT,MAAM;oDACG,MAAM;8CACZ,MAAM;6CACP,MAAM;sDACG,MAAM;uCACrB,MAAM;mCACV,MAAM;qCACJ,MAAM;kCACT,MAAM;kCACN,MAAM;kCACN,MAAM;sCAvEF,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;0CACF,MAAM;sCACV,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;8CACE,MAAM;;CAiI3B,CAAA"}
1
+ {"version":3,"file":"alias_tokens_color_map.d.ts","sourceRoot":"","sources":["../../../src/vendor/tapestry/alias_tokens_color_map.ts"],"names":[],"mappings":"AAmJA,eAAO,MAAM,mBAAmB;;uBA/FxB,MAAM;yCACY,MAAM;yCACN,MAAM;2CACJ,MAAM;6CACJ,MAAM;wCACX,MAAM;0CACJ,MAAM;0CACN,MAAM;4CACJ,MAAM;sCACZ,MAAM;2CACD,MAAM;2CACN,MAAM;2CACN,MAAM;0CACP,MAAM;4CACJ,MAAM;2CACP,MAAM;8CACH,MAAM;2CACT,MAAM;oDACG,MAAM;8CACZ,MAAM;6CACP,MAAM;sDACG,MAAM;uCACrB,MAAM;mCACV,MAAM;qCACJ,MAAM;kCACT,MAAM;kCACN,MAAM;kCACN,MAAM;kCACN,MAAM;sCAxEF,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;0CACF,MAAM;sCACV,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;8CACE,MAAM;;;uBAkC7B,MAAM;yCACY,MAAM;yCACN,MAAM;2CACJ,MAAM;6CACJ,MAAM;wCACX,MAAM;0CACJ,MAAM;0CACN,MAAM;4CACJ,MAAM;sCACZ,MAAM;2CACD,MAAM;2CACN,MAAM;2CACN,MAAM;0CACP,MAAM;4CACJ,MAAM;2CACP,MAAM;8CACH,MAAM;2CACT,MAAM;oDACG,MAAM;8CACZ,MAAM;6CACP,MAAM;sDACG,MAAM;uCACrB,MAAM;mCACV,MAAM;qCACJ,MAAM;kCACT,MAAM;kCACN,MAAM;kCACN,MAAM;kCACN,MAAM;sCAxEF,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;0CACF,MAAM;sCACV,MAAM;sCACN,MAAM;sCACN,MAAM;sCACN,MAAM;8CACE,MAAM;;CAoI3B,CAAA"}
@@ -55,6 +55,7 @@ const semanticAliasesLight = {
55
55
  surfaceColorCanvas: neutralsLight.fillColorNeutral090,
56
56
  surfaceColor100: neutralsLight.fillColorNeutral100Inverted,
57
57
  surfaceColor090: neutralsLight.fillColorNeutral090,
58
+ surfaceColor080: neutralsLight.fillColorNeutral080,
58
59
  needsDesignPass: 'hotpink',
59
60
  };
60
61
  const semanticAliasesDark = {
@@ -85,6 +86,7 @@ const semanticAliasesDark = {
85
86
  surfaceColorCanvas: neutralsDark.fillColorNeutral090,
86
87
  surfaceColor100: neutralsDark.fillColorNeutral100Inverted,
87
88
  surfaceColor090: neutralsDark.fillColorNeutral090,
89
+ surfaceColor080: neutralsDark.fillColorNeutral080,
88
90
  needsDesignPass: 'pink',
89
91
  };
90
92
  export const aliasTokensColorMap = {
@@ -1 +1 @@
1
- {"version":3,"file":"alias_tokens_color_map.js","sourceRoot":"","sources":["../../../src/vendor/tapestry/alias_tokens_color_map.ts"],"names":[],"mappings":"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","sourcesContent":["import { tokens } from './tokens'\n\n// Copied from `@planningcenter/tapestry` package.\n// Defining these tokens locally is a temporary solution until the package supports mobile.\n// Tokens Reference: https://planningcenter.github.io/tapestry/?path=/docs/foundations-design-tokens--docs\n\ninterface NeutralColors {\n name: string\n fillColorNeutral000: string\n fillColorNeutral010: string\n fillColorNeutral020: string\n fillColorNeutral030: string\n fillColorNeutral040: string\n fillColorNeutral050Base: string\n fillColorNeutral060: string\n fillColorNeutral070: string\n fillColorNeutral080: string\n fillColorNeutral090: string\n fillColorNeutral100Inverted: string\n}\n\nconst neutralsLight: NeutralColors = {\n name: 'light',\n fillColorNeutral000: tokens.colorNeutral12,\n fillColorNeutral010: tokens.colorNeutral24,\n fillColorNeutral020: tokens.colorNeutral45,\n fillColorNeutral030: tokens.colorNeutral58,\n fillColorNeutral040: tokens.colorNeutral81,\n fillColorNeutral050Base: tokens.colorNeutral88,\n fillColorNeutral060: tokens.colorNeutral93,\n fillColorNeutral070: tokens.colorNeutral95,\n fillColorNeutral080: tokens.colorNeutral97,\n fillColorNeutral090: tokens.colorNeutral98,\n fillColorNeutral100Inverted: tokens.colorNeutral100White,\n} as const\n\nconst neutralsDark: NeutralColors = {\n name: 'dark',\n fillColorNeutral000: tokens.colorNeutral98,\n fillColorNeutral010: tokens.colorNeutral88,\n fillColorNeutral020: tokens.colorNeutral68,\n fillColorNeutral030: tokens.colorNeutral50,\n fillColorNeutral040: tokens.colorNeutral32,\n fillColorNeutral050Base: tokens.colorNeutral24,\n fillColorNeutral060: tokens.colorNeutral19,\n fillColorNeutral070: tokens.colorNeutral17,\n fillColorNeutral080: tokens.colorNeutral15,\n fillColorNeutral090: tokens.colorNeutral12,\n fillColorNeutral100Inverted: tokens.colorNeutral7,\n} as const\n\ninterface SemanticAliasesColors {\n name: string\n borderColorDefaultBase: string\n borderColorDefaultDark: string\n borderColorDefaultDarker: string\n borderColorDefaultDisabled: string\n borderColorDefaultDim: string\n borderColorDefaultWhite: string\n iconColorDefaultPrimary: string\n iconColorDefaultSecondary: string\n iconColorDefaultDim: string\n iconColorDefaultDisabled: string\n iconColorDefaultInverted: string\n textColorDefaultHeadline: string\n textColorDefaultPrimary: string\n textColorDefaultSecondary: string\n textColorDefaultDisabled: string\n textColorDefaultPlaceholder: string\n textColorDefaultInverted: string\n fillColorInteractionOnlineDefault: string\n fillColorInteractionDefault: string\n fillColorStatusErrorMedium: string\n fillColorButtonNeutralSolidDisabled: string\n androidRippleNeutral: string\n surfaceColorCard: string\n surfaceColorCanvas: string\n surfaceColor100: string\n surfaceColor090: string\n needsDesignPass: string\n}\n\nconst semanticAliasesLight: SemanticAliasesColors = {\n name: 'light',\n borderColorDefaultBase: neutralsLight.fillColorNeutral050Base,\n borderColorDefaultDark: neutralsLight.fillColorNeutral040,\n borderColorDefaultDarker: neutralsLight.fillColorNeutral020,\n borderColorDefaultDisabled: neutralsLight.fillColorNeutral050Base,\n borderColorDefaultDim: neutralsLight.fillColorNeutral070,\n borderColorDefaultWhite: neutralsLight.fillColorNeutral100Inverted,\n iconColorDefaultPrimary: neutralsLight.fillColorNeutral010,\n iconColorDefaultSecondary: neutralsLight.fillColorNeutral020,\n iconColorDefaultDim: neutralsLight.fillColorNeutral030,\n iconColorDefaultDisabled: neutralsLight.fillColorNeutral040,\n iconColorDefaultInverted: neutralsLight.fillColorNeutral100Inverted,\n textColorDefaultHeadline: neutralsLight.fillColorNeutral000,\n textColorDefaultPrimary: neutralsLight.fillColorNeutral010,\n textColorDefaultSecondary: neutralsLight.fillColorNeutral020,\n textColorDefaultDisabled: neutralsLight.fillColorNeutral040,\n textColorDefaultPlaceholder: neutralsLight.fillColorNeutral030,\n textColorDefaultInverted: tokens.colorNeutral100White,\n fillColorInteractionOnlineDefault: tokens.colorInteractionOnlineDefault,\n fillColorInteractionDefault: tokens.fillColorInteractionDefault,\n fillColorStatusErrorMedium: tokens.fillColorStatusErrorMedium,\n fillColorButtonNeutralSolidDisabled: neutralsLight.fillColorNeutral070,\n androidRippleNeutral: tokens.fillColorTransparencyDark020,\n surfaceColorCard: neutralsLight.fillColorNeutral100Inverted,\n surfaceColorCanvas: neutralsLight.fillColorNeutral090,\n surfaceColor100: neutralsLight.fillColorNeutral100Inverted,\n surfaceColor090: neutralsLight.fillColorNeutral090,\n needsDesignPass: 'hotpink',\n} as const\n\nconst semanticAliasesDark: SemanticAliasesColors = {\n name: 'dark',\n borderColorDefaultBase: neutralsDark.fillColorNeutral050Base,\n borderColorDefaultDark: neutralsDark.fillColorNeutral040,\n borderColorDefaultDarker: neutralsDark.fillColorNeutral020,\n borderColorDefaultDisabled: neutralsDark.fillColorNeutral050Base,\n borderColorDefaultDim: neutralsDark.fillColorNeutral070,\n borderColorDefaultWhite: neutralsDark.fillColorNeutral100Inverted,\n iconColorDefaultPrimary: neutralsDark.fillColorNeutral010,\n iconColorDefaultSecondary: neutralsDark.fillColorNeutral020,\n iconColorDefaultDim: neutralsDark.fillColorNeutral030,\n iconColorDefaultDisabled: neutralsDark.fillColorNeutral040,\n iconColorDefaultInverted: neutralsDark.fillColorNeutral100Inverted,\n textColorDefaultHeadline: neutralsDark.fillColorNeutral000,\n textColorDefaultPrimary: neutralsDark.fillColorNeutral010,\n textColorDefaultSecondary: neutralsDark.fillColorNeutral020,\n textColorDefaultDisabled: neutralsDark.fillColorNeutral040,\n textColorDefaultPlaceholder: neutralsDark.fillColorNeutral030,\n textColorDefaultInverted: tokens.colorNeutral7,\n fillColorInteractionOnlineDefault: tokens.colorInteractionOnlineDefault,\n fillColorInteractionDefault: tokens.fillColorInteractionDefaultDark,\n fillColorStatusErrorMedium: tokens.fillColorStatusErrorMedium,\n fillColorButtonNeutralSolidDisabled: neutralsDark.fillColorNeutral070,\n androidRippleNeutral: tokens.fillColorTransparencyLight020,\n surfaceColorCard: neutralsDark.fillColorNeutral100Inverted,\n surfaceColorCanvas: neutralsDark.fillColorNeutral090,\n surfaceColor100: neutralsDark.fillColorNeutral100Inverted,\n surfaceColor090: neutralsDark.fillColorNeutral090,\n needsDesignPass: 'pink',\n}\n\nexport const aliasTokensColorMap = {\n light: { ...neutralsLight, ...semanticAliasesLight },\n dark: { ...neutralsDark, ...semanticAliasesDark },\n} as const\n"]}
1
+ {"version":3,"file":"alias_tokens_color_map.js","sourceRoot":"","sources":["../../../src/vendor/tapestry/alias_tokens_color_map.ts"],"names":[],"mappings":"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","sourcesContent":["import { tokens } from './tokens'\n\n// Copied from `@planningcenter/tapestry` package.\n// Defining these tokens locally is a temporary solution until the package supports mobile.\n// Tokens Reference: https://planningcenter.github.io/tapestry/?path=/docs/foundations-design-tokens--docs\n\ninterface NeutralColors {\n name: string\n fillColorNeutral000: string\n fillColorNeutral010: string\n fillColorNeutral020: string\n fillColorNeutral030: string\n fillColorNeutral040: string\n fillColorNeutral050Base: string\n fillColorNeutral060: string\n fillColorNeutral070: string\n fillColorNeutral080: string\n fillColorNeutral090: string\n fillColorNeutral100Inverted: string\n}\n\nconst neutralsLight: NeutralColors = {\n name: 'light',\n fillColorNeutral000: tokens.colorNeutral12,\n fillColorNeutral010: tokens.colorNeutral24,\n fillColorNeutral020: tokens.colorNeutral45,\n fillColorNeutral030: tokens.colorNeutral58,\n fillColorNeutral040: tokens.colorNeutral81,\n fillColorNeutral050Base: tokens.colorNeutral88,\n fillColorNeutral060: tokens.colorNeutral93,\n fillColorNeutral070: tokens.colorNeutral95,\n fillColorNeutral080: tokens.colorNeutral97,\n fillColorNeutral090: tokens.colorNeutral98,\n fillColorNeutral100Inverted: tokens.colorNeutral100White,\n} as const\n\nconst neutralsDark: NeutralColors = {\n name: 'dark',\n fillColorNeutral000: tokens.colorNeutral98,\n fillColorNeutral010: tokens.colorNeutral88,\n fillColorNeutral020: tokens.colorNeutral68,\n fillColorNeutral030: tokens.colorNeutral50,\n fillColorNeutral040: tokens.colorNeutral32,\n fillColorNeutral050Base: tokens.colorNeutral24,\n fillColorNeutral060: tokens.colorNeutral19,\n fillColorNeutral070: tokens.colorNeutral17,\n fillColorNeutral080: tokens.colorNeutral15,\n fillColorNeutral090: tokens.colorNeutral12,\n fillColorNeutral100Inverted: tokens.colorNeutral7,\n} as const\n\ninterface SemanticAliasesColors {\n name: string\n borderColorDefaultBase: string\n borderColorDefaultDark: string\n borderColorDefaultDarker: string\n borderColorDefaultDisabled: string\n borderColorDefaultDim: string\n borderColorDefaultWhite: string\n iconColorDefaultPrimary: string\n iconColorDefaultSecondary: string\n iconColorDefaultDim: string\n iconColorDefaultDisabled: string\n iconColorDefaultInverted: string\n textColorDefaultHeadline: string\n textColorDefaultPrimary: string\n textColorDefaultSecondary: string\n textColorDefaultDisabled: string\n textColorDefaultPlaceholder: string\n textColorDefaultInverted: string\n fillColorInteractionOnlineDefault: string\n fillColorInteractionDefault: string\n fillColorStatusErrorMedium: string\n fillColorButtonNeutralSolidDisabled: string\n androidRippleNeutral: string\n surfaceColorCard: string\n surfaceColorCanvas: string\n surfaceColor100: string\n surfaceColor090: string\n surfaceColor080: string\n needsDesignPass: string\n}\n\nconst semanticAliasesLight: SemanticAliasesColors = {\n name: 'light',\n borderColorDefaultBase: neutralsLight.fillColorNeutral050Base,\n borderColorDefaultDark: neutralsLight.fillColorNeutral040,\n borderColorDefaultDarker: neutralsLight.fillColorNeutral020,\n borderColorDefaultDisabled: neutralsLight.fillColorNeutral050Base,\n borderColorDefaultDim: neutralsLight.fillColorNeutral070,\n borderColorDefaultWhite: neutralsLight.fillColorNeutral100Inverted,\n iconColorDefaultPrimary: neutralsLight.fillColorNeutral010,\n iconColorDefaultSecondary: neutralsLight.fillColorNeutral020,\n iconColorDefaultDim: neutralsLight.fillColorNeutral030,\n iconColorDefaultDisabled: neutralsLight.fillColorNeutral040,\n iconColorDefaultInverted: neutralsLight.fillColorNeutral100Inverted,\n textColorDefaultHeadline: neutralsLight.fillColorNeutral000,\n textColorDefaultPrimary: neutralsLight.fillColorNeutral010,\n textColorDefaultSecondary: neutralsLight.fillColorNeutral020,\n textColorDefaultDisabled: neutralsLight.fillColorNeutral040,\n textColorDefaultPlaceholder: neutralsLight.fillColorNeutral030,\n textColorDefaultInverted: tokens.colorNeutral100White,\n fillColorInteractionOnlineDefault: tokens.colorInteractionOnlineDefault,\n fillColorInteractionDefault: tokens.fillColorInteractionDefault,\n fillColorStatusErrorMedium: tokens.fillColorStatusErrorMedium,\n fillColorButtonNeutralSolidDisabled: neutralsLight.fillColorNeutral070,\n androidRippleNeutral: tokens.fillColorTransparencyDark020,\n surfaceColorCard: neutralsLight.fillColorNeutral100Inverted,\n surfaceColorCanvas: neutralsLight.fillColorNeutral090,\n surfaceColor100: neutralsLight.fillColorNeutral100Inverted,\n surfaceColor090: neutralsLight.fillColorNeutral090,\n surfaceColor080: neutralsLight.fillColorNeutral080,\n needsDesignPass: 'hotpink',\n} as const\n\nconst semanticAliasesDark: SemanticAliasesColors = {\n name: 'dark',\n borderColorDefaultBase: neutralsDark.fillColorNeutral050Base,\n borderColorDefaultDark: neutralsDark.fillColorNeutral040,\n borderColorDefaultDarker: neutralsDark.fillColorNeutral020,\n borderColorDefaultDisabled: neutralsDark.fillColorNeutral050Base,\n borderColorDefaultDim: neutralsDark.fillColorNeutral070,\n borderColorDefaultWhite: neutralsDark.fillColorNeutral100Inverted,\n iconColorDefaultPrimary: neutralsDark.fillColorNeutral010,\n iconColorDefaultSecondary: neutralsDark.fillColorNeutral020,\n iconColorDefaultDim: neutralsDark.fillColorNeutral030,\n iconColorDefaultDisabled: neutralsDark.fillColorNeutral040,\n iconColorDefaultInverted: neutralsDark.fillColorNeutral100Inverted,\n textColorDefaultHeadline: neutralsDark.fillColorNeutral000,\n textColorDefaultPrimary: neutralsDark.fillColorNeutral010,\n textColorDefaultSecondary: neutralsDark.fillColorNeutral020,\n textColorDefaultDisabled: neutralsDark.fillColorNeutral040,\n textColorDefaultPlaceholder: neutralsDark.fillColorNeutral030,\n textColorDefaultInverted: tokens.colorNeutral7,\n fillColorInteractionOnlineDefault: tokens.colorInteractionOnlineDefault,\n fillColorInteractionDefault: tokens.fillColorInteractionDefaultDark,\n fillColorStatusErrorMedium: tokens.fillColorStatusErrorMedium,\n fillColorButtonNeutralSolidDisabled: neutralsDark.fillColorNeutral070,\n androidRippleNeutral: tokens.fillColorTransparencyLight020,\n surfaceColorCard: neutralsDark.fillColorNeutral100Inverted,\n surfaceColorCanvas: neutralsDark.fillColorNeutral090,\n surfaceColor100: neutralsDark.fillColorNeutral100Inverted,\n surfaceColor090: neutralsDark.fillColorNeutral090,\n surfaceColor080: neutralsDark.fillColorNeutral080,\n needsDesignPass: 'pink',\n}\n\nexport const aliasTokensColorMap = {\n light: { ...neutralsLight, ...semanticAliasesLight },\n dark: { ...neutralsDark, ...semanticAliasesDark },\n} as const\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planningcenter/chat-react-native",
3
- "version": "3.2.0-rc.9",
3
+ "version": "3.3.0",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -14,7 +14,8 @@
14
14
  "clean": "expo-module clean",
15
15
  "lint": "expo-module lint",
16
16
  "test": "expo-module test",
17
- "prepublishOnly": "expo-module prepublishOnly"
17
+ "prepublishOnly": "expo-module prepublishOnly",
18
+ "postinstall": "yarn build"
18
19
  },
19
20
  "dependencies": {
20
21
  "fast-text-encoding": "^1.0.6",
@@ -54,5 +55,5 @@
54
55
  "prettier": "^3.4.2",
55
56
  "typescript": "<5.6.0"
56
57
  },
57
- "gitHead": "5c7aa0ac63ac807b4e9a16a4924828eb73aee990"
58
+ "gitHead": "89f42c6bec00b30fb008bc2101c4c1b8a3f5021f"
58
59
  }
@@ -22,7 +22,7 @@ const Wrapper = ({ children }: { children: React.ReactNode }) => {
22
22
  refresh_token: '',
23
23
  token_type: '',
24
24
  },
25
- onTokenExpired: () => null,
25
+ onUnauthorizedResponse: () => {},
26
26
  theme: themeProps,
27
27
  }}
28
28
  >