@planningcenter/chat-react-native 3.42.3-qa-staging.7 → 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 (76) 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 +25 -7
  8. package/build/components/display/platform_modal_header_buttons.d.ts.map +1 -1
  9. package/build/components/display/platform_modal_header_buttons.js +66 -8
  10. package/build/components/display/platform_modal_header_buttons.js.map +1 -1
  11. package/build/hooks/use_conversation.d.ts.map +1 -1
  12. package/build/hooks/use_conversation.js +0 -1
  13. package/build/hooks/use_conversation.js.map +1 -1
  14. package/build/hooks/use_conversation_jolt_events.d.ts.map +1 -1
  15. package/build/hooks/use_conversation_jolt_events.js +2 -10
  16. package/build/hooks/use_conversation_jolt_events.js.map +1 -1
  17. package/build/navigation/index.d.ts +47 -117
  18. package/build/navigation/index.d.ts.map +1 -1
  19. package/build/navigation/index.js +55 -57
  20. package/build/navigation/index.js.map +1 -1
  21. package/build/screens/bug_report_screen.d.ts.map +1 -1
  22. package/build/screens/bug_report_screen.js +4 -13
  23. package/build/screens/bug_report_screen.js.map +1 -1
  24. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  25. package/build/screens/conversation_details_screen.js +10 -12
  26. package/build/screens/conversation_details_screen.js.map +1 -1
  27. package/build/screens/conversation_filters/components/rows.js +1 -1
  28. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  29. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  30. package/build/screens/conversation_filters_screen.js +15 -2
  31. package/build/screens/conversation_filters_screen.js.map +1 -1
  32. package/build/screens/conversation_screen.js +1 -1
  33. package/build/screens/conversation_screen.js.map +1 -1
  34. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +1 -1
  35. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
  36. package/build/screens/conversation_select_recipients/components/restricted_group_row.js +1 -1
  37. package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
  38. package/build/screens/message_report_screen.d.ts.map +1 -1
  39. package/build/screens/message_report_screen.js +12 -18
  40. package/build/screens/message_report_screen.js.map +1 -1
  41. package/build/screens/notification_settings_screen.d.ts.map +1 -1
  42. package/build/screens/notification_settings_screen.js +2 -14
  43. package/build/screens/notification_settings_screen.js.map +1 -1
  44. package/build/types/jolt_events/conversation_events.d.ts +2 -2
  45. package/build/types/jolt_events/conversation_events.d.ts.map +1 -1
  46. package/build/types/jolt_events/conversation_events.js.map +1 -1
  47. package/build/types/resources/conversation.d.ts +2 -2
  48. package/build/types/resources/conversation.d.ts.map +1 -1
  49. package/build/types/resources/conversation.js.map +1 -1
  50. package/build/utils/conversation_safety_constants.d.ts +1 -1
  51. package/build/utils/conversation_safety_constants.d.ts.map +1 -1
  52. package/build/utils/conversation_safety_constants.js +1 -1
  53. package/build/utils/conversation_safety_constants.js.map +1 -1
  54. package/build/utils/request/conversation.d.ts.map +1 -1
  55. package/build/utils/request/conversation.js +0 -1
  56. package/build/utils/request/conversation.js.map +1 -1
  57. package/package.json +3 -3
  58. package/src/components/conversation/messages_disabled_banners.tsx +11 -3
  59. package/src/components/display/adult_requirement_notice.tsx +1 -1
  60. package/src/components/display/platform_modal_header_buttons.tsx +139 -11
  61. package/src/hooks/use_conversation.ts +0 -1
  62. package/src/hooks/use_conversation_jolt_events.ts +3 -16
  63. package/src/navigation/index.tsx +143 -154
  64. package/src/screens/bug_report_screen.tsx +10 -15
  65. package/src/screens/conversation_details_screen.tsx +10 -17
  66. package/src/screens/conversation_filters/components/rows.tsx +2 -2
  67. package/src/screens/conversation_filters_screen.tsx +22 -2
  68. package/src/screens/conversation_screen.tsx +1 -1
  69. package/src/screens/conversation_select_recipients/components/groups_recipient_row.tsx +1 -1
  70. package/src/screens/conversation_select_recipients/components/restricted_group_row.tsx +2 -2
  71. package/src/screens/message_report_screen.tsx +18 -21
  72. package/src/screens/notification_settings_screen.tsx +3 -20
  73. package/src/types/jolt_events/conversation_events.ts +2 -2
  74. package/src/types/resources/conversation.ts +3 -2
  75. package/src/utils/conversation_safety_constants.ts +1 -1
  76. package/src/utils/request/conversation.ts +0 -1
@@ -1,5 +1,4 @@
1
1
  import { StaticParamList } from '@react-navigation/native';
2
- import { NativeStackHeaderRightProps } from '@react-navigation/native-stack';
3
2
  import { CardStyleInterpolators } from '@react-navigation/stack';
4
3
  import { useDirectMessagesEnabled } from '../hooks';
5
4
  import { AttachmentActionsScreen } from '../screens/attachment_actions/attachment_actions_screen';
@@ -26,14 +25,14 @@ import { SystemMessagePeopleScreen } from '../screens/system_message_people_scre
26
25
  import { ScreenLayoutWithChatAccessGate } from './screenLayout';
27
26
  export declare const NewConversationStack: import("@react-navigation/core").TypedNavigator<{
28
27
  ParamList: import("@react-navigation/routers").ParamListBase;
29
- NavigatorID: undefined;
28
+ NavigatorID: string | undefined;
30
29
  State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
31
30
  ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
32
31
  EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
33
32
  NavigationList: {
34
- [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
33
+ [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
35
34
  };
36
- Navigator: ({ id, initialRouteName, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_getStateForRouteNamesChange, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
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;
37
36
  }, {
38
37
  readonly initialRouteName: "ConversationNewEntry";
39
38
  readonly screenOptions: {
@@ -45,47 +44,34 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
45
44
  readonly screen: ({ route }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
46
45
  readonly options: ({ navigation }: {
47
46
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
48
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
47
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
49
48
  theme: ReactNavigation.Theme;
50
- }) => {
51
- title: string;
52
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
53
- headerBackVisible: false;
54
- };
49
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
55
50
  };
56
51
  readonly ConversationSelectGroupRecipients: {
57
52
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
58
53
  readonly options: ({ navigation, route }: {
59
54
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
60
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
55
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
61
56
  theme: ReactNavigation.Theme;
62
- }) => {
63
- title: string;
64
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
65
- };
57
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
66
58
  };
67
59
  readonly ConversationSelectTeamsILeadRecipients: {
68
60
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
69
61
  readonly options: ({ navigation, route }: {
70
62
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
71
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
63
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
72
64
  theme: ReactNavigation.Theme;
73
- }) => {
74
- title: string;
75
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
76
- };
65
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
77
66
  };
78
67
  readonly ConversationSelectDirectMessageRecipients: {
79
68
  readonly screen: typeof ConversationSelectDirectMessageRecipientsScreen;
80
69
  readonly if: typeof useDirectMessagesEnabled;
81
70
  readonly options: ({ navigation, route }: {
82
71
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
83
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
72
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
84
73
  theme: ReactNavigation.Theme;
85
- }) => {
86
- title: string;
87
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
88
- };
74
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
89
75
  };
90
76
  readonly ConversationFilterRecipients: {
91
77
  readonly screen: ({ route, }: import("../screens/conversation_filter_recipients/types").ConversationFilterRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -108,13 +94,9 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
108
94
  }) => import("react/jsx-runtime").JSX.Element;
109
95
  readonly options: ({ navigation, route }: {
110
96
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
111
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
97
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
112
98
  theme: ReactNavigation.Theme;
113
- }) => {
114
- title: string;
115
- headerLeft: () => null;
116
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
117
- };
99
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
118
100
  };
119
101
  readonly AvatarPicker: {
120
102
  readonly screen: typeof AvatarPickerScreen;
@@ -124,14 +106,14 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
124
106
  }>;
125
107
  export declare const ChatStack: import("@react-navigation/core").TypedNavigator<{
126
108
  ParamList: import("@react-navigation/routers").ParamListBase;
127
- NavigatorID: undefined;
109
+ NavigatorID: string | undefined;
128
110
  State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
129
111
  ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
130
112
  EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
131
113
  NavigationList: {
132
- [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
114
+ [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
133
115
  };
134
- Navigator: ({ id, initialRouteName, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_getStateForRouteNamesChange, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
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;
135
117
  }, {
136
118
  readonly screenOptions: {
137
119
  readonly headerBackButtonDisplayMode: "minimal";
@@ -142,13 +124,9 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
142
124
  readonly screen: typeof ConversationsScreen;
143
125
  readonly options: ({ route, navigation }: {
144
126
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
145
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
127
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
146
128
  theme: ReactNavigation.Theme;
147
- }) => {
148
- headerTitle: string;
149
- headerBackVisible: false;
150
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
151
- };
129
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
152
130
  };
153
131
  readonly ConversationFilters: {
154
132
  readonly screen: (_props: import("..").ConversationFiltersScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -158,24 +136,17 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
158
136
  readonly screen: typeof ConversationScreen;
159
137
  readonly options: ({ route, navigation }: {
160
138
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
161
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
139
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
162
140
  theme: ReactNavigation.Theme;
163
- }) => {
164
- headerTitle: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
165
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
166
- headerLeft: (props: import("@react-navigation/native-stack").NativeStackHeaderLeftProps) => import("react/jsx-runtime").JSX.Element;
167
- };
141
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
168
142
  };
169
143
  readonly ConversationReply: {
170
144
  readonly screen: typeof ConversationScreen;
171
145
  readonly options: ({ route, navigation }: {
172
146
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
173
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
147
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
174
148
  theme: ReactNavigation.Theme;
175
- }) => {
176
- title: string;
177
- headerLeft: (props: import("@react-navigation/native-stack").NativeStackHeaderLeftProps) => import("react/jsx-runtime").JSX.Element;
178
- };
149
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
179
150
  };
180
151
  readonly TeamConversation: {
181
152
  readonly screen: ({ route }: import("..").TeamConversationScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -190,13 +161,9 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
190
161
  readonly screen: typeof ConversationDetailsScreen;
191
162
  readonly options: ({ navigation }: {
192
163
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
193
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
164
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
194
165
  theme: ReactNavigation.Theme;
195
- }) => {
196
- presentation: "modal";
197
- title: string;
198
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
199
- };
166
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
200
167
  };
201
168
  readonly AvatarPicker: {
202
169
  readonly screen: typeof AvatarPickerScreen;
@@ -206,25 +173,17 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
206
173
  readonly screen: typeof SettingsScreen;
207
174
  readonly options: ({ navigation }: {
208
175
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
209
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
176
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
210
177
  theme: ReactNavigation.Theme;
211
- }) => {
212
- title: string;
213
- headerBackVisible: false;
214
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
215
- };
178
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
216
179
  };
217
180
  readonly NotificationSettings: {
218
181
  readonly screen: typeof NotificationSettingsScreen;
219
182
  readonly options: ({ navigation }: {
220
183
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
221
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
184
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
222
185
  theme: ReactNavigation.Theme;
223
- }) => {
224
- title: string;
225
- headerBackVisible: false;
226
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
227
- };
186
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
228
187
  };
229
188
  readonly PreferredAppSelection: {
230
189
  readonly screen: typeof PreferredAppSelectionScreen;
@@ -236,12 +195,9 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
236
195
  readonly screen: typeof GroupNotificationSettingsScreen;
237
196
  readonly options: ({ route, navigation }: {
238
197
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
239
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
198
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
240
199
  theme: ReactNavigation.Theme;
241
- }) => {
242
- title: string;
243
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
244
- };
200
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
245
201
  };
246
202
  readonly GroupNotificationLevelSelect: {
247
203
  readonly screen: typeof GroupNotificationLevelSelectScreen;
@@ -254,14 +210,14 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
254
210
  readonly New: {
255
211
  readonly screen: import("@react-navigation/core").TypedNavigator<{
256
212
  ParamList: import("@react-navigation/routers").ParamListBase;
257
- NavigatorID: undefined;
213
+ NavigatorID: string | undefined;
258
214
  State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
259
215
  ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
260
216
  EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
261
217
  NavigationList: {
262
- [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
218
+ [x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
263
219
  };
264
- Navigator: ({ id, initialRouteName, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_getStateForRouteNamesChange, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
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;
265
221
  }, {
266
222
  readonly initialRouteName: "ConversationNewEntry";
267
223
  readonly screenOptions: {
@@ -273,47 +229,34 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
273
229
  readonly screen: ({ route }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
274
230
  readonly options: ({ navigation }: {
275
231
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
276
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
232
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
277
233
  theme: ReactNavigation.Theme;
278
- }) => {
279
- title: string;
280
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
281
- headerBackVisible: false;
282
- };
234
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
283
235
  };
284
236
  readonly ConversationSelectGroupRecipients: {
285
237
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
286
238
  readonly options: ({ navigation, route }: {
287
239
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
288
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
240
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
289
241
  theme: ReactNavigation.Theme;
290
- }) => {
291
- title: string;
292
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
293
- };
242
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
294
243
  };
295
244
  readonly ConversationSelectTeamsILeadRecipients: {
296
245
  readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
297
246
  readonly options: ({ navigation, route }: {
298
247
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
299
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
248
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
300
249
  theme: ReactNavigation.Theme;
301
- }) => {
302
- title: string;
303
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
304
- };
250
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
305
251
  };
306
252
  readonly ConversationSelectDirectMessageRecipients: {
307
253
  readonly screen: typeof ConversationSelectDirectMessageRecipientsScreen;
308
254
  readonly if: typeof useDirectMessagesEnabled;
309
255
  readonly options: ({ navigation, route }: {
310
256
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
311
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
257
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
312
258
  theme: ReactNavigation.Theme;
313
- }) => {
314
- title: string;
315
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
316
- };
259
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
317
260
  };
318
261
  readonly ConversationFilterRecipients: {
319
262
  readonly screen: ({ route, }: import("../screens/conversation_filter_recipients/types").ConversationFilterRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
@@ -336,13 +279,9 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
336
279
  }) => import("react/jsx-runtime").JSX.Element;
337
280
  readonly options: ({ navigation, route }: {
338
281
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
339
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
282
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
340
283
  theme: ReactNavigation.Theme;
341
- }) => {
342
- title: string;
343
- headerLeft: () => null;
344
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
345
- };
284
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
346
285
  };
347
286
  readonly AvatarPicker: {
348
287
  readonly screen: typeof AvatarPickerScreen;
@@ -374,13 +313,9 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
374
313
  readonly if: () => boolean;
375
314
  readonly options: ({ navigation }: {
376
315
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
377
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
316
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
378
317
  theme: ReactNavigation.Theme;
379
- }) => {
380
- title: string;
381
- headerLeft: () => null;
382
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
383
- };
318
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
384
319
  };
385
320
  readonly SendGiphy: {
386
321
  readonly screen: typeof SendGiphyScreen;
@@ -428,14 +363,9 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
428
363
  }) => import("react/jsx-runtime").JSX.Element;
429
364
  readonly options: ({ navigation }: {
430
365
  route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
431
- navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, undefined>;
366
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
432
367
  theme: ReactNavigation.Theme;
433
- }) => {
434
- headerTitle: string;
435
- headerBackVisible: false;
436
- presentation: "modal";
437
- headerRight: (props: NativeStackHeaderRightProps) => import("react/jsx-runtime").JSX.Element;
438
- };
368
+ }) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
439
369
  };
440
370
  readonly NotFound: {
441
371
  readonly screen: typeof NotFound;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.tsx"],"names":[],"mappings":"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"}
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,10 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { HeaderBackButton } from '@react-navigation/elements';
3
2
  import { createNativeStackNavigator, } from '@react-navigation/native-stack';
4
3
  import { CardStyleInterpolators } from '@react-navigation/stack';
5
- import { Platform } from 'react-native';
6
- import { Icon } from '../components';
7
- import { HeaderDoneButton, HeaderTextButton, } from '../components/display/platform_modal_header_buttons';
4
+ import { composeOptions, createMinimalHeaderBackButton, withMinimalBack, withRightClose, withRightText, } from '../components/display/platform_modal_header_buttons';
8
5
  import { useDirectMessagesEnabled, useQualifiedByAge } from '../hooks';
9
6
  import { AttachmentActionsScreen, AttachmentActionsScreenOptions, } from '../screens/attachment_actions/attachment_actions_screen';
10
7
  import { AvatarPickerScreen, AvatarPickerScreenOptions, AvatarPickerCreateScreenOptions, } from '../screens/avatar_picker/avatar_picker_screen';
@@ -36,10 +33,6 @@ import { SettingsScreen } from '../screens/settings_screen';
36
33
  import { SystemMessagePeopleScreen, SystemMessagePeopleScreenOptions, } from '../screens/system_message_people_screen';
37
34
  import { TeamConversationScreen } from '../screens/team_conversation_screen';
38
35
  import { ScreenLayoutWithChatAccessGate } from './screenLayout';
39
- const HEADER_BACK_BUTTON_LAYOUT_RESET_STYLES = {
40
- marginLeft: Platform.select({ ios: -8, default: -3 }),
41
- marginRight: Platform.select({ ios: 0, default: 30 }),
42
- };
43
36
  export const NewConversationStack = createNativeStackNavigator({
44
37
  initialRouteName: 'ConversationNewEntry',
45
38
  screenOptions: {
@@ -49,33 +42,38 @@ export const NewConversationStack = createNativeStackNavigator({
49
42
  screens: {
50
43
  ConversationNewEntry: {
51
44
  screen: ConversationNewEntryScreen,
52
- options: ({ navigation }) => ({
45
+ options: ({ navigation }) => composeOptions({
53
46
  title: 'New conversation',
54
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: navigation.goBack, title: "Cancel" })),
55
47
  headerBackVisible: false,
56
- }),
48
+ }, withRightText({ text: 'Cancel', onPress: navigation.goBack })),
57
49
  },
58
50
  ConversationSelectGroupRecipients: {
59
51
  screen: ConversationSelectGroupRecipientsScreen,
60
- options: ({ navigation, route }) => ({
52
+ options: ({ navigation, route }) => composeOptions({
61
53
  title: 'New conversation',
62
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: () => navigation.popTo('Conversations', route.params), title: "Cancel" })),
63
- }),
54
+ }, withRightText({
55
+ text: 'Cancel',
56
+ onPress: () => navigation.popTo('Conversations', route.params),
57
+ })),
64
58
  },
65
59
  ConversationSelectTeamsILeadRecipients: {
66
60
  screen: ConversationSelectTeamsILeadRecipientsScreen,
67
- options: ({ navigation, route }) => ({
61
+ options: ({ navigation, route }) => composeOptions({
68
62
  title: 'New conversation',
69
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: () => navigation.popTo('Conversations', route.params), title: "Cancel" })),
70
- }),
63
+ }, withRightText({
64
+ text: 'Cancel',
65
+ onPress: () => navigation.popTo('Conversations', route.params),
66
+ })),
71
67
  },
72
68
  ConversationSelectDirectMessageRecipients: {
73
69
  screen: ConversationSelectDirectMessageRecipientsScreen,
74
70
  if: useDirectMessagesEnabled,
75
- options: ({ navigation, route }) => ({
71
+ options: ({ navigation, route }) => composeOptions({
76
72
  title: 'New conversation',
77
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: () => navigation.popTo('Conversations', route.params), title: "Cancel" })),
78
- }),
73
+ }, withRightText({
74
+ text: 'Cancel',
75
+ onPress: () => navigation.popTo('Conversations', route.params),
76
+ })),
79
77
  },
80
78
  ConversationFilterRecipients: {
81
79
  screen: ConversationFilterRecipientsScreen,
@@ -83,14 +81,16 @@ export const NewConversationStack = createNativeStackNavigator({
83
81
  },
84
82
  ConversationNew: {
85
83
  screen: ConversationNewScreen,
86
- options: ({ navigation, route }) => ({
84
+ options: ({ navigation, route }) => composeOptions({
87
85
  title: 'New conversation',
88
86
  headerLeft: () => null,
89
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: () => {
90
- const { chat_group_graph_id, group_source_app_name } = route.params;
91
- navigation.popTo('Conversations', { chat_group_graph_id, group_source_app_name });
92
- }, title: "Cancel" })),
93
- }),
87
+ }, withRightText({
88
+ text: 'Cancel',
89
+ onPress: () => {
90
+ const { chat_group_graph_id, group_source_app_name } = route.params;
91
+ navigation.popTo('Conversations', { chat_group_graph_id, group_source_app_name });
92
+ },
93
+ })),
94
94
  },
95
95
  AvatarPicker: {
96
96
  screen: AvatarPickerScreen,
@@ -106,11 +106,10 @@ export const ChatStack = createNativeStackNavigator({
106
106
  screens: {
107
107
  Conversations: {
108
108
  screen: ConversationsScreen,
109
- options: ({ route, navigation }) => ({
109
+ options: ({ route, navigation }) => composeOptions({
110
110
  headerTitle: route.params?.title ?? 'Chat',
111
111
  headerBackVisible: false,
112
- headerRight: (props) => (_jsx(HeaderBackButton, { backImage: () => _jsx(Icon, { name: "general.x", size: 18, color: props.tintColor }), onPress: navigation.goBack, ...props })),
113
- }),
112
+ }, withRightClose({ onPress: navigation.goBack })),
114
113
  },
115
114
  ConversationFilters: {
116
115
  screen: ConversationFiltersScreen,
@@ -118,13 +117,13 @@ export const ChatStack = createNativeStackNavigator({
118
117
  },
119
118
  Conversation: {
120
119
  screen: ConversationScreen,
121
- options: ({ route, navigation }) => ({
120
+ options: ({ route, navigation }) => composeOptions({
122
121
  headerTitle: (props) => {
123
122
  const { conversation_id, title, badge, deleted, muted } = route.params;
124
123
  return (_jsx(ConversationScreenTitle, { conversation_id: conversation_id, badge: badge, deleted: deleted, muted: muted, ...props, children: title ?? 'Conversation' }));
125
124
  },
126
- headerRight: (props) => (_jsx(HeaderBackButton, { backImage: () => _jsx(Icon, { name: "general.x", size: 18, color: props.tintColor }), onPress: () => navigation.getParent()?.goBack() })),
127
- headerLeft: props => (_jsx(HeaderBackButton, { style: HEADER_BACK_BUTTON_LAYOUT_RESET_STYLES, displayMode: "minimal", onPress: () => {
125
+ headerLeft: createMinimalHeaderBackButton({
126
+ onPress: () => {
128
127
  const params = route.params;
129
128
  if (params?.chat_group_graph_id) {
130
129
  // Ensure that conversations with a graph id pass them back to the conversation list
@@ -134,15 +133,13 @@ export const ChatStack = createNativeStackNavigator({
134
133
  else {
135
134
  navigation.goBack();
136
135
  }
137
- }, ...props })),
138
- }),
136
+ },
137
+ }),
138
+ }, withRightClose({ onPress: () => navigation.getParent()?.goBack() })),
139
139
  },
140
140
  ConversationReply: {
141
141
  screen: ConversationScreen,
142
- options: ({ route, navigation }) => ({
143
- title: route.params?.title ?? 'Reply',
144
- headerLeft: props => (_jsx(HeaderBackButton, { style: HEADER_BACK_BUTTON_LAYOUT_RESET_STYLES, displayMode: "minimal", onPress: () => navigation.goBack(), ...props })),
145
- }),
142
+ options: ({ route, navigation }) => composeOptions({ title: route.params?.title ?? 'Reply' }, withMinimalBack({ onPress: navigation.goBack })),
146
143
  },
147
144
  TeamConversation: {
148
145
  screen: TeamConversationScreen,
@@ -155,11 +152,10 @@ export const ChatStack = createNativeStackNavigator({
155
152
  },
156
153
  ConversationDetails: {
157
154
  screen: ConversationDetailsScreen,
158
- options: ({ navigation }) => ({
155
+ options: ({ navigation }) => composeOptions({
159
156
  presentation: 'modal',
160
157
  title: 'Conversation details',
161
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: navigation.goBack, title: "Done" })),
162
- }),
158
+ }, withRightText({ text: 'Done', onPress: navigation.goBack })),
163
159
  },
164
160
  AvatarPicker: {
165
161
  screen: AvatarPickerScreen,
@@ -167,19 +163,17 @@ export const ChatStack = createNativeStackNavigator({
167
163
  },
168
164
  ChatSettings: {
169
165
  screen: SettingsScreen,
170
- options: ({ navigation }) => ({
166
+ options: ({ navigation }) => composeOptions({
171
167
  title: 'Chat settings',
172
168
  headerBackVisible: false,
173
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: navigation.goBack, title: "Done" })),
174
- }),
169
+ }, withRightText({ text: 'Done', onPress: navigation.goBack })),
175
170
  },
176
171
  NotificationSettings: {
177
172
  screen: NotificationSettingsScreen,
178
- options: ({ navigation }) => ({
173
+ options: ({ navigation }) => composeOptions({
179
174
  title: 'Chat',
180
175
  headerBackVisible: false,
181
- headerRight: (props) => (_jsx(HeaderTextButton, { ...props, onPress: navigation.goBack, title: "Done" })),
182
- }),
176
+ }, withRightText({ text: 'Done', onPress: navigation.goBack })),
183
177
  },
184
178
  PreferredAppSelection: {
185
179
  screen: PreferredAppSelectionScreen,
@@ -189,10 +183,16 @@ export const ChatStack = createNativeStackNavigator({
189
183
  },
190
184
  GroupNotificationSettings: {
191
185
  screen: GroupNotificationSettingsScreen,
192
- options: ({ route, navigation }) => ({
193
- title: route.params?.title || 'Group Settings',
194
- headerRight: (props) => (_jsx(HeaderDoneButton, { ...props, navigation: navigation })),
195
- }),
186
+ options: ({ route, navigation }) => {
187
+ const title = route.params?.title || 'Group Settings';
188
+ // Done only shows when this is the entry screen (e.g. deep links);
189
+ // deeper in the stack the back button covers dismissal.
190
+ return navigation.getState().index === 0
191
+ ? composeOptions({
192
+ title,
193
+ }, withRightText({ text: 'Done', onPress: navigation.goBack }))
194
+ : { title };
195
+ },
196
196
  },
197
197
  GroupNotificationLevelSelect: {
198
198
  screen: GroupNotificationLevelSelectScreen,
@@ -213,11 +213,10 @@ export const ChatStack = createNativeStackNavigator({
213
213
  GroupConversationNew: {
214
214
  screen: ConversationNewScreen,
215
215
  if: useQualifiedByAge,
216
- options: ({ navigation }) => ({
216
+ options: ({ navigation }) => composeOptions({
217
217
  title: 'New conversation',
218
218
  headerLeft: () => null,
219
- headerRight: props => (_jsx(HeaderTextButton, { ...props, onPress: () => navigation.getParent()?.goBack(), title: "Cancel" })),
220
- }),
219
+ }, withRightText({ text: 'Cancel', onPress: () => navigation.getParent()?.goBack() })),
221
220
  },
222
221
  SendGiphy: {
223
222
  screen: SendGiphyScreen,
@@ -258,12 +257,11 @@ export const ChatStack = createNativeStackNavigator({
258
257
  },
259
258
  GetHelp: {
260
259
  screen: GetHelpScreen,
261
- options: ({ navigation }) => ({
260
+ options: ({ navigation }) => composeOptions({
262
261
  headerTitle: 'Get help',
263
262
  headerBackVisible: false,
264
263
  presentation: 'modal',
265
- headerRight: props => (_jsx(HeaderTextButton, { ...props, onPress: navigation.goBack, title: "Close" })),
266
- }),
264
+ }, withRightText({ text: 'Close', onPress: navigation.goBack })),
267
265
  },
268
266
  NotFound: {
269
267
  screen: NotFound,