@planningcenter/chat-react-native 3.42.3-qa-staging.6 → 3.42.3-qa-856.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 (118) hide show
  1. package/build/components/conversation/messages_disabled_banners.d.ts +3 -2
  2. package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
  3. package/build/components/conversation/messages_disabled_banners.js +7 -2
  4. package/build/components/conversation/messages_disabled_banners.js.map +1 -1
  5. package/build/components/display/adult_requirement_notice.js +1 -1
  6. package/build/components/display/adult_requirement_notice.js.map +1 -1
  7. package/build/components/display/platform_modal_header_buttons.d.ts +7 -29
  8. package/build/components/display/platform_modal_header_buttons.d.ts.map +1 -1
  9. package/build/components/display/platform_modal_header_buttons.js +24 -76
  10. package/build/components/display/platform_modal_header_buttons.js.map +1 -1
  11. package/build/hooks/index.d.ts +1 -1
  12. package/build/hooks/index.d.ts.map +1 -1
  13. package/build/hooks/index.js +1 -1
  14. package/build/hooks/index.js.map +1 -1
  15. package/build/hooks/use_conversation.d.ts.map +1 -1
  16. package/build/hooks/use_conversation.js +0 -1
  17. package/build/hooks/use_conversation.js.map +1 -1
  18. package/build/hooks/use_conversation_jolt_events.d.ts.map +1 -1
  19. package/build/hooks/use_conversation_jolt_events.js +2 -10
  20. package/build/hooks/use_conversation_jolt_events.js.map +1 -1
  21. package/build/hooks/use_current_person.d.ts.map +1 -1
  22. package/build/hooks/use_current_person.js +0 -1
  23. package/build/hooks/use_current_person.js.map +1 -1
  24. package/build/hooks/use_direct_messages_enabled.d.ts +2 -0
  25. package/build/hooks/use_direct_messages_enabled.d.ts.map +1 -0
  26. package/build/hooks/use_direct_messages_enabled.js +16 -0
  27. package/build/hooks/use_direct_messages_enabled.js.map +1 -0
  28. package/build/hooks/use_features.d.ts +1 -0
  29. package/build/hooks/use_features.d.ts.map +1 -1
  30. package/build/hooks/use_features.js +1 -0
  31. package/build/hooks/use_features.js.map +1 -1
  32. package/build/navigation/index.d.ts +84 -50
  33. package/build/navigation/index.d.ts.map +1 -1
  34. package/build/navigation/index.js +36 -27
  35. package/build/navigation/index.js.map +1 -1
  36. package/build/screens/bug_report_screen.d.ts.map +1 -1
  37. package/build/screens/bug_report_screen.js +3 -9
  38. package/build/screens/bug_report_screen.js.map +1 -1
  39. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  40. package/build/screens/conversation_details_screen.js +1 -2
  41. package/build/screens/conversation_details_screen.js.map +1 -1
  42. package/build/screens/conversation_filters/components/conversation_filters.js +3 -3
  43. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  44. package/build/screens/conversation_filters/components/rows.js +1 -1
  45. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  46. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  47. package/build/screens/conversation_filters_screen.js +14 -1
  48. package/build/screens/conversation_filters_screen.js.map +1 -1
  49. package/build/screens/conversation_screen.d.ts.map +1 -1
  50. package/build/screens/conversation_screen.js +3 -10
  51. package/build/screens/conversation_screen.js.map +1 -1
  52. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +1 -1
  53. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
  54. package/build/screens/conversation_select_recipients/components/restricted_group_row.js +1 -1
  55. package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
  56. package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
  57. package/build/screens/conversation_select_type_screen.js +7 -4
  58. package/build/screens/conversation_select_type_screen.js.map +1 -1
  59. package/build/screens/conversations/components/list_header_component.js +3 -3
  60. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  61. package/build/screens/message_report_screen.js +3 -5
  62. package/build/screens/message_report_screen.js.map +1 -1
  63. package/build/screens/notification_settings_screen.d.ts.map +1 -1
  64. package/build/screens/notification_settings_screen.js +2 -0
  65. package/build/screens/notification_settings_screen.js.map +1 -1
  66. package/build/screens/settings_screen.js +3 -3
  67. package/build/screens/settings_screen.js.map +1 -1
  68. package/build/types/jolt_events/conversation_events.d.ts +2 -2
  69. package/build/types/jolt_events/conversation_events.d.ts.map +1 -1
  70. package/build/types/jolt_events/conversation_events.js.map +1 -1
  71. package/build/types/resources/conversation.d.ts +2 -2
  72. package/build/types/resources/conversation.d.ts.map +1 -1
  73. package/build/types/resources/conversation.js.map +1 -1
  74. package/build/types/resources/person.d.ts +0 -1
  75. package/build/types/resources/person.d.ts.map +1 -1
  76. package/build/types/resources/person.js.map +1 -1
  77. package/build/utils/conversation_safety_constants.d.ts +1 -1
  78. package/build/utils/conversation_safety_constants.d.ts.map +1 -1
  79. package/build/utils/conversation_safety_constants.js +1 -1
  80. package/build/utils/conversation_safety_constants.js.map +1 -1
  81. package/build/utils/request/conversation.d.ts.map +1 -1
  82. package/build/utils/request/conversation.js +0 -1
  83. package/build/utils/request/conversation.js.map +1 -1
  84. package/package.json +4 -4
  85. package/src/components/conversation/messages_disabled_banners.tsx +11 -3
  86. package/src/components/display/adult_requirement_notice.tsx +1 -1
  87. package/src/components/display/platform_modal_header_buttons.tsx +50 -163
  88. package/src/hooks/index.ts +1 -1
  89. package/src/hooks/use_conversation.ts +0 -1
  90. package/src/hooks/use_conversation_jolt_events.ts +3 -16
  91. package/src/hooks/use_current_person.ts +0 -1
  92. package/src/hooks/use_direct_messages_enabled.ts +23 -0
  93. package/src/hooks/use_features.ts +1 -0
  94. package/src/navigation/index.tsx +42 -36
  95. package/src/screens/bug_report_screen.tsx +3 -9
  96. package/src/screens/conversation_details_screen.tsx +1 -2
  97. package/src/screens/conversation_filters/components/conversation_filters.tsx +3 -3
  98. package/src/screens/conversation_filters/components/rows.tsx +2 -2
  99. package/src/screens/conversation_filters_screen.tsx +21 -1
  100. package/src/screens/conversation_screen.tsx +3 -11
  101. package/src/screens/conversation_select_recipients/components/groups_recipient_row.tsx +1 -1
  102. package/src/screens/conversation_select_recipients/components/restricted_group_row.tsx +2 -2
  103. package/src/screens/conversation_select_type_screen.tsx +7 -4
  104. package/src/screens/conversations/components/list_header_component.tsx +3 -3
  105. package/src/screens/message_report_screen.tsx +3 -5
  106. package/src/screens/notification_settings_screen.tsx +4 -1
  107. package/src/screens/settings_screen.tsx +3 -3
  108. package/src/types/jolt_events/conversation_events.ts +2 -2
  109. package/src/types/resources/conversation.ts +3 -2
  110. package/src/types/resources/person.ts +0 -1
  111. package/src/utils/conversation_safety_constants.ts +1 -1
  112. package/src/utils/request/conversation.ts +0 -1
  113. package/build/hooks/use_direct_messages_eligible.d.ts +0 -2
  114. package/build/hooks/use_direct_messages_eligible.d.ts.map +0 -1
  115. package/build/hooks/use_direct_messages_eligible.js +0 -9
  116. package/build/hooks/use_direct_messages_eligible.js.map +0 -1
  117. package/src/__tests__/hooks/use_direct_messages_eligible.test.tsx +0 -77
  118. package/src/hooks/use_direct_messages_eligible.ts +0 -11
@@ -14,7 +14,6 @@ export const currentPersonRequestArgs = {
14
14
  'pco_chat_enabled',
15
15
  'age_qualification_status',
16
16
  'direct_messages_disabled',
17
- 'direct_messages_eligible',
18
17
  'under_18',
19
18
  ],
20
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"use_current_person.js","sourceRoot":"","sources":["../../src/hooks/use_current_person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,EAAE,KAAK;IACV,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,UAAU;gBACV,cAAc;gBACd,kBAAkB;gBAClB,0BAA0B;gBAC1B,0BAA0B;gBAC1B,0BAA0B;gBAC1B,UAAU;aACX;SACF;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;AAEjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAwB,wBAAwB,EAAE;QACvF,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,cAAc;KACvB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,YAAY,GAAG,CACnB,MAAsC,EACtC,gBAAsD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAChF,EAAE;QACF,WAAW,CAAC,YAAY,CAAqC,qBAAqB,EAAE,IAAI,CAAC,EAAE;YACzF,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YAEtB,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAA;IACpE,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA;AAC/D,CAAC,CAAA","sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { CurrentPersonResource } from '../types'\nimport { ApiResource } from '../types/api_primitives'\nimport { FIVE_MINUTES, THIRTY_MINUTES } from '../utils/time'\nimport { getRequestQueryKey, useSuspenseGet } from './use_suspense_api'\n\nexport const currentPersonRequestArgs = {\n url: '/me',\n data: {\n fields: {\n Person: [\n 'id',\n 'name',\n 'avatar',\n 'can_chat',\n 'unread_count',\n 'pco_chat_enabled',\n 'age_qualification_status',\n 'direct_messages_disabled',\n 'direct_messages_eligible',\n 'under_18',\n ],\n },\n },\n}\n\nexport const currentPersonQueryKey = getRequestQueryKey(currentPersonRequestArgs)\n\nexport const useCurrentPerson = () => {\n const { data: person } = useSuspenseGet<CurrentPersonResource>(currentPersonRequestArgs, {\n staleTime: FIVE_MINUTES,\n gcTime: THIRTY_MINUTES,\n })\n\n return person\n}\n\ntype ProcessRecord<T> = (record: T, update: Partial<T>) => T\n\nexport const useCurrentPersonCache = () => {\n const queryClient = useQueryClient()\n const handleUpdate = (\n update: Partial<CurrentPersonResource>,\n processRecord: ProcessRecord<CurrentPersonResource> = (r, u) => ({ ...r, ...u })\n ) => {\n queryClient.setQueryData<ApiResource<CurrentPersonResource>>(currentPersonQueryKey, data => {\n if (!data) return data\n\n return { ...data, data: processRecord(data.data, update) }\n })\n }\n\n const handleInvalidate = () => {\n queryClient.invalidateQueries({ queryKey: currentPersonQueryKey })\n }\n\n return { update: handleUpdate, invalidate: handleInvalidate }\n}\n"]}
1
+ {"version":3,"file":"use_current_person.js","sourceRoot":"","sources":["../../src/hooks/use_current_person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,EAAE,KAAK;IACV,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,UAAU;gBACV,cAAc;gBACd,kBAAkB;gBAClB,0BAA0B;gBAC1B,0BAA0B;gBAC1B,UAAU;aACX;SACF;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;AAEjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAwB,wBAAwB,EAAE;QACvF,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,cAAc;KACvB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,YAAY,GAAG,CACnB,MAAsC,EACtC,gBAAsD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAChF,EAAE;QACF,WAAW,CAAC,YAAY,CAAqC,qBAAqB,EAAE,IAAI,CAAC,EAAE;YACzF,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YAEtB,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAA;IACpE,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA;AAC/D,CAAC,CAAA","sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { CurrentPersonResource } from '../types'\nimport { ApiResource } from '../types/api_primitives'\nimport { FIVE_MINUTES, THIRTY_MINUTES } from '../utils/time'\nimport { getRequestQueryKey, useSuspenseGet } from './use_suspense_api'\n\nexport const currentPersonRequestArgs = {\n url: '/me',\n data: {\n fields: {\n Person: [\n 'id',\n 'name',\n 'avatar',\n 'can_chat',\n 'unread_count',\n 'pco_chat_enabled',\n 'age_qualification_status',\n 'direct_messages_disabled',\n 'under_18',\n ],\n },\n },\n}\n\nexport const currentPersonQueryKey = getRequestQueryKey(currentPersonRequestArgs)\n\nexport const useCurrentPerson = () => {\n const { data: person } = useSuspenseGet<CurrentPersonResource>(currentPersonRequestArgs, {\n staleTime: FIVE_MINUTES,\n gcTime: THIRTY_MINUTES,\n })\n\n return person\n}\n\ntype ProcessRecord<T> = (record: T, update: Partial<T>) => T\n\nexport const useCurrentPersonCache = () => {\n const queryClient = useQueryClient()\n const handleUpdate = (\n update: Partial<CurrentPersonResource>,\n processRecord: ProcessRecord<CurrentPersonResource> = (r, u) => ({ ...r, ...u })\n ) => {\n queryClient.setQueryData<ApiResource<CurrentPersonResource>>(currentPersonQueryKey, data => {\n if (!data) return data\n\n return { ...data, data: processRecord(data.data, update) }\n })\n }\n\n const handleInvalidate = () => {\n queryClient.invalidateQueries({ queryKey: currentPersonQueryKey })\n }\n\n return { update: handleUpdate, invalidate: handleInvalidate }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function useDirectMessagesEnabled(): boolean;
2
+ //# sourceMappingURL=use_direct_messages_enabled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_direct_messages_enabled.d.ts","sourceRoot":"","sources":["../../src/hooks/use_direct_messages_enabled.ts"],"names":[],"mappings":"AAOA,wBAAgB,wBAAwB,IAAI,OAAO,CAelD"}
@@ -0,0 +1,16 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features';
3
+ import { useApiClient } from './use_api_client';
4
+ import { availableFeatures } from './use_features';
5
+ export function useDirectMessagesEnabled() {
6
+ const apiClient = useApiClient();
7
+ const { data, isFetched } = useQuery({
8
+ queryKey: getFeaturesQueryKey(),
9
+ queryFn: () => apiClient.chat.get(getFeaturesRequestArgs()),
10
+ staleTime: 1000 * 60 * 5,
11
+ });
12
+ if (!isFetched)
13
+ return false;
14
+ return (data?.data.some(feature => feature.name === availableFeatures.direct_messages_eap && feature.enabled) ?? false);
15
+ }
16
+ //# sourceMappingURL=use_direct_messages_enabled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_direct_messages_enabled.js","sourceRoot":"","sources":["../../src/hooks/use_direct_messages_enabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,UAAU,wBAAwB;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAiC;QACnE,QAAQ,EAAE,mBAAmB,EAAE;QAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAiC,sBAAsB,EAAE,CAAC;QAC3F,SAAS,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC;KACzB,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAE5B,OAAO,CACL,IAAI,EAAE,IAAI,CAAC,IAAI,CACb,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,iBAAiB,CAAC,mBAAmB,IAAI,OAAO,CAAC,OAAO,CACrF,IAAI,KAAK,CACX,CAAA;AACH,CAAC","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { ApiCollection } from '../types'\nimport type { FeatureResource } from '../types/resources/feature_resource'\nimport { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features'\nimport { useApiClient } from './use_api_client'\nimport { availableFeatures } from './use_features'\n\nexport function useDirectMessagesEnabled(): boolean {\n const apiClient = useApiClient()\n const { data, isFetched } = useQuery<ApiCollection<FeatureResource>>({\n queryKey: getFeaturesQueryKey(),\n queryFn: () => apiClient.chat.get<ApiCollection<FeatureResource>>(getFeaturesRequestArgs()),\n staleTime: 1000 * 60 * 5,\n })\n\n if (!isFetched) return false\n\n return (\n data?.data.some(\n feature => feature.name === availableFeatures.direct_messages_eap && feature.enabled\n ) ?? false\n )\n}\n"]}
@@ -11,6 +11,7 @@ export declare const availableFeatures: {
11
11
  readonly custom_conversation_avatars: "ROLLOUT_custom_conversation_avatars";
12
12
  readonly conversation_safety_lock: "ROLLOUT_conversation_safety_lock";
13
13
  readonly video_moderation: "ROLLOUT_MOBILE_video_moderation";
14
+ readonly direct_messages_eap: "ROLLOUT_direct_messages_eap";
14
15
  readonly dm_search_clear_fix: "ROLLOUT_MOBILE_dm_search_clear_fix";
15
16
  };
16
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"use_features.d.ts","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAK1E,KAAK,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA;AAE7E,wBAAgB,WAAW;;kCAiBT,WAAW;EAS5B;AAED,eAAO,MAAM,iBAAiB;;;;;;;;CAQ0B,CAAA"}
1
+ {"version":3,"file":"use_features.d.ts","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAK1E,KAAK,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA;AAE7E,wBAAgB,WAAW;;kCAiBT,WAAW;EAS5B;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;CAS0B,CAAA"}
@@ -29,6 +29,7 @@ export const availableFeatures = {
29
29
  custom_conversation_avatars: 'ROLLOUT_custom_conversation_avatars',
30
30
  conversation_safety_lock: 'ROLLOUT_conversation_safety_lock',
31
31
  video_moderation: 'ROLLOUT_MOBILE_video_moderation',
32
+ direct_messages_eap: 'ROLLOUT_direct_messages_eap',
32
33
  dm_search_clear_fix: 'ROLLOUT_MOBILE_dm_search_clear_fix',
33
34
  };
34
35
  const stableEmptyFeatures = {
@@ -1 +1 @@
1
- {"version":3,"file":"use_features.js","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAI/C,MAAM,UAAU,WAAW;IACzB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAA;IAE5C,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAChC,QAAQ,EAAE,mBAAmB,EAAE;QAC/B,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,SAAS,CAAC,IAAI;iBAClB,GAAG,CAAiC,WAAW,CAAC;iBAChD,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAA;QACrC,CAAC;QACD,SAAS,EAAE,YAAY;KACxB,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;IAE1B,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,WAAwB,EAAE,EAAE,CAC3B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,EAC3E,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO;QACL,QAAQ;QACR,cAAc;KACf,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,6BAA6B,EAAE,uCAAuC;IACtE,iBAAiB,EAAE,kCAAkC;IACrD,yBAAyB,EAAE,8CAA8C;IACzE,2BAA2B,EAAE,qCAAqC;IAClE,wBAAwB,EAAE,kCAAkC;IAC5D,gBAAgB,EAAE,iCAAiC;IACnD,mBAAmB,EAAE,oCAAoC;CACH,CAAA;AAExD,MAAM,mBAAmB,GAAmC;IAC1D,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;KACd;CACF,CAAA","sourcesContent":["import { useSuspenseQuery } from '@tanstack/react-query'\nimport { useCallback } from 'react'\nimport { ApiCollection } from '../types'\nimport type { FeatureResource } from '../types/resources/feature_resource'\nimport { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features'\nimport { FIVE_MINUTES } from '../utils/time'\nimport { useApiClient } from './use_api_client'\n\ntype FeatureName = (typeof availableFeatures)[keyof typeof availableFeatures]\n\nexport function useFeatures() {\n const apiClient = useApiClient()\n const requestArgs = getFeaturesRequestArgs()\n\n const { data } = useSuspenseQuery({\n queryKey: getFeaturesQueryKey(),\n queryFn: () => {\n return apiClient.chat\n .get<ApiCollection<FeatureResource>>(requestArgs)\n .catch(() => stableEmptyFeatures)\n },\n staleTime: FIVE_MINUTES,\n })\n\n const features = data.data\n\n const featureEnabled = useCallback(\n (featureName: FeatureName) =>\n features.some(feature => feature.name === featureName && feature.enabled),\n [features]\n )\n\n return {\n features,\n featureEnabled,\n }\n}\n\nexport const availableFeatures = {\n gender_specific_conversations: 'ROLLOUT_gender_specific_conversations',\n message_reporting: 'ROLLOUT_MOBILE_message_reporting',\n granular_notifications_ui: 'ROLLOUT_granular_notification_preferences_ui',\n custom_conversation_avatars: 'ROLLOUT_custom_conversation_avatars',\n conversation_safety_lock: 'ROLLOUT_conversation_safety_lock',\n video_moderation: 'ROLLOUT_MOBILE_video_moderation',\n dm_search_clear_fix: 'ROLLOUT_MOBILE_dm_search_clear_fix',\n} as const satisfies Record<string, `ROLLOUT_${string}`>\n\nconst stableEmptyFeatures: ApiCollection<FeatureResource> = {\n data: [],\n links: {},\n meta: {\n count: 0,\n totalCount: 0,\n },\n}\n"]}
1
+ {"version":3,"file":"use_features.js","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAI/C,MAAM,UAAU,WAAW;IACzB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAA;IAE5C,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAChC,QAAQ,EAAE,mBAAmB,EAAE;QAC/B,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,SAAS,CAAC,IAAI;iBAClB,GAAG,CAAiC,WAAW,CAAC;iBAChD,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAA;QACrC,CAAC;QACD,SAAS,EAAE,YAAY;KACxB,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;IAE1B,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,WAAwB,EAAE,EAAE,CAC3B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,EAC3E,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO;QACL,QAAQ;QACR,cAAc;KACf,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,6BAA6B,EAAE,uCAAuC;IACtE,iBAAiB,EAAE,kCAAkC;IACrD,yBAAyB,EAAE,8CAA8C;IACzE,2BAA2B,EAAE,qCAAqC;IAClE,wBAAwB,EAAE,kCAAkC;IAC5D,gBAAgB,EAAE,iCAAiC;IACnD,mBAAmB,EAAE,6BAA6B;IAClD,mBAAmB,EAAE,oCAAoC;CACH,CAAA;AAExD,MAAM,mBAAmB,GAAmC;IAC1D,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;KACd;CACF,CAAA","sourcesContent":["import { useSuspenseQuery } from '@tanstack/react-query'\nimport { useCallback } from 'react'\nimport { ApiCollection } from '../types'\nimport type { FeatureResource } from '../types/resources/feature_resource'\nimport { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features'\nimport { FIVE_MINUTES } from '../utils/time'\nimport { useApiClient } from './use_api_client'\n\ntype FeatureName = (typeof availableFeatures)[keyof typeof availableFeatures]\n\nexport function useFeatures() {\n const apiClient = useApiClient()\n const requestArgs = getFeaturesRequestArgs()\n\n const { data } = useSuspenseQuery({\n queryKey: getFeaturesQueryKey(),\n queryFn: () => {\n return apiClient.chat\n .get<ApiCollection<FeatureResource>>(requestArgs)\n .catch(() => stableEmptyFeatures)\n },\n staleTime: FIVE_MINUTES,\n })\n\n const features = data.data\n\n const featureEnabled = useCallback(\n (featureName: FeatureName) =>\n features.some(feature => feature.name === featureName && feature.enabled),\n [features]\n )\n\n return {\n features,\n featureEnabled,\n }\n}\n\nexport const availableFeatures = {\n gender_specific_conversations: 'ROLLOUT_gender_specific_conversations',\n message_reporting: 'ROLLOUT_MOBILE_message_reporting',\n granular_notifications_ui: 'ROLLOUT_granular_notification_preferences_ui',\n custom_conversation_avatars: 'ROLLOUT_custom_conversation_avatars',\n conversation_safety_lock: 'ROLLOUT_conversation_safety_lock',\n video_moderation: 'ROLLOUT_MOBILE_video_moderation',\n direct_messages_eap: 'ROLLOUT_direct_messages_eap',\n dm_search_clear_fix: 'ROLLOUT_MOBILE_dm_search_clear_fix',\n} as const satisfies Record<string, `ROLLOUT_${string}`>\n\nconst stableEmptyFeatures: ApiCollection<FeatureResource> = {\n data: [],\n links: {},\n meta: {\n count: 0,\n totalCount: 0,\n },\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { StaticParamList } from '@react-navigation/native';
2
- import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
3
2
  import { CardStyleInterpolators } from '@react-navigation/stack';
3
+ import { useDirectMessagesEnabled } from '../hooks';
4
4
  import { AttachmentActionsScreen } from '../screens/attachment_actions/attachment_actions_screen';
5
5
  import { AvatarPickerScreen } from '../screens/avatar_picker/avatar_picker_screen';
6
6
  import { BugReportScreen } from '../screens/bug_report_screen';
@@ -23,9 +23,21 @@ import { SendGiphyScreen } from '../screens/send_giphy_screen';
23
23
  import { SettingsScreen } from '../screens/settings_screen';
24
24
  import { SystemMessagePeopleScreen } from '../screens/system_message_people_screen';
25
25
  import { ScreenLayoutWithChatAccessGate } from './screenLayout';
26
- export declare const NewConversationStack: import("@react-navigation/core").TypedNavigator<import("@react-navigation/native-stack").NativeStackTypeBag<import("@react-navigation/routers").ParamListBase, string | undefined>, {
26
+ export declare const NewConversationStack: import("@react-navigation/core").TypedNavigator<{
27
+ ParamList: import("@react-navigation/routers").ParamListBase;
28
+ NavigatorID: string | undefined;
29
+ State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
30
+ ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
31
+ EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
32
+ NavigationList: {
33
+ [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
34
+ };
35
+ Navigator: ({ id, initialRouteName, UNSTABLE_routeNamesChangeBehavior, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_router, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
36
+ }, {
27
37
  readonly initialRouteName: "ConversationNewEntry";
28
- readonly screenOptions: () => NativeStackNavigationOptions;
38
+ readonly screenOptions: {
39
+ readonly headerBackButtonDisplayMode: "minimal";
40
+ };
29
41
  readonly screenLayout: typeof ScreenLayoutWithChatAccessGate;
30
42
  readonly screens: {
31
43
  readonly ConversationNewEntry: {
@@ -34,7 +46,7 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
34
46
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
35
47
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
36
48
  theme: ReactNavigation.Theme;
37
- }) => NativeStackNavigationOptions;
49
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
38
50
  };
39
51
  readonly ConversationSelectGroupRecipients: {
40
52
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -42,7 +54,7 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
42
54
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
43
55
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
44
56
  theme: ReactNavigation.Theme;
45
- }) => NativeStackNavigationOptions;
57
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
46
58
  };
47
59
  readonly ConversationSelectTeamsILeadRecipients: {
48
60
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -50,20 +62,20 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
50
62
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
51
63
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
52
64
  theme: ReactNavigation.Theme;
53
- }) => NativeStackNavigationOptions;
65
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
54
66
  };
55
67
  readonly ConversationSelectDirectMessageRecipients: {
56
68
  readonly screen: typeof ConversationSelectDirectMessageRecipientsScreen;
57
- readonly if: () => boolean;
69
+ readonly if: typeof useDirectMessagesEnabled;
58
70
  readonly options: ({ navigation, route }: {
59
71
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
60
72
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
61
73
  theme: ReactNavigation.Theme;
62
- }) => NativeStackNavigationOptions;
74
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
63
75
  };
64
76
  readonly ConversationFilterRecipients: {
65
77
  readonly screen: ({ route, }: import("../screens/conversation_filter_recipients/types").ConversationFilterRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
66
- readonly options: NativeStackNavigationOptions;
78
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
67
79
  };
68
80
  readonly ConversationNew: {
69
81
  readonly screen: ({ route }: {
@@ -84,16 +96,28 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
84
96
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
85
97
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
86
98
  theme: ReactNavigation.Theme;
87
- }) => NativeStackNavigationOptions;
99
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
88
100
  };
89
101
  readonly AvatarPicker: {
90
102
  readonly screen: typeof AvatarPickerScreen;
91
- readonly options: NativeStackNavigationOptions;
103
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
92
104
  };
93
105
  };
94
106
  }>;
95
- export declare const ChatStack: import("@react-navigation/core").TypedNavigator<import("@react-navigation/native-stack").NativeStackTypeBag<import("@react-navigation/routers").ParamListBase, string | undefined>, {
96
- readonly screenOptions: () => NativeStackNavigationOptions;
107
+ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<{
108
+ ParamList: import("@react-navigation/routers").ParamListBase;
109
+ NavigatorID: string | undefined;
110
+ State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
111
+ ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
112
+ EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
113
+ NavigationList: {
114
+ [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
115
+ };
116
+ Navigator: ({ id, initialRouteName, UNSTABLE_routeNamesChangeBehavior, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_router, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
117
+ }, {
118
+ readonly screenOptions: {
119
+ readonly headerBackButtonDisplayMode: "minimal";
120
+ };
97
121
  readonly screenLayout: typeof ScreenLayoutWithChatAccessGate;
98
122
  readonly screens: {
99
123
  readonly Conversations: {
@@ -102,11 +126,11 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
102
126
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
103
127
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
104
128
  theme: ReactNavigation.Theme;
105
- }) => NativeStackNavigationOptions;
129
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
106
130
  };
107
131
  readonly ConversationFilters: {
108
132
  readonly screen: (_props: import("..").ConversationFiltersScreenProps) => import("react/jsx-runtime").JSX.Element;
109
- readonly options: NativeStackNavigationOptions;
133
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
110
134
  };
111
135
  readonly Conversation: {
112
136
  readonly screen: typeof ConversationScreen;
@@ -114,7 +138,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
114
138
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
115
139
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
116
140
  theme: ReactNavigation.Theme;
117
- }) => NativeStackNavigationOptions;
141
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
118
142
  };
119
143
  readonly ConversationReply: {
120
144
  readonly screen: typeof ConversationScreen;
@@ -122,7 +146,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
122
146
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
123
147
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
124
148
  theme: ReactNavigation.Theme;
125
- }) => NativeStackNavigationOptions;
149
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
126
150
  };
127
151
  readonly TeamConversation: {
128
152
  readonly screen: ({ route }: import("..").TeamConversationScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -139,11 +163,11 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
139
163
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
140
164
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
141
165
  theme: ReactNavigation.Theme;
142
- }) => NativeStackNavigationOptions;
166
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
143
167
  };
144
168
  readonly AvatarPicker: {
145
169
  readonly screen: typeof AvatarPickerScreen;
146
- readonly options: NativeStackNavigationOptions;
170
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
147
171
  };
148
172
  readonly ChatSettings: {
149
173
  readonly screen: typeof SettingsScreen;
@@ -151,7 +175,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
151
175
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
152
176
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
153
177
  theme: ReactNavigation.Theme;
154
- }) => NativeStackNavigationOptions;
178
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
155
179
  };
156
180
  readonly NotificationSettings: {
157
181
  readonly screen: typeof NotificationSettingsScreen;
@@ -159,15 +183,13 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
159
183
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
160
184
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
161
185
  theme: ReactNavigation.Theme;
162
- }) => NativeStackNavigationOptions;
186
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
163
187
  };
164
188
  readonly PreferredAppSelection: {
165
189
  readonly screen: typeof PreferredAppSelectionScreen;
166
- readonly options: ({ navigation }: {
167
- route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
168
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
169
- theme: ReactNavigation.Theme;
170
- }) => NativeStackNavigationOptions;
190
+ readonly options: {
191
+ readonly title: "Preferred app";
192
+ };
171
193
  };
172
194
  readonly GroupNotificationSettings: {
173
195
  readonly screen: typeof GroupNotificationSettingsScreen;
@@ -175,20 +197,32 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
175
197
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
176
198
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
177
199
  theme: ReactNavigation.Theme;
178
- }) => NativeStackNavigationOptions;
200
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
179
201
  };
180
202
  readonly GroupNotificationLevelSelect: {
181
203
  readonly screen: typeof GroupNotificationLevelSelectScreen;
182
- readonly options: NativeStackNavigationOptions;
204
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
183
205
  };
184
206
  readonly ConversationNotificationLevelSelect: {
185
207
  readonly screen: typeof ConversationNotificationLevelSelectScreen;
186
- readonly options: NativeStackNavigationOptions;
208
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
187
209
  };
188
210
  readonly New: {
189
- readonly screen: import("@react-navigation/core").TypedNavigator<import("@react-navigation/native-stack").NativeStackTypeBag<import("@react-navigation/routers").ParamListBase, string | undefined>, {
211
+ readonly screen: import("@react-navigation/core").TypedNavigator<{
212
+ ParamList: import("@react-navigation/routers").ParamListBase;
213
+ NavigatorID: string | undefined;
214
+ State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
215
+ ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
216
+ EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
217
+ NavigationList: {
218
+ [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
219
+ };
220
+ Navigator: ({ id, initialRouteName, UNSTABLE_routeNamesChangeBehavior, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_router, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
221
+ }, {
190
222
  readonly initialRouteName: "ConversationNewEntry";
191
- readonly screenOptions: () => NativeStackNavigationOptions;
223
+ readonly screenOptions: {
224
+ readonly headerBackButtonDisplayMode: "minimal";
225
+ };
192
226
  readonly screenLayout: typeof ScreenLayoutWithChatAccessGate;
193
227
  readonly screens: {
194
228
  readonly ConversationNewEntry: {
@@ -197,7 +231,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
197
231
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
198
232
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
199
233
  theme: ReactNavigation.Theme;
200
- }) => NativeStackNavigationOptions;
234
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
201
235
  };
202
236
  readonly ConversationSelectGroupRecipients: {
203
237
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -205,7 +239,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
205
239
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
206
240
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
207
241
  theme: ReactNavigation.Theme;
208
- }) => NativeStackNavigationOptions;
242
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
209
243
  };
210
244
  readonly ConversationSelectTeamsILeadRecipients: {
211
245
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -213,20 +247,20 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
213
247
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
214
248
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
215
249
  theme: ReactNavigation.Theme;
216
- }) => NativeStackNavigationOptions;
250
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
217
251
  };
218
252
  readonly ConversationSelectDirectMessageRecipients: {
219
253
  readonly screen: typeof ConversationSelectDirectMessageRecipientsScreen;
220
- readonly if: () => boolean;
254
+ readonly if: typeof useDirectMessagesEnabled;
221
255
  readonly options: ({ navigation, route }: {
222
256
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
223
257
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
224
258
  theme: ReactNavigation.Theme;
225
- }) => NativeStackNavigationOptions;
259
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
226
260
  };
227
261
  readonly ConversationFilterRecipients: {
228
262
  readonly screen: ({ route, }: import("../screens/conversation_filter_recipients/types").ConversationFilterRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
229
- readonly options: NativeStackNavigationOptions;
263
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
230
264
  };
231
265
  readonly ConversationNew: {
232
266
  readonly screen: ({ route }: {
@@ -247,11 +281,11 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
247
281
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
248
282
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
249
283
  theme: ReactNavigation.Theme;
250
- }) => NativeStackNavigationOptions;
284
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
251
285
  };
252
286
  readonly AvatarPicker: {
253
287
  readonly screen: typeof AvatarPickerScreen;
254
- readonly options: NativeStackNavigationOptions;
288
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
255
289
  };
256
290
  };
257
291
  }>;
@@ -281,43 +315,43 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
281
315
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
282
316
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
283
317
  theme: ReactNavigation.Theme;
284
- }) => NativeStackNavigationOptions;
318
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
285
319
  };
286
320
  readonly SendGiphy: {
287
321
  readonly screen: typeof SendGiphyScreen;
288
- readonly options: NativeStackNavigationOptions;
322
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
289
323
  };
290
324
  readonly MessageActions: {
291
325
  readonly screen: typeof MessageActionsScreen;
292
- readonly options: NativeStackNavigationOptions;
326
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
293
327
  };
294
328
  readonly MessageReport: {
295
329
  readonly screen: typeof MessageReportScreen;
296
- readonly options: ({ navigation, route, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => NativeStackNavigationOptions;
330
+ readonly options: ({ navigation, route, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
297
331
  };
298
332
  readonly AttachmentActions: {
299
333
  readonly screen: typeof AttachmentActionsScreen;
300
- readonly options: NativeStackNavigationOptions;
334
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
301
335
  };
302
336
  readonly ConversationSelectType: {
303
337
  readonly screen: typeof ConversationSelectTypeScreen;
304
- readonly options: NativeStackNavigationOptions;
338
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
305
339
  };
306
340
  readonly Reactions: {
307
341
  readonly screen: typeof ReactionsScreen;
308
- readonly options: NativeStackNavigationOptions;
342
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
309
343
  };
310
344
  readonly SystemMessagePeople: {
311
345
  readonly screen: typeof SystemMessagePeopleScreen;
312
- readonly options: NativeStackNavigationOptions;
346
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
313
347
  };
314
348
  readonly MessageReadReceipts: {
315
349
  readonly screen: typeof MessageReadReceiptsScreen;
316
- readonly options: NativeStackNavigationOptions;
350
+ readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
317
351
  };
318
352
  readonly BugReport: {
319
353
  readonly screen: typeof BugReportScreen;
320
- readonly options: ({ navigation, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => NativeStackNavigationOptions;
354
+ readonly options: ({ navigation, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
321
355
  };
322
356
  readonly GetHelp: {
323
357
  readonly screen: ({ route }: {
@@ -331,7 +365,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
331
365
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
332
366
  navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
333
367
  theme: ReactNavigation.Theme;
334
- }) => NativeStackNavigationOptions;
368
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
335
369
  };
336
370
  readonly NotFound: {
337
371
  readonly screen: typeof NotFound;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAGL,4BAA4B,EAC7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAUhE,OAAO,EACL,uBAAuB,EAExB,MAAM,yDAAyD,CAAA;AAChE,OAAO,EACL,kBAAkB,EAGnB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AACtF,OAAO,EACL,yBAAyB,EAE1B,MAAM,sDAAsD,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAWlF,OAAO,EACL,yCAAyC,EAE1C,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAEL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,+CAA+C,EAAE,MAAM,gGAAgG,CAAA;AAIhK,OAAO,EACL,4BAA4B,EAE7B,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EACL,kCAAkC,EAEnC,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,EACL,oBAAoB,EAErB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAA8B,MAAM,kCAAkC,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAA;AACvF,OAAO,EAAE,eAAe,EAA0B,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EACL,yBAAyB,EAE1B,MAAM,yCAAyC,CAAA;AAGhD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAO/D,eAAO,MAAM,oBAAoB;;kCALA,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoF3D,CAAA;AAEF,eAAO,MAAM,SAAS;kCAtFW,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6S3D,CAAA;AAEF,KAAK,kBAAkB,GAAG,eAAe,CAAC,OAAO,SAAS,CAAC,CAAA;AAE3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,eAAe,CAAC;QACxB,UAAU,aAAc,SAAQ,kBAAkB;SAAG;KACtD;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAK1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAShE,OAAO,EAAE,wBAAwB,EAAqB,MAAM,UAAU,CAAA;AACtE,OAAO,EACL,uBAAuB,EAExB,MAAM,yDAAyD,CAAA;AAChE,OAAO,EACL,kBAAkB,EAGnB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AACtF,OAAO,EACL,yBAAyB,EAE1B,MAAM,sDAAsD,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAWlF,OAAO,EACL,yCAAyC,EAE1C,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAEL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,+CAA+C,EAAE,MAAM,gGAAgG,CAAA;AAIhK,OAAO,EACL,4BAA4B,EAE7B,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EACL,kCAAkC,EAEnC,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,EACL,oBAAoB,EAErB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAA8B,MAAM,kCAAkC,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAA;AACvF,OAAO,EAAE,eAAe,EAA0B,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EACL,yBAAyB,EAE1B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAE/D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqF/B,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8NpB,CAAA;AAEF,KAAK,kBAAkB,GAAG,eAAe,CAAC,OAAO,SAAS,CAAC,CAAA;AAE3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,eAAe,CAAC;QACxB,UAAU,aAAc,SAAQ,kBAAkB;SAAG;KACtD;CACF"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createNativeStackNavigator, } from '@react-navigation/native-stack';
3
3
  import { CardStyleInterpolators } from '@react-navigation/stack';
4
- import { composeOptions, createMinimalHeaderBackButton, withMinimalBack, withRightClose, withRightDone, } from '../components/display/platform_modal_header_buttons';
5
- import { useDirectMessagesEligible, useQualifiedByAge } from '../hooks';
4
+ import { composeOptions, createMinimalHeaderBackButton, withMinimalBack, withRightClose, withRightText, } from '../components/display/platform_modal_header_buttons';
5
+ import { useDirectMessagesEnabled, useQualifiedByAge } from '../hooks';
6
6
  import { AttachmentActionsScreen, AttachmentActionsScreenOptions, } from '../screens/attachment_actions/attachment_actions_screen';
7
7
  import { AvatarPickerScreen, AvatarPickerScreenOptions, AvatarPickerCreateScreenOptions, } from '../screens/avatar_picker/avatar_picker_screen';
8
8
  import { BugReportScreen, BugReportScreenOptions } from '../screens/bug_report_screen';
@@ -32,15 +32,12 @@ import { SendGiphyScreen, SendGiphyScreenOptions } from '../screens/send_giphy_s
32
32
  import { SettingsScreen } from '../screens/settings_screen';
33
33
  import { SystemMessagePeopleScreen, SystemMessagePeopleScreenOptions, } from '../screens/system_message_people_screen';
34
34
  import { TeamConversationScreen } from '../screens/team_conversation_screen';
35
- import { isLiquidGlassEnabled } from '../utils/liquid_glass';
36
35
  import { ScreenLayoutWithChatAccessGate } from './screenLayout';
37
- const globalScreenOptions = () => ({
38
- headerBackButtonDisplayMode: 'minimal',
39
- ...(isLiquidGlassEnabled() ? { headerShadowVisible: false } : {}),
40
- });
41
36
  export const NewConversationStack = createNativeStackNavigator({
42
37
  initialRouteName: 'ConversationNewEntry',
43
- screenOptions: globalScreenOptions,
38
+ screenOptions: {
39
+ headerBackButtonDisplayMode: 'minimal',
40
+ },
44
41
  screenLayout: ScreenLayoutWithChatAccessGate,
45
42
  screens: {
46
43
  ConversationNewEntry: {
@@ -48,13 +45,14 @@ export const NewConversationStack = createNativeStackNavigator({
48
45
  options: ({ navigation }) => composeOptions({
49
46
  title: 'New conversation',
50
47
  headerBackVisible: false,
51
- }, withRightClose({ onPress: navigation.goBack })),
48
+ }, withRightText({ text: 'Cancel', onPress: navigation.goBack })),
52
49
  },
53
50
  ConversationSelectGroupRecipients: {
54
51
  screen: ConversationSelectGroupRecipientsScreen,
55
52
  options: ({ navigation, route }) => composeOptions({
56
53
  title: 'New conversation',
57
- }, withRightClose({
54
+ }, withRightText({
55
+ text: 'Cancel',
58
56
  onPress: () => navigation.popTo('Conversations', route.params),
59
57
  })),
60
58
  },
@@ -62,16 +60,18 @@ export const NewConversationStack = createNativeStackNavigator({
62
60
  screen: ConversationSelectTeamsILeadRecipientsScreen,
63
61
  options: ({ navigation, route }) => composeOptions({
64
62
  title: 'New conversation',
65
- }, withRightClose({
63
+ }, withRightText({
64
+ text: 'Cancel',
66
65
  onPress: () => navigation.popTo('Conversations', route.params),
67
66
  })),
68
67
  },
69
68
  ConversationSelectDirectMessageRecipients: {
70
69
  screen: ConversationSelectDirectMessageRecipientsScreen,
71
- if: useDirectMessagesEligible,
70
+ if: useDirectMessagesEnabled,
72
71
  options: ({ navigation, route }) => composeOptions({
73
72
  title: 'New conversation',
74
- }, withRightClose({
73
+ }, withRightText({
74
+ text: 'Cancel',
75
75
  onPress: () => navigation.popTo('Conversations', route.params),
76
76
  })),
77
77
  },
@@ -84,7 +84,8 @@ export const NewConversationStack = createNativeStackNavigator({
84
84
  options: ({ navigation, route }) => composeOptions({
85
85
  title: 'New conversation',
86
86
  headerLeft: () => null,
87
- }, withRightClose({
87
+ }, withRightText({
88
+ text: 'Cancel',
88
89
  onPress: () => {
89
90
  const { chat_group_graph_id, group_source_app_name } = route.params;
90
91
  navigation.popTo('Conversations', { chat_group_graph_id, group_source_app_name });
@@ -98,7 +99,9 @@ export const NewConversationStack = createNativeStackNavigator({
98
99
  },
99
100
  });
100
101
  export const ChatStack = createNativeStackNavigator({
101
- screenOptions: globalScreenOptions,
102
+ screenOptions: {
103
+ headerBackButtonDisplayMode: 'minimal',
104
+ },
102
105
  screenLayout: ScreenLayoutWithChatAccessGate,
103
106
  screens: {
104
107
  Conversations: {
@@ -152,7 +155,7 @@ export const ChatStack = createNativeStackNavigator({
152
155
  options: ({ navigation }) => composeOptions({
153
156
  presentation: 'modal',
154
157
  title: 'Conversation details',
155
- }, withRightDone({ onPress: navigation.goBack })),
158
+ }, withRightText({ text: 'Done', onPress: navigation.goBack })),
156
159
  },
157
160
  AvatarPicker: {
158
161
  screen: AvatarPickerScreen,
@@ -160,29 +163,35 @@ export const ChatStack = createNativeStackNavigator({
160
163
  },
161
164
  ChatSettings: {
162
165
  screen: SettingsScreen,
163
- options: ({ navigation }) => composeOptions({ title: 'Chat settings' }, withMinimalBack({ onPress: navigation.goBack })),
166
+ options: ({ navigation }) => composeOptions({
167
+ title: 'Chat settings',
168
+ headerBackVisible: false,
169
+ }, withRightText({ text: 'Done', onPress: navigation.goBack })),
164
170
  },
165
171
  NotificationSettings: {
166
172
  screen: NotificationSettingsScreen,
167
- options: ({ navigation }) => navigation.getState().index === 0
168
- ? composeOptions({ title: 'Chat notifications' }, withRightClose({ onPress: navigation.goBack }))
169
- : composeOptions({ title: 'Chat notifications' }, withMinimalBack({ onPress: navigation.goBack })),
173
+ options: ({ navigation }) => composeOptions({
174
+ title: 'Chat',
175
+ headerBackVisible: false,
176
+ }, withRightText({ text: 'Done', onPress: navigation.goBack })),
170
177
  },
171
178
  PreferredAppSelection: {
172
179
  screen: PreferredAppSelectionScreen,
173
- options: ({ navigation }) => composeOptions({ title: 'Preferred app' }, withMinimalBack({ onPress: navigation.goBack })),
180
+ options: {
181
+ title: 'Preferred app',
182
+ },
174
183
  },
175
184
  GroupNotificationSettings: {
176
185
  screen: GroupNotificationSettingsScreen,
177
186
  options: ({ route, navigation }) => {
178
187
  const title = route.params?.title || 'Group Settings';
179
- // The dismiss button only shows when this is the entry screen (e.g.
180
- // deep links); deeper in the stack the back button covers dismissal.
188
+ // Done only shows when this is the entry screen (e.g. deep links);
189
+ // deeper in the stack the back button covers dismissal.
181
190
  return navigation.getState().index === 0
182
191
  ? composeOptions({
183
192
  title,
184
- }, withRightClose({ onPress: navigation.goBack }))
185
- : composeOptions({ title }, withMinimalBack({ onPress: navigation.goBack }));
193
+ }, withRightText({ text: 'Done', onPress: navigation.goBack }))
194
+ : { title };
186
195
  },
187
196
  },
188
197
  GroupNotificationLevelSelect: {
@@ -207,7 +216,7 @@ export const ChatStack = createNativeStackNavigator({
207
216
  options: ({ navigation }) => composeOptions({
208
217
  title: 'New conversation',
209
218
  headerLeft: () => null,
210
- }, withRightClose({ onPress: () => navigation.getParent()?.goBack() })),
219
+ }, withRightText({ text: 'Cancel', onPress: () => navigation.getParent()?.goBack() })),
211
220
  },
212
221
  SendGiphy: {
213
222
  screen: SendGiphyScreen,
@@ -252,7 +261,7 @@ export const ChatStack = createNativeStackNavigator({
252
261
  headerTitle: 'Get help',
253
262
  headerBackVisible: false,
254
263
  presentation: 'modal',
255
- }, withRightClose({ onPress: navigation.goBack })),
264
+ }, withRightText({ text: 'Close', onPress: navigation.goBack })),
256
265
  },
257
266
  NotFound: {
258
267
  screen: NotFound,