@planningcenter/chat-react-native 4.4.1-qa-staging.37 → 4.4.1-qa-staging.38

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.
@@ -11,6 +11,7 @@ import { ConversationScreen } from '../screens/conversation_screen';
11
11
  import { ConversationSelectDirectMessageRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen';
12
12
  import { ConversationSelectTypeScreen } from '../screens/conversation_select_type_screen';
13
13
  import { ConversationsScreen } from '../screens/conversations/conversations_screen';
14
+ import { FlagTestScreen } from '../screens/flag_test_screen';
14
15
  import { GroupNotificationLevelSelectScreen } from '../screens/group_notification_level_select_screen';
15
16
  import { GroupNotificationSettingsScreen } from '../screens/group_notification_settings_screen';
16
17
  import { MessageActionsScreen } from '../screens/message_actions_screen';
@@ -178,6 +179,14 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
178
179
  theme: ReactNavigation.Theme;
179
180
  }) => NativeStackNavigationOptions;
180
181
  };
182
+ readonly FlagTest: {
183
+ readonly screen: typeof FlagTestScreen;
184
+ readonly options: ({ navigation }: {
185
+ route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
186
+ navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
187
+ theme: ReactNavigation.Theme;
188
+ }) => NativeStackNavigationOptions;
189
+ };
181
190
  readonly NotificationSettings: {
182
191
  readonly screen: typeof NotificationSettingsScreen;
183
192
  readonly options: ({ navigation }: {
@@ -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;AAShE,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,YAAY,EAAuB,MAAM,iCAAiC,CAAA;AACnF,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;AAU/D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;kCALA,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoF3D,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;kCAtFW,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsT3D,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;AAC1D,OAAO,EAGL,4BAA4B,EAC7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAShE,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;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D,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,YAAY,EAAuB,MAAM,iCAAiC,CAAA;AACnF,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;AAU/D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;kCALA,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoF3D,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;kCAtFW,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2T3D,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"}
@@ -19,6 +19,7 @@ import { ConversationSelectGroupRecipientsScreen } from '../screens/conversation
19
19
  import { ConversationSelectTeamsILeadRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen';
20
20
  import { ConversationSelectTypeScreen, ConversationSelectTypeScreenOptions } from '../screens/conversation_select_type_screen';
21
21
  import { ConversationsScreen } from '../screens/conversations/conversations_screen';
22
+ import { FlagTestScreen } from '../screens/flag_test_screen';
22
23
  import { GetHelpScreen } from '../screens/get_help_screen';
23
24
  import { GroupNotificationLevelSelectScreen, GroupNotificationLevelSelectScreenOptions } from '../screens/group_notification_level_select_screen';
24
25
  import { GroupNotificationSettingsScreen } from '../screens/group_notification_settings_screen';
@@ -241,6 +242,16 @@ export const ChatStack = createNativeStackNavigator({
241
242
  onPress: navigation.goBack
242
243
  }))
243
244
  },
245
+ FlagTest: {
246
+ screen: FlagTestScreen,
247
+ options: ({
248
+ navigation
249
+ }) => composeOptions({
250
+ title: 'Flag test'
251
+ }, withMinimalBack({
252
+ onPress: navigation.goBack
253
+ }))
254
+ },
244
255
  NotificationSettings: {
245
256
  screen: NotificationSettingsScreen,
246
257
  options: ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createNativeStackNavigator","CardStyleInterpolators","React","composeOptions","withMinimalBack","withRightClose","withRightDone","useDirectMessagesEligible","useQualifiedByAge","AttachmentActionsScreen","AttachmentActionsScreenOptions","AvatarPickerScreen","AvatarPickerScreenOptions","AvatarPickerCreateScreenOptions","BugReportScreen","BugReportScreenOptions","MessageReadReceiptsScreen","MessageReadReceiptsScreenOptions","ConversationDetailsScreen","ConversationFilterReceipientsScreenOptions","ConversationFilterRecipientsScreen","ConversationFiltersScreen","ConversationFiltersScreenOptions","ConversationNewScreen","ConversationNotificationLevelSelectScreen","ConversationNotificationLevelSelectScreenOptions","ConversationScreen","ConversationScreenTitle","ConversationNewEntryScreen","ConversationSelectDirectMessageRecipientsScreen","ConversationSelectGroupRecipientsScreen","ConversationSelectTeamsILeadRecipientsScreen","ConversationSelectTypeScreen","ConversationSelectTypeScreenOptions","ConversationsScreen","GetHelpScreen","GroupNotificationLevelSelectScreen","GroupNotificationLevelSelectScreenOptions","GroupNotificationSettingsScreen","MessageActionsScreen","MessageActionsScreenOptions","MessageReportScreen","MessageReportScreenOptions","NotFound","NotificationSettingsScreen","PreferredAppSelectionScreen","ReactionsScreen","ReactionsScreenOptions","SearchScreen","SearchScreenOptions","SendGiphyScreen","SendGiphyScreenOptions","SettingsScreen","SystemMessagePeopleScreen","SystemMessagePeopleScreenOptions","TeamConversationScreen","isLiquidGlassEnabled","ScreenLayoutWithChatAccessGate","jsx","_jsx","conversationGlassHeader","headerBlurEffect","globalScreenOptions","headerBackButtonDisplayMode","headerShadowVisible","headerTransparent","NewConversationStack","initialRouteName","screenOptions","screenLayout","screens","ConversationNewEntry","screen","options","navigation","title","headerBackVisible","onPress","goBack","ConversationSelectGroupRecipients","route","popTo","params","ConversationSelectTeamsILeadRecipients","ConversationSelectDirectMessageRecipients","if","ConversationFilterRecipients","ConversationNew","headerLeft","chat_group_graph_id","group_source_app_name","AvatarPicker","ChatStack","Conversations","headerTitle","ConversationFilters","Search","Conversation","props","conversation_id","badge","deleted","muted","children","getParent","ConversationReply","TeamConversation","animation","cardStyleInterpolator","forNoAnimation","ConversationDetails","presentation","ChatSettings","NotificationSettings","getState","index","PreferredAppSelection","GroupNotificationSettings","GroupNotificationLevelSelect","ConversationNotificationLevelSelect","New","headerShown","GroupConversationNew","SendGiphy","MessageActions","MessageReport","AttachmentActions","ConversationSelectType","Reactions","SystemMessagePeople","MessageReadReceipts","BugReport","GetHelp","linking","path"],"sources":["../../src/navigation/index.tsx"],"sourcesContent":["import { StaticParamList } from '@react-navigation/native'\nimport {\n createNativeStackNavigator,\n NativeStackHeaderRightProps,\n NativeStackNavigationOptions,\n} from '@react-navigation/native-stack'\nimport { CardStyleInterpolators } from '@react-navigation/stack'\nimport React from 'react'\nimport {\n composeOptions,\n withMinimalBack,\n withRightClose,\n withRightDone,\n} from '../components/display/platform_modal_header_buttons'\nimport { useDirectMessagesEligible, useQualifiedByAge } from '../hooks'\nimport {\n AttachmentActionsScreen,\n AttachmentActionsScreenOptions,\n} from '../screens/attachment_actions/attachment_actions_screen'\nimport {\n AvatarPickerScreen,\n AvatarPickerScreenOptions,\n AvatarPickerCreateScreenOptions,\n} from '../screens/avatar_picker/avatar_picker_screen'\nimport { BugReportScreen, BugReportScreenOptions } from '../screens/bug_report_screen'\nimport {\n MessageReadReceiptsScreen,\n MessageReadReceiptsScreenOptions,\n} from '../screens/conversation/message_read_receipts_screen'\nimport { ConversationDetailsScreen } from '../screens/conversation_details_screen'\nimport {\n ConversationFilterReceipientsScreenOptions,\n ConversationFilterRecipientsScreen,\n} from '../screens/conversation_filter_recipients/conversation_filter_recipients_screen'\nimport { ConversationFiltersParams } from '../screens/conversation_filters/screen_props'\nimport {\n ConversationFiltersScreen,\n ConversationFiltersScreenOptions,\n} from '../screens/conversation_filters_screen'\nimport { ConversationNewScreen } from '../screens/conversation_new/conversation_new_screen'\nimport {\n ConversationNotificationLevelSelectScreen,\n ConversationNotificationLevelSelectScreenOptions,\n} from '../screens/conversation_notification_level_select_screen'\nimport {\n ConversationRouteProps,\n ConversationScreen,\n ConversationScreenTitle,\n} from '../screens/conversation_screen'\nimport { ConversationNewEntryScreen } from '../screens/conversation_select_recipients/conversation_new_entry_screen'\nimport { ConversationSelectDirectMessageRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen'\nimport { ConversationSelectGroupRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_group_recipients_screen'\nimport { ConversationSelectTeamsILeadRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen'\nimport { ConversationSelectRecipientsParams } from '../screens/conversation_select_recipients/types/screen_props'\nimport {\n ConversationSelectTypeScreen,\n ConversationSelectTypeScreenOptions,\n} from '../screens/conversation_select_type_screen'\nimport { ConversationsScreen } from '../screens/conversations/conversations_screen'\nimport { GetHelpScreen } from '../screens/get_help_screen'\nimport {\n GroupNotificationLevelSelectScreen,\n GroupNotificationLevelSelectScreenOptions,\n} from '../screens/group_notification_level_select_screen'\nimport { GroupNotificationSettingsScreen } from '../screens/group_notification_settings_screen'\nimport {\n MessageActionsScreen,\n MessageActionsScreenOptions,\n} from '../screens/message_actions_screen'\nimport { MessageReportScreen, MessageReportScreenOptions } from '../screens/message_report_screen'\nimport { NotFound } from '../screens/not_found'\nimport { NotificationSettingsScreen } from '../screens/notification_settings_screen'\nimport { PreferredAppSelectionScreen } from '../screens/preferred_app_selection_screen'\nimport { ReactionsScreen, ReactionsScreenOptions } from '../screens/reactions_screen'\nimport { SearchScreen, SearchScreenOptions } from '../screens/search/search_screen'\nimport { SendGiphyScreen, SendGiphyScreenOptions } from '../screens/send_giphy_screen'\nimport { SettingsScreen } from '../screens/settings_screen'\nimport {\n SystemMessagePeopleScreen,\n SystemMessagePeopleScreenOptions,\n} from '../screens/system_message_people_screen'\nimport { TeamConversationScreen } from '../screens/team_conversation_screen'\nimport { isLiquidGlassEnabled } from '../utils/liquid_glass'\nimport { ScreenLayoutWithChatAccessGate } from './screenLayout'\n\nconst conversationGlassHeader = (): NativeStackNavigationOptions =>\n isLiquidGlassEnabled() ? { headerBlurEffect: 'systemChromeMaterial' } : {}\n\nconst globalScreenOptions: () => NativeStackNavigationOptions = () => ({\n headerBackButtonDisplayMode: 'minimal',\n ...(isLiquidGlassEnabled() ? { headerShadowVisible: false, headerTransparent: true } : {}),\n})\n\nexport const NewConversationStack = createNativeStackNavigator({\n initialRouteName: 'ConversationNewEntry',\n screenOptions: globalScreenOptions,\n screenLayout: ScreenLayoutWithChatAccessGate,\n screens: {\n ConversationNewEntry: {\n screen: ConversationNewEntryScreen,\n options: ({ navigation }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerBackVisible: false,\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n ConversationSelectGroupRecipients: {\n screen: ConversationSelectGroupRecipientsScreen,\n options: ({ navigation, route }) =>\n composeOptions(\n {\n title: 'New conversation',\n },\n withRightClose({\n onPress: () => navigation.popTo('Conversations', route.params),\n })\n ),\n },\n ConversationSelectTeamsILeadRecipients: {\n screen: ConversationSelectTeamsILeadRecipientsScreen,\n options: ({ navigation, route }) =>\n composeOptions(\n {\n title: 'New conversation',\n },\n withRightClose({\n onPress: () => navigation.popTo('Conversations', route.params),\n })\n ),\n },\n ConversationSelectDirectMessageRecipients: {\n screen: ConversationSelectDirectMessageRecipientsScreen,\n if: useDirectMessagesEligible,\n options: ({ navigation }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerBackVisible: false,\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n ConversationFilterRecipients: {\n screen: ConversationFilterRecipientsScreen,\n options: ConversationFilterReceipientsScreenOptions,\n },\n ConversationNew: {\n screen: ConversationNewScreen,\n options: ({ navigation, route }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerLeft: () => null,\n headerTransparent: false,\n },\n withRightClose({\n onPress: () => {\n const { chat_group_graph_id, group_source_app_name } =\n route.params as ConversationSelectRecipientsParams\n navigation.popTo('Conversations', { chat_group_graph_id, group_source_app_name })\n },\n })\n ),\n },\n AvatarPicker: {\n screen: AvatarPickerScreen,\n options: AvatarPickerCreateScreenOptions,\n },\n },\n})\n\nexport const ChatStack = createNativeStackNavigator({\n screenOptions: globalScreenOptions,\n screenLayout: ScreenLayoutWithChatAccessGate,\n screens: {\n Conversations: {\n screen: ConversationsScreen,\n options: ({ route, navigation }) =>\n composeOptions(\n {\n headerTitle: (route.params as { title?: string })?.title ?? 'Chat',\n headerBackVisible: false,\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n ConversationFilters: {\n screen: ConversationFiltersScreen,\n options: ConversationFiltersScreenOptions,\n },\n Search: {\n screen: SearchScreen,\n options: SearchScreenOptions,\n },\n Conversation: {\n screen: ConversationScreen,\n options: ({ route, navigation }) =>\n composeOptions(\n {\n ...conversationGlassHeader(),\n headerTitle: (props: NativeStackHeaderRightProps) => {\n const { conversation_id, title, badge, deleted, muted } =\n route.params as ConversationRouteProps\n\n return (\n <ConversationScreenTitle\n conversation_id={conversation_id}\n badge={badge}\n deleted={deleted}\n muted={muted}\n {...props}\n >\n {title ?? 'Conversation'}\n </ConversationScreenTitle>\n )\n },\n },\n withMinimalBack({\n onPress: () => {\n const params = route.params as ConversationRouteProps\n if ((params as ConversationFiltersParams)?.chat_group_graph_id) {\n // Ensure that conversations with a graph id pass them back to the conversation list\n const { chat_group_graph_id } = params\n navigation.popTo('Conversations', { chat_group_graph_id })\n } else {\n navigation.goBack()\n }\n },\n }),\n withRightClose({ onPress: () => navigation.getParent()?.goBack() })\n ),\n },\n ConversationReply: {\n screen: ConversationScreen,\n options: ({ route, navigation }) =>\n composeOptions(\n {\n ...conversationGlassHeader(),\n title: (route.params as ConversationRouteProps)?.title ?? 'Reply',\n },\n withMinimalBack({ onPress: navigation.goBack })\n ),\n },\n TeamConversation: {\n screen: TeamConversationScreen,\n if: useQualifiedByAge,\n options: {\n title: 'Finding conversation...',\n animation: 'none',\n cardStyleInterpolator: CardStyleInterpolators.forNoAnimation,\n },\n },\n ConversationDetails: {\n screen: ConversationDetailsScreen,\n options: ({ navigation }) =>\n composeOptions(\n {\n presentation: 'modal',\n title: 'Conversation details',\n },\n withRightDone({ onPress: navigation.goBack })\n ),\n },\n AvatarPicker: {\n screen: AvatarPickerScreen,\n options: AvatarPickerScreenOptions,\n },\n ChatSettings: {\n screen: SettingsScreen,\n options: ({ navigation }) =>\n composeOptions({ title: 'Chat settings' }, withMinimalBack({ onPress: navigation.goBack })),\n },\n NotificationSettings: {\n screen: NotificationSettingsScreen,\n options: ({ navigation }) =>\n navigation.getState().index === 0\n ? composeOptions(\n { title: 'Chat notifications' },\n withRightClose({ onPress: navigation.goBack })\n )\n : composeOptions(\n { title: 'Chat notifications' },\n withMinimalBack({ onPress: navigation.goBack })\n ),\n },\n PreferredAppSelection: {\n screen: PreferredAppSelectionScreen,\n options: ({ navigation }) =>\n composeOptions({ title: 'Preferred app' }, withMinimalBack({ onPress: navigation.goBack })),\n },\n GroupNotificationSettings: {\n screen: GroupNotificationSettingsScreen,\n options: ({ route, navigation }) => {\n const title = (route.params as { title?: string })?.title || 'Group Settings'\n\n // The dismiss button only shows when this is the entry screen (e.g.\n // deep links); deeper in the stack the back button covers dismissal.\n return navigation.getState().index === 0\n ? composeOptions(\n {\n title,\n },\n withRightClose({ onPress: navigation.goBack })\n )\n : composeOptions({ title }, withMinimalBack({ onPress: navigation.goBack }))\n },\n },\n GroupNotificationLevelSelect: {\n screen: GroupNotificationLevelSelectScreen,\n options: GroupNotificationLevelSelectScreenOptions,\n },\n ConversationNotificationLevelSelect: {\n screen: ConversationNotificationLevelSelectScreen,\n options: ConversationNotificationLevelSelectScreenOptions,\n },\n New: {\n screen: NewConversationStack,\n if: useQualifiedByAge,\n options: {\n headerShown: false,\n presentation: 'modal',\n },\n },\n GroupConversationNew: {\n screen: ConversationNewScreen,\n if: useQualifiedByAge,\n options: ({ navigation }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerLeft: () => null,\n headerTransparent: false,\n },\n withRightClose({ onPress: () => navigation.getParent()?.goBack() })\n ),\n },\n SendGiphy: {\n screen: SendGiphyScreen,\n options: SendGiphyScreenOptions,\n },\n MessageActions: {\n screen: MessageActionsScreen,\n // Something about sheetAllowedDetents declared inline breaks TS\n options: MessageActionsScreenOptions,\n },\n MessageReport: {\n screen: MessageReportScreen,\n options: MessageReportScreenOptions,\n },\n AttachmentActions: {\n screen: AttachmentActionsScreen,\n options: AttachmentActionsScreenOptions,\n },\n ConversationSelectType: {\n screen: ConversationSelectTypeScreen,\n options: ConversationSelectTypeScreenOptions,\n },\n Reactions: {\n screen: ReactionsScreen,\n options: ReactionsScreenOptions,\n },\n SystemMessagePeople: {\n screen: SystemMessagePeopleScreen,\n options: SystemMessagePeopleScreenOptions,\n },\n MessageReadReceipts: {\n screen: MessageReadReceiptsScreen,\n options: MessageReadReceiptsScreenOptions,\n },\n BugReport: {\n screen: BugReportScreen,\n options: BugReportScreenOptions,\n },\n GetHelp: {\n screen: GetHelpScreen,\n options: ({ navigation }) =>\n composeOptions(\n {\n headerTitle: 'Get help',\n headerBackVisible: false,\n presentation: 'modal',\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n NotFound: {\n screen: NotFound,\n options: {\n title: '404',\n },\n linking: {\n path: '*',\n },\n },\n },\n})\n\ntype ChatStackParamList = StaticParamList<typeof ChatStack>\n\ndeclare global {\n namespace ReactNavigation {\n interface RootParamList extends ChatStackParamList {}\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["createNativeStackNavigator","CardStyleInterpolators","React","composeOptions","withMinimalBack","withRightClose","withRightDone","useDirectMessagesEligible","useQualifiedByAge","AttachmentActionsScreen","AttachmentActionsScreenOptions","AvatarPickerScreen","AvatarPickerScreenOptions","AvatarPickerCreateScreenOptions","BugReportScreen","BugReportScreenOptions","MessageReadReceiptsScreen","MessageReadReceiptsScreenOptions","ConversationDetailsScreen","ConversationFilterReceipientsScreenOptions","ConversationFilterRecipientsScreen","ConversationFiltersScreen","ConversationFiltersScreenOptions","ConversationNewScreen","ConversationNotificationLevelSelectScreen","ConversationNotificationLevelSelectScreenOptions","ConversationScreen","ConversationScreenTitle","ConversationNewEntryScreen","ConversationSelectDirectMessageRecipientsScreen","ConversationSelectGroupRecipientsScreen","ConversationSelectTeamsILeadRecipientsScreen","ConversationSelectTypeScreen","ConversationSelectTypeScreenOptions","ConversationsScreen","FlagTestScreen","GetHelpScreen","GroupNotificationLevelSelectScreen","GroupNotificationLevelSelectScreenOptions","GroupNotificationSettingsScreen","MessageActionsScreen","MessageActionsScreenOptions","MessageReportScreen","MessageReportScreenOptions","NotFound","NotificationSettingsScreen","PreferredAppSelectionScreen","ReactionsScreen","ReactionsScreenOptions","SearchScreen","SearchScreenOptions","SendGiphyScreen","SendGiphyScreenOptions","SettingsScreen","SystemMessagePeopleScreen","SystemMessagePeopleScreenOptions","TeamConversationScreen","isLiquidGlassEnabled","ScreenLayoutWithChatAccessGate","jsx","_jsx","conversationGlassHeader","headerBlurEffect","globalScreenOptions","headerBackButtonDisplayMode","headerShadowVisible","headerTransparent","NewConversationStack","initialRouteName","screenOptions","screenLayout","screens","ConversationNewEntry","screen","options","navigation","title","headerBackVisible","onPress","goBack","ConversationSelectGroupRecipients","route","popTo","params","ConversationSelectTeamsILeadRecipients","ConversationSelectDirectMessageRecipients","if","ConversationFilterRecipients","ConversationNew","headerLeft","chat_group_graph_id","group_source_app_name","AvatarPicker","ChatStack","Conversations","headerTitle","ConversationFilters","Search","Conversation","props","conversation_id","badge","deleted","muted","children","getParent","ConversationReply","TeamConversation","animation","cardStyleInterpolator","forNoAnimation","ConversationDetails","presentation","ChatSettings","FlagTest","NotificationSettings","getState","index","PreferredAppSelection","GroupNotificationSettings","GroupNotificationLevelSelect","ConversationNotificationLevelSelect","New","headerShown","GroupConversationNew","SendGiphy","MessageActions","MessageReport","AttachmentActions","ConversationSelectType","Reactions","SystemMessagePeople","MessageReadReceipts","BugReport","GetHelp","linking","path"],"sources":["../../src/navigation/index.tsx"],"sourcesContent":["import { StaticParamList } from '@react-navigation/native'\nimport {\n createNativeStackNavigator,\n NativeStackHeaderRightProps,\n NativeStackNavigationOptions,\n} from '@react-navigation/native-stack'\nimport { CardStyleInterpolators } from '@react-navigation/stack'\nimport React from 'react'\nimport {\n composeOptions,\n withMinimalBack,\n withRightClose,\n withRightDone,\n} from '../components/display/platform_modal_header_buttons'\nimport { useDirectMessagesEligible, useQualifiedByAge } from '../hooks'\nimport {\n AttachmentActionsScreen,\n AttachmentActionsScreenOptions,\n} from '../screens/attachment_actions/attachment_actions_screen'\nimport {\n AvatarPickerScreen,\n AvatarPickerScreenOptions,\n AvatarPickerCreateScreenOptions,\n} from '../screens/avatar_picker/avatar_picker_screen'\nimport { BugReportScreen, BugReportScreenOptions } from '../screens/bug_report_screen'\nimport {\n MessageReadReceiptsScreen,\n MessageReadReceiptsScreenOptions,\n} from '../screens/conversation/message_read_receipts_screen'\nimport { ConversationDetailsScreen } from '../screens/conversation_details_screen'\nimport {\n ConversationFilterReceipientsScreenOptions,\n ConversationFilterRecipientsScreen,\n} from '../screens/conversation_filter_recipients/conversation_filter_recipients_screen'\nimport { ConversationFiltersParams } from '../screens/conversation_filters/screen_props'\nimport {\n ConversationFiltersScreen,\n ConversationFiltersScreenOptions,\n} from '../screens/conversation_filters_screen'\nimport { ConversationNewScreen } from '../screens/conversation_new/conversation_new_screen'\nimport {\n ConversationNotificationLevelSelectScreen,\n ConversationNotificationLevelSelectScreenOptions,\n} from '../screens/conversation_notification_level_select_screen'\nimport {\n ConversationRouteProps,\n ConversationScreen,\n ConversationScreenTitle,\n} from '../screens/conversation_screen'\nimport { ConversationNewEntryScreen } from '../screens/conversation_select_recipients/conversation_new_entry_screen'\nimport { ConversationSelectDirectMessageRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen'\nimport { ConversationSelectGroupRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_group_recipients_screen'\nimport { ConversationSelectTeamsILeadRecipientsScreen } from '../screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen'\nimport { ConversationSelectRecipientsParams } from '../screens/conversation_select_recipients/types/screen_props'\nimport {\n ConversationSelectTypeScreen,\n ConversationSelectTypeScreenOptions,\n} from '../screens/conversation_select_type_screen'\nimport { ConversationsScreen } from '../screens/conversations/conversations_screen'\nimport { FlagTestScreen } from '../screens/flag_test_screen'\nimport { GetHelpScreen } from '../screens/get_help_screen'\nimport {\n GroupNotificationLevelSelectScreen,\n GroupNotificationLevelSelectScreenOptions,\n} from '../screens/group_notification_level_select_screen'\nimport { GroupNotificationSettingsScreen } from '../screens/group_notification_settings_screen'\nimport {\n MessageActionsScreen,\n MessageActionsScreenOptions,\n} from '../screens/message_actions_screen'\nimport { MessageReportScreen, MessageReportScreenOptions } from '../screens/message_report_screen'\nimport { NotFound } from '../screens/not_found'\nimport { NotificationSettingsScreen } from '../screens/notification_settings_screen'\nimport { PreferredAppSelectionScreen } from '../screens/preferred_app_selection_screen'\nimport { ReactionsScreen, ReactionsScreenOptions } from '../screens/reactions_screen'\nimport { SearchScreen, SearchScreenOptions } from '../screens/search/search_screen'\nimport { SendGiphyScreen, SendGiphyScreenOptions } from '../screens/send_giphy_screen'\nimport { SettingsScreen } from '../screens/settings_screen'\nimport {\n SystemMessagePeopleScreen,\n SystemMessagePeopleScreenOptions,\n} from '../screens/system_message_people_screen'\nimport { TeamConversationScreen } from '../screens/team_conversation_screen'\nimport { isLiquidGlassEnabled } from '../utils/liquid_glass'\nimport { ScreenLayoutWithChatAccessGate } from './screenLayout'\n\nconst conversationGlassHeader = (): NativeStackNavigationOptions =>\n isLiquidGlassEnabled() ? { headerBlurEffect: 'systemChromeMaterial' } : {}\n\nconst globalScreenOptions: () => NativeStackNavigationOptions = () => ({\n headerBackButtonDisplayMode: 'minimal',\n ...(isLiquidGlassEnabled() ? { headerShadowVisible: false, headerTransparent: true } : {}),\n})\n\nexport const NewConversationStack = createNativeStackNavigator({\n initialRouteName: 'ConversationNewEntry',\n screenOptions: globalScreenOptions,\n screenLayout: ScreenLayoutWithChatAccessGate,\n screens: {\n ConversationNewEntry: {\n screen: ConversationNewEntryScreen,\n options: ({ navigation }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerBackVisible: false,\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n ConversationSelectGroupRecipients: {\n screen: ConversationSelectGroupRecipientsScreen,\n options: ({ navigation, route }) =>\n composeOptions(\n {\n title: 'New conversation',\n },\n withRightClose({\n onPress: () => navigation.popTo('Conversations', route.params),\n })\n ),\n },\n ConversationSelectTeamsILeadRecipients: {\n screen: ConversationSelectTeamsILeadRecipientsScreen,\n options: ({ navigation, route }) =>\n composeOptions(\n {\n title: 'New conversation',\n },\n withRightClose({\n onPress: () => navigation.popTo('Conversations', route.params),\n })\n ),\n },\n ConversationSelectDirectMessageRecipients: {\n screen: ConversationSelectDirectMessageRecipientsScreen,\n if: useDirectMessagesEligible,\n options: ({ navigation }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerBackVisible: false,\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n ConversationFilterRecipients: {\n screen: ConversationFilterRecipientsScreen,\n options: ConversationFilterReceipientsScreenOptions,\n },\n ConversationNew: {\n screen: ConversationNewScreen,\n options: ({ navigation, route }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerLeft: () => null,\n headerTransparent: false,\n },\n withRightClose({\n onPress: () => {\n const { chat_group_graph_id, group_source_app_name } =\n route.params as ConversationSelectRecipientsParams\n navigation.popTo('Conversations', { chat_group_graph_id, group_source_app_name })\n },\n })\n ),\n },\n AvatarPicker: {\n screen: AvatarPickerScreen,\n options: AvatarPickerCreateScreenOptions,\n },\n },\n})\n\nexport const ChatStack = createNativeStackNavigator({\n screenOptions: globalScreenOptions,\n screenLayout: ScreenLayoutWithChatAccessGate,\n screens: {\n Conversations: {\n screen: ConversationsScreen,\n options: ({ route, navigation }) =>\n composeOptions(\n {\n headerTitle: (route.params as { title?: string })?.title ?? 'Chat',\n headerBackVisible: false,\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n ConversationFilters: {\n screen: ConversationFiltersScreen,\n options: ConversationFiltersScreenOptions,\n },\n Search: {\n screen: SearchScreen,\n options: SearchScreenOptions,\n },\n Conversation: {\n screen: ConversationScreen,\n options: ({ route, navigation }) =>\n composeOptions(\n {\n ...conversationGlassHeader(),\n headerTitle: (props: NativeStackHeaderRightProps) => {\n const { conversation_id, title, badge, deleted, muted } =\n route.params as ConversationRouteProps\n\n return (\n <ConversationScreenTitle\n conversation_id={conversation_id}\n badge={badge}\n deleted={deleted}\n muted={muted}\n {...props}\n >\n {title ?? 'Conversation'}\n </ConversationScreenTitle>\n )\n },\n },\n withMinimalBack({\n onPress: () => {\n const params = route.params as ConversationRouteProps\n if ((params as ConversationFiltersParams)?.chat_group_graph_id) {\n // Ensure that conversations with a graph id pass them back to the conversation list\n const { chat_group_graph_id } = params\n navigation.popTo('Conversations', { chat_group_graph_id })\n } else {\n navigation.goBack()\n }\n },\n }),\n withRightClose({ onPress: () => navigation.getParent()?.goBack() })\n ),\n },\n ConversationReply: {\n screen: ConversationScreen,\n options: ({ route, navigation }) =>\n composeOptions(\n {\n ...conversationGlassHeader(),\n title: (route.params as ConversationRouteProps)?.title ?? 'Reply',\n },\n withMinimalBack({ onPress: navigation.goBack })\n ),\n },\n TeamConversation: {\n screen: TeamConversationScreen,\n if: useQualifiedByAge,\n options: {\n title: 'Finding conversation...',\n animation: 'none',\n cardStyleInterpolator: CardStyleInterpolators.forNoAnimation,\n },\n },\n ConversationDetails: {\n screen: ConversationDetailsScreen,\n options: ({ navigation }) =>\n composeOptions(\n {\n presentation: 'modal',\n title: 'Conversation details',\n },\n withRightDone({ onPress: navigation.goBack })\n ),\n },\n AvatarPicker: {\n screen: AvatarPickerScreen,\n options: AvatarPickerScreenOptions,\n },\n ChatSettings: {\n screen: SettingsScreen,\n options: ({ navigation }) =>\n composeOptions({ title: 'Chat settings' }, withMinimalBack({ onPress: navigation.goBack })),\n },\n FlagTest: {\n screen: FlagTestScreen,\n options: ({ navigation }) =>\n composeOptions({ title: 'Flag test' }, withMinimalBack({ onPress: navigation.goBack })),\n },\n NotificationSettings: {\n screen: NotificationSettingsScreen,\n options: ({ navigation }) =>\n navigation.getState().index === 0\n ? composeOptions(\n { title: 'Chat notifications' },\n withRightClose({ onPress: navigation.goBack })\n )\n : composeOptions(\n { title: 'Chat notifications' },\n withMinimalBack({ onPress: navigation.goBack })\n ),\n },\n PreferredAppSelection: {\n screen: PreferredAppSelectionScreen,\n options: ({ navigation }) =>\n composeOptions({ title: 'Preferred app' }, withMinimalBack({ onPress: navigation.goBack })),\n },\n GroupNotificationSettings: {\n screen: GroupNotificationSettingsScreen,\n options: ({ route, navigation }) => {\n const title = (route.params as { title?: string })?.title || 'Group Settings'\n\n // The dismiss button only shows when this is the entry screen (e.g.\n // deep links); deeper in the stack the back button covers dismissal.\n return navigation.getState().index === 0\n ? composeOptions(\n {\n title,\n },\n withRightClose({ onPress: navigation.goBack })\n )\n : composeOptions({ title }, withMinimalBack({ onPress: navigation.goBack }))\n },\n },\n GroupNotificationLevelSelect: {\n screen: GroupNotificationLevelSelectScreen,\n options: GroupNotificationLevelSelectScreenOptions,\n },\n ConversationNotificationLevelSelect: {\n screen: ConversationNotificationLevelSelectScreen,\n options: ConversationNotificationLevelSelectScreenOptions,\n },\n New: {\n screen: NewConversationStack,\n if: useQualifiedByAge,\n options: {\n headerShown: false,\n presentation: 'modal',\n },\n },\n GroupConversationNew: {\n screen: ConversationNewScreen,\n if: useQualifiedByAge,\n options: ({ navigation }) =>\n composeOptions(\n {\n title: 'New conversation',\n headerLeft: () => null,\n headerTransparent: false,\n },\n withRightClose({ onPress: () => navigation.getParent()?.goBack() })\n ),\n },\n SendGiphy: {\n screen: SendGiphyScreen,\n options: SendGiphyScreenOptions,\n },\n MessageActions: {\n screen: MessageActionsScreen,\n // Something about sheetAllowedDetents declared inline breaks TS\n options: MessageActionsScreenOptions,\n },\n MessageReport: {\n screen: MessageReportScreen,\n options: MessageReportScreenOptions,\n },\n AttachmentActions: {\n screen: AttachmentActionsScreen,\n options: AttachmentActionsScreenOptions,\n },\n ConversationSelectType: {\n screen: ConversationSelectTypeScreen,\n options: ConversationSelectTypeScreenOptions,\n },\n Reactions: {\n screen: ReactionsScreen,\n options: ReactionsScreenOptions,\n },\n SystemMessagePeople: {\n screen: SystemMessagePeopleScreen,\n options: SystemMessagePeopleScreenOptions,\n },\n MessageReadReceipts: {\n screen: MessageReadReceiptsScreen,\n options: MessageReadReceiptsScreenOptions,\n },\n BugReport: {\n screen: BugReportScreen,\n options: BugReportScreenOptions,\n },\n GetHelp: {\n screen: GetHelpScreen,\n options: ({ navigation }) =>\n composeOptions(\n {\n headerTitle: 'Get help',\n headerBackVisible: false,\n presentation: 'modal',\n },\n withRightClose({ onPress: navigation.goBack })\n ),\n },\n NotFound: {\n screen: NotFound,\n options: {\n title: '404',\n },\n linking: {\n path: '*',\n },\n },\n },\n})\n\ntype ChatStackParamList = StaticParamList<typeof ChatStack>\n\ndeclare global {\n namespace ReactNavigation {\n interface RootParamList extends ChatStackParamList {}\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare function FlagTestScreen(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=flag_test_screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flag_test_screen.d.ts","sourceRoot":"","sources":["../../src/screens/flag_test_screen.tsx"],"names":[],"mappings":"AAiEA,wBAAgB,cAAc,4CAuB7B"}
@@ -0,0 +1,274 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { useQuery } from '@tanstack/react-query';
3
+ import React from 'react';
4
+ import { ScrollView, StyleSheet, View } from 'react-native';
5
+ import { Heading, Text } from '../components';
6
+ import { useApiClient, useTheme } from '../hooks';
7
+ import { chatReactNativeVersion } from '../utils/package_version';
8
+
9
+ // Staging-only: checks the test flags from planningcenter/chat#2642 on both API versions. Never merge.
10
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
11
+ const OLD_VERSION = '2018-08-01';
12
+ const NEW_VERSION = '2026-10-26';
13
+ const TEST_FLAGS = {
14
+ ROLLOUT_expected_on_because_meets_minimum_crn_version: {
15
+ old: true,
16
+ new: true
17
+ },
18
+ ROLLOUT_expected_off_because_below_minimum_crn_version: {
19
+ old: true,
20
+ new: false
21
+ },
22
+ ROLLOUT_expected_on_because_meets_minimum_host_version: {
23
+ old: true,
24
+ new: true
25
+ },
26
+ ROLLOUT_expected_off_because_below_minimum_host_version: {
27
+ old: true,
28
+ new: false,
29
+ note: 'Only checked inside Church Center or Services; other hosts see it on'
30
+ },
31
+ ROLLOUT_expected_off_because_legacy_false: {
32
+ old: false,
33
+ new: true
34
+ },
35
+ ROLLOUT_expected_off_because_killed: {
36
+ old: false,
37
+ new: false,
38
+ note: 'Needs DISABLE_MOBILE_ROLLOUT_expected_off_because_killed enabled in staging Flipper'
39
+ },
40
+ ROLLOUT_expected_off_because_fixed_off: {
41
+ old: false,
42
+ new: false
43
+ },
44
+ ROLLOUT_expected_on_because_flipper: {
45
+ old: true,
46
+ new: true,
47
+ note: 'Needs a staging Flipper record enabled for your org'
48
+ },
49
+ ROLLOUT_expected_off_because_unregistered: {
50
+ old: false,
51
+ new: false
52
+ }
53
+ };
54
+ const flagNames = Object.keys(TEST_FLAGS);
55
+ const useFlagAnswers = version => {
56
+ const $ = _c(8);
57
+ const apiClient = useApiClient();
58
+ let t0;
59
+ if ($[0] !== version) {
60
+ t0 = ["flag-test", version];
61
+ $[0] = version;
62
+ $[1] = t0;
63
+ } else {
64
+ t0 = $[1];
65
+ }
66
+ let t1;
67
+ if ($[2] !== apiClient || $[3] !== version) {
68
+ t1 = async () => {
69
+ const response = await apiClient.chat.get({
70
+ url: "/me/features",
71
+ headers: {
72
+ "X-PCO-API-Version": version,
73
+ "X-PCO-Chat-React-Native-Version": chatReactNativeVersion
74
+ },
75
+ data: {
76
+ where: {
77
+ name: flagNames.join(",")
78
+ },
79
+ fields: {
80
+ Feature: ["name", "enabled"]
81
+ }
82
+ }
83
+ });
84
+ return Object.fromEntries(response.data.map(_temp));
85
+ };
86
+ $[2] = apiClient;
87
+ $[3] = version;
88
+ $[4] = t1;
89
+ } else {
90
+ t1 = $[4];
91
+ }
92
+ let t2;
93
+ if ($[5] !== t0 || $[6] !== t1) {
94
+ t2 = {
95
+ queryKey: t0,
96
+ queryFn: t1
97
+ };
98
+ $[5] = t0;
99
+ $[6] = t1;
100
+ $[7] = t2;
101
+ } else {
102
+ t2 = $[7];
103
+ }
104
+ return useQuery(t2);
105
+ };
106
+ export function FlagTestScreen() {
107
+ const $ = _c(16);
108
+ const styles = useStyles();
109
+ const oldAnswers = useFlagAnswers(OLD_VERSION);
110
+ const newAnswers = useFlagAnswers(NEW_VERSION);
111
+ const t0 = styles.container;
112
+ let t1;
113
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
114
+ t1 = /*#__PURE__*/_jsxs(Text, {
115
+ variant: "tertiary",
116
+ children: ["Sending chat-react-native ", chatReactNativeVersion, ". Old is ", OLD_VERSION, ", new is", " ", NEW_VERSION, "."]
117
+ });
118
+ $[0] = t1;
119
+ } else {
120
+ t1 = $[0];
121
+ }
122
+ let t2;
123
+ if ($[1] !== oldAnswers.error || $[2] !== styles.fail) {
124
+ t2 = oldAnswers.error && /*#__PURE__*/_jsxs(Text, {
125
+ style: styles.fail,
126
+ children: ["Old: ", String(oldAnswers.error)]
127
+ });
128
+ $[1] = oldAnswers.error;
129
+ $[2] = styles.fail;
130
+ $[3] = t2;
131
+ } else {
132
+ t2 = $[3];
133
+ }
134
+ let t3;
135
+ if ($[4] !== newAnswers.error || $[5] !== styles.fail) {
136
+ t3 = newAnswers.error && /*#__PURE__*/_jsxs(Text, {
137
+ style: styles.fail,
138
+ children: ["New: ", String(newAnswers.error)]
139
+ });
140
+ $[4] = newAnswers.error;
141
+ $[5] = styles.fail;
142
+ $[6] = t3;
143
+ } else {
144
+ t3 = $[6];
145
+ }
146
+ let t4;
147
+ if ($[7] !== newAnswers.data || $[8] !== oldAnswers.data || $[9] !== styles.row) {
148
+ t4 = flagNames.map(name => /*#__PURE__*/_jsxs(View, {
149
+ style: styles.row,
150
+ children: [/*#__PURE__*/_jsx(Heading, {
151
+ variant: "h3",
152
+ children: name.replace("ROLLOUT_", "")
153
+ }), /*#__PURE__*/_jsx(Answer, {
154
+ label: "Old",
155
+ expected: TEST_FLAGS[name].old,
156
+ actual: oldAnswers.data?.[name]
157
+ }), /*#__PURE__*/_jsx(Answer, {
158
+ label: "New",
159
+ expected: TEST_FLAGS[name].new,
160
+ actual: newAnswers.data?.[name]
161
+ }), TEST_FLAGS[name].note && /*#__PURE__*/_jsx(Text, {
162
+ variant: "tertiary",
163
+ children: TEST_FLAGS[name].note
164
+ })]
165
+ }, name));
166
+ $[7] = newAnswers.data;
167
+ $[8] = oldAnswers.data;
168
+ $[9] = styles.row;
169
+ $[10] = t4;
170
+ } else {
171
+ t4 = $[10];
172
+ }
173
+ let t5;
174
+ if ($[11] !== styles.container || $[12] !== t2 || $[13] !== t3 || $[14] !== t4) {
175
+ t5 = /*#__PURE__*/_jsxs(ScrollView, {
176
+ contentContainerStyle: t0,
177
+ children: [t1, t2, t3, t4]
178
+ });
179
+ $[11] = styles.container;
180
+ $[12] = t2;
181
+ $[13] = t3;
182
+ $[14] = t4;
183
+ $[15] = t5;
184
+ } else {
185
+ t5 = $[15];
186
+ }
187
+ return t5;
188
+ }
189
+ function Answer(t0) {
190
+ const $ = _c(8);
191
+ const {
192
+ label,
193
+ expected,
194
+ actual
195
+ } = t0;
196
+ const styles = useStyles();
197
+ const onOff = _temp2;
198
+ if (actual === undefined) {
199
+ let t1;
200
+ if ($[0] !== label) {
201
+ t1 = /*#__PURE__*/_jsxs(Text, {
202
+ variant: "secondary",
203
+ children: [label, ": \u2026"]
204
+ });
205
+ $[0] = label;
206
+ $[1] = t1;
207
+ } else {
208
+ t1 = $[1];
209
+ }
210
+ return t1;
211
+ }
212
+ const passed = actual === expected;
213
+ const t1 = passed ? styles.pass : styles.fail;
214
+ const t2 = passed ? "\u2713" : "\u2717";
215
+ const t3 = onOff(actual);
216
+ const t4 = onOff(expected);
217
+ let t5;
218
+ if ($[2] !== label || $[3] !== t1 || $[4] !== t2 || $[5] !== t3 || $[6] !== t4) {
219
+ t5 = /*#__PURE__*/_jsxs(Text, {
220
+ style: t1,
221
+ children: [t2, " ", label, ": ", t3, " (expected ", t4, ")"]
222
+ });
223
+ $[2] = label;
224
+ $[3] = t1;
225
+ $[4] = t2;
226
+ $[5] = t3;
227
+ $[6] = t4;
228
+ $[7] = t5;
229
+ } else {
230
+ t5 = $[7];
231
+ }
232
+ return t5;
233
+ }
234
+ function _temp2(value) {
235
+ return value ? "on" : "off";
236
+ }
237
+ const useStyles = () => {
238
+ const $ = _c(4);
239
+ const {
240
+ colors
241
+ } = useTheme();
242
+ let t0;
243
+ if ($[0] !== colors.borderColorDefaultBase || $[1] !== colors.statusErrorText || $[2] !== colors.statusSuccessIcon) {
244
+ t0 = StyleSheet.create({
245
+ container: {
246
+ padding: 16,
247
+ gap: 16
248
+ },
249
+ row: {
250
+ gap: 4,
251
+ paddingBottom: 12,
252
+ borderBottomWidth: 1,
253
+ borderBottomColor: colors.borderColorDefaultBase
254
+ },
255
+ pass: {
256
+ color: colors.statusSuccessIcon
257
+ },
258
+ fail: {
259
+ color: colors.statusErrorText
260
+ }
261
+ });
262
+ $[0] = colors.borderColorDefaultBase;
263
+ $[1] = colors.statusErrorText;
264
+ $[2] = colors.statusSuccessIcon;
265
+ $[3] = t0;
266
+ } else {
267
+ t0 = $[3];
268
+ }
269
+ return t0;
270
+ };
271
+ function _temp(feature) {
272
+ return [feature.name, feature.enabled];
273
+ }
274
+ //# sourceMappingURL=flag_test_screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flag_test_screen.js","names":["useQuery","React","ScrollView","StyleSheet","View","Heading","Text","useApiClient","useTheme","chatReactNativeVersion","jsxs","_jsxs","jsx","_jsx","OLD_VERSION","NEW_VERSION","TEST_FLAGS","ROLLOUT_expected_on_because_meets_minimum_crn_version","old","new","ROLLOUT_expected_off_because_below_minimum_crn_version","ROLLOUT_expected_on_because_meets_minimum_host_version","ROLLOUT_expected_off_because_below_minimum_host_version","note","ROLLOUT_expected_off_because_legacy_false","ROLLOUT_expected_off_because_killed","ROLLOUT_expected_off_because_fixed_off","ROLLOUT_expected_on_because_flipper","ROLLOUT_expected_off_because_unregistered","flagNames","Object","keys","useFlagAnswers","version","$","_c","apiClient","t0","t1","response","chat","get","url","headers","data","where","name","join","fields","Feature","fromEntries","map","_temp","t2","queryKey","queryFn","FlagTestScreen","styles","useStyles","oldAnswers","newAnswers","container","Symbol","for","variant","children","error","fail","style","String","t3","t4","row","replace","Answer","label","expected","actual","t5","contentContainerStyle","onOff","_temp2","undefined","passed","pass","value","colors","borderColorDefaultBase","statusErrorText","statusSuccessIcon","create","padding","gap","paddingBottom","borderBottomWidth","borderBottomColor","color","feature","enabled"],"sources":["../../src/screens/flag_test_screen.tsx"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport React from 'react'\nimport { ScrollView, StyleSheet, View } from 'react-native'\nimport { Heading, Text } from '../components'\nimport { useApiClient, useTheme } from '../hooks'\nimport { ApiCollection } from '../types'\nimport type { FeatureResource } from '../types/resources/feature_resource'\nimport { chatReactNativeVersion } from '../utils/package_version'\n\n// Staging-only: checks the test flags from planningcenter/chat#2642 on both API versions. Never merge.\n\nconst OLD_VERSION = '2018-08-01'\nconst NEW_VERSION = '2026-10-26'\n\ntype Expected = { old: boolean; new: boolean; note?: string }\n\nconst TEST_FLAGS: Record<string, Expected> = {\n ROLLOUT_expected_on_because_meets_minimum_crn_version: { old: true, new: true },\n ROLLOUT_expected_off_because_below_minimum_crn_version: { old: true, new: false },\n ROLLOUT_expected_on_because_meets_minimum_host_version: { old: true, new: true },\n ROLLOUT_expected_off_because_below_minimum_host_version: {\n old: true,\n new: false,\n note: 'Only checked inside Church Center or Services; other hosts see it on',\n },\n ROLLOUT_expected_off_because_legacy_false: { old: false, new: true },\n ROLLOUT_expected_off_because_killed: {\n old: false,\n new: false,\n note: 'Needs DISABLE_MOBILE_ROLLOUT_expected_off_because_killed enabled in staging Flipper',\n },\n ROLLOUT_expected_off_because_fixed_off: { old: false, new: false },\n ROLLOUT_expected_on_because_flipper: {\n old: true,\n new: true,\n note: 'Needs a staging Flipper record enabled for your org',\n },\n ROLLOUT_expected_off_because_unregistered: { old: false, new: false },\n}\n\nconst flagNames = Object.keys(TEST_FLAGS)\n\nconst useFlagAnswers = (version: string) => {\n const apiClient = useApiClient()\n\n return useQuery({\n queryKey: ['flag-test', version],\n queryFn: async () => {\n const response = await apiClient.chat.get<ApiCollection<FeatureResource>>({\n url: '/me/features',\n headers: {\n 'X-PCO-API-Version': version,\n 'X-PCO-Chat-React-Native-Version': chatReactNativeVersion,\n },\n data: {\n where: { name: flagNames.join(',') },\n fields: { Feature: ['name', 'enabled'] },\n },\n })\n\n return Object.fromEntries(response.data.map(feature => [feature.name, feature.enabled]))\n },\n })\n}\n\nexport function FlagTestScreen() {\n const styles = useStyles()\n const oldAnswers = useFlagAnswers(OLD_VERSION)\n const newAnswers = useFlagAnswers(NEW_VERSION)\n\n return (\n <ScrollView contentContainerStyle={styles.container}>\n <Text variant=\"tertiary\">\n Sending chat-react-native {chatReactNativeVersion}. Old is {OLD_VERSION}, new is{' '}\n {NEW_VERSION}.\n </Text>\n {oldAnswers.error && <Text style={styles.fail}>Old: {String(oldAnswers.error)}</Text>}\n {newAnswers.error && <Text style={styles.fail}>New: {String(newAnswers.error)}</Text>}\n {flagNames.map(name => (\n <View key={name} style={styles.row}>\n <Heading variant=\"h3\">{name.replace('ROLLOUT_', '')}</Heading>\n <Answer label=\"Old\" expected={TEST_FLAGS[name].old} actual={oldAnswers.data?.[name]} />\n <Answer label=\"New\" expected={TEST_FLAGS[name].new} actual={newAnswers.data?.[name]} />\n {TEST_FLAGS[name].note && <Text variant=\"tertiary\">{TEST_FLAGS[name].note}</Text>}\n </View>\n ))}\n </ScrollView>\n )\n}\n\nfunction Answer({\n label,\n expected,\n actual,\n}: {\n label: string\n expected: boolean\n actual: boolean | undefined\n}) {\n const styles = useStyles()\n const onOff = (value: boolean) => (value ? 'on' : 'off')\n\n if (actual === undefined) return <Text variant=\"secondary\">{label}: …</Text>\n\n const passed = actual === expected\n return (\n <Text style={passed ? styles.pass : styles.fail}>\n {passed ? '✓' : '✗'} {label}: {onOff(actual)} (expected {onOff(expected)})\n </Text>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n container: {\n padding: 16,\n gap: 16,\n },\n row: {\n gap: 4,\n paddingBottom: 12,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n pass: {\n color: colors.statusSuccessIcon,\n },\n fail: {\n color: colors.statusErrorText,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"settings_screen.d.ts","sourceRoot":"","sources":["../../src/screens/settings_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAU3E,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;AAEvD,wBAAgB,cAAc,CAAC,EAAE,EAAE,mBAAmB,2CA+CrD"}
1
+ {"version":3,"file":"settings_screen.d.ts","sourceRoot":"","sources":["../../src/screens/settings_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAU3E,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;AAEvD,wBAAgB,cAAc,CAAC,EAAE,EAAE,mBAAmB,2CAoDrD"}
@@ -11,7 +11,7 @@ import { useAppName } from '../hooks/use_app_name';
11
11
  import { usePersonSettings } from '../hooks/use_person_settings';
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  export function SettingsScreen(t0) {
14
- const $ = _c(32);
14
+ const $ = _c(37);
15
15
  const styles = useStyles();
16
16
  const {
17
17
  directMessagesDisabled,
@@ -35,40 +35,51 @@ export function SettingsScreen(t0) {
35
35
  let t2;
36
36
  if ($[2] !== navigation) {
37
37
  t2 = () => {
38
- navigation.navigate("GetHelp", {
39
- type: "chat"
40
- });
38
+ navigation.navigate("FlagTest");
41
39
  };
42
40
  $[2] = navigation;
43
41
  $[3] = t2;
44
42
  } else {
45
43
  t2 = $[3];
46
44
  }
47
- const handleGetHelp = t2;
45
+ const handleFlagTest = t2;
48
46
  let t3;
49
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
50
- t3 = /*#__PURE__*/_jsx(Heading, {
51
- variant: "h2",
52
- children: "Messages"
53
- });
54
- $[4] = t3;
47
+ if ($[4] !== navigation) {
48
+ t3 = () => {
49
+ navigation.navigate("GetHelp", {
50
+ type: "chat"
51
+ });
52
+ };
53
+ $[4] = navigation;
54
+ $[5] = t3;
55
55
  } else {
56
- t3 = $[4];
56
+ t3 = $[5];
57
57
  }
58
+ const handleGetHelp = t3;
58
59
  let t4;
59
- if ($[5] !== styles.sectionHeader) {
60
- t4 = /*#__PURE__*/_jsx(View, {
61
- style: styles.sectionHeader,
62
- children: t3
60
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
61
+ t4 = /*#__PURE__*/_jsx(Heading, {
62
+ variant: "h2",
63
+ children: "Messages"
63
64
  });
64
- $[5] = styles.sectionHeader;
65
65
  $[6] = t4;
66
66
  } else {
67
67
  t4 = $[6];
68
68
  }
69
69
  let t5;
70
- if ($[7] !== directMessagesDisabled || $[8] !== directMessagesEligible || $[9] !== isMutating || $[10] !== setDirectMessagesDisabled || $[11] !== styles.settingRow || $[12] !== styles.settingRowText) {
71
- t5 = directMessagesEligible && /*#__PURE__*/_jsxs(View, {
70
+ if ($[7] !== styles.sectionHeader) {
71
+ t5 = /*#__PURE__*/_jsx(View, {
72
+ style: styles.sectionHeader,
73
+ children: t4
74
+ });
75
+ $[7] = styles.sectionHeader;
76
+ $[8] = t5;
77
+ } else {
78
+ t5 = $[8];
79
+ }
80
+ let t6;
81
+ if ($[9] !== directMessagesDisabled || $[10] !== directMessagesEligible || $[11] !== isMutating || $[12] !== setDirectMessagesDisabled || $[13] !== styles.settingRow || $[14] !== styles.settingRowText) {
82
+ t6 = directMessagesEligible && /*#__PURE__*/_jsxs(View, {
72
83
  style: styles.settingRow,
73
84
  children: [/*#__PURE__*/_jsxs(View, {
74
85
  style: styles.settingRowText,
@@ -84,89 +95,101 @@ export function SettingsScreen(t0) {
84
95
  disabled: isMutating
85
96
  })]
86
97
  });
87
- $[7] = directMessagesDisabled;
88
- $[8] = directMessagesEligible;
89
- $[9] = isMutating;
90
- $[10] = setDirectMessagesDisabled;
91
- $[11] = styles.settingRow;
92
- $[12] = styles.settingRowText;
93
- $[13] = t5;
98
+ $[9] = directMessagesDisabled;
99
+ $[10] = directMessagesEligible;
100
+ $[11] = isMutating;
101
+ $[12] = setDirectMessagesDisabled;
102
+ $[13] = styles.settingRow;
103
+ $[14] = styles.settingRowText;
104
+ $[15] = t6;
94
105
  } else {
95
- t5 = $[13];
106
+ t6 = $[15];
96
107
  }
97
- let t6;
98
- if ($[14] !== handleNotificationSettings) {
99
- t6 = /*#__PURE__*/_jsx(NavRow, {
108
+ let t7;
109
+ if ($[16] !== handleNotificationSettings) {
110
+ t7 = /*#__PURE__*/_jsx(NavRow, {
100
111
  label: "Notification settings",
101
112
  onPress: handleNotificationSettings
102
113
  });
103
- $[14] = handleNotificationSettings;
104
- $[15] = t6;
114
+ $[16] = handleNotificationSettings;
115
+ $[17] = t7;
105
116
  } else {
106
- t6 = $[15];
117
+ t7 = $[17];
107
118
  }
108
- let t7;
109
- if ($[16] !== appName || $[17] !== handleGetHelp) {
110
- t7 = appName !== "services" && /*#__PURE__*/_jsx(NavRow, {
119
+ let t8;
120
+ if ($[18] !== appName || $[19] !== handleGetHelp) {
121
+ t8 = appName !== "services" && /*#__PURE__*/_jsx(NavRow, {
111
122
  label: "Get help",
112
123
  onPress: handleGetHelp
113
124
  });
114
- $[16] = appName;
115
- $[17] = handleGetHelp;
116
- $[18] = t7;
125
+ $[18] = appName;
126
+ $[19] = handleGetHelp;
127
+ $[20] = t8;
117
128
  } else {
118
- t7 = $[18];
129
+ t8 = $[20];
119
130
  }
120
- let t8;
121
- if ($[19] !== styles.sectionOuter || $[20] !== t4 || $[21] !== t5 || $[22] !== t6 || $[23] !== t7) {
122
- t8 = /*#__PURE__*/_jsx(ScrollView, {
131
+ let t9;
132
+ if ($[21] !== handleFlagTest) {
133
+ t9 = /*#__PURE__*/_jsx(NavRow, {
134
+ label: "Flag test (staging)",
135
+ onPress: handleFlagTest
136
+ });
137
+ $[21] = handleFlagTest;
138
+ $[22] = t9;
139
+ } else {
140
+ t9 = $[22];
141
+ }
142
+ let t10;
143
+ if ($[23] !== styles.sectionOuter || $[24] !== t5 || $[25] !== t6 || $[26] !== t7 || $[27] !== t8 || $[28] !== t9) {
144
+ t10 = /*#__PURE__*/_jsx(ScrollView, {
123
145
  contentInsetAdjustmentBehavior: "automatic",
124
146
  children: /*#__PURE__*/_jsxs(View, {
125
147
  style: styles.sectionOuter,
126
- children: [t4, t5, t6, t7]
148
+ children: [t5, t6, t7, t8, t9]
127
149
  })
128
150
  });
129
- $[19] = styles.sectionOuter;
130
- $[20] = t4;
131
- $[21] = t5;
132
- $[22] = t6;
133
- $[23] = t7;
134
- $[24] = t8;
151
+ $[23] = styles.sectionOuter;
152
+ $[24] = t5;
153
+ $[25] = t6;
154
+ $[26] = t7;
155
+ $[27] = t8;
156
+ $[28] = t9;
157
+ $[29] = t10;
135
158
  } else {
136
- t8 = $[24];
159
+ t10 = $[29];
137
160
  }
138
- let t9;
139
- if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
140
- t9 = /*#__PURE__*/_jsx(VersionFooter, {});
141
- $[25] = t9;
161
+ let t11;
162
+ if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
163
+ t11 = /*#__PURE__*/_jsx(VersionFooter, {});
164
+ $[30] = t11;
142
165
  } else {
143
- t9 = $[25];
166
+ t11 = $[30];
144
167
  }
145
- let t10;
146
- if ($[26] !== styles.footer) {
147
- t10 = /*#__PURE__*/_jsx(View, {
168
+ let t12;
169
+ if ($[31] !== styles.footer) {
170
+ t12 = /*#__PURE__*/_jsx(View, {
148
171
  style: styles.footer,
149
- children: t9
172
+ children: t11
150
173
  });
151
- $[26] = styles.footer;
152
- $[27] = t10;
174
+ $[31] = styles.footer;
175
+ $[32] = t12;
153
176
  } else {
154
- t10 = $[27];
177
+ t12 = $[32];
155
178
  }
156
- let t11;
157
- if ($[28] !== styles.container || $[29] !== t10 || $[30] !== t8) {
158
- t11 = /*#__PURE__*/_jsxs(View, {
179
+ let t13;
180
+ if ($[33] !== styles.container || $[34] !== t10 || $[35] !== t12) {
181
+ t13 = /*#__PURE__*/_jsxs(View, {
159
182
  style: styles.container,
160
- children: [t8, t10]
183
+ children: [t10, t12]
161
184
  });
162
- $[28] = styles.container;
163
- $[29] = t10;
164
- $[30] = t8;
165
- $[31] = t11;
185
+ $[33] = styles.container;
186
+ $[34] = t10;
187
+ $[35] = t12;
188
+ $[36] = t13;
166
189
  } else {
167
- t11 = $[31];
190
+ t13 = $[36];
168
191
  }
169
- return t11;
192
+ return t13;
170
193
  }
171
194
  function NavRow(t0) {
172
195
  const $ = _c(13);
@@ -1 +1 @@
1
- {"version":3,"file":"settings_screen.js","names":["PlatformPressable","useNavigation","React","useCallback","Platform","ScrollView","StyleSheet","View","useSafeAreaInsets","Heading","Icon","Text","VersionFooter","Switch","useDirectMessagesEligible","useTheme","useAppName","usePersonSettings","jsx","_jsx","jsxs","_jsxs","SettingsScreen","t0","$","_c","styles","useStyles","directMessagesDisabled","setDirectMessagesDisabled","isMutating","directMessagesEligible","appName","navigation","t1","navigate","handleNotificationSettings","t2","type","handleGetHelp","t3","Symbol","for","variant","children","t4","sectionHeader","style","t5","settingRow","settingRowText","value","onValueChange","enabled","t6","NavRow","label","t7","t8","sectionOuter","contentInsetAdjustmentBehavior","t9","t10","footer","t11","container","onPress","useNavRowStyles","chevron","OS","name","size","inner","accessibilityRole","colors","insets","borderColorDefaultBase","bottom","create","flex","paddingBottom","Math","max","paddingLeft","paddingRight","paddingTop","borderBottomWidth","borderBottomColor","flexDirection","alignItems","justifyContent","paddingVertical","gap","iconColorDefaultDisabled","color"],"sources":["../../src/screens/settings_screen.tsx"],"sourcesContent":["import { PlatformPressable } from '@react-navigation/elements'\nimport { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React, { useCallback } from 'react'\nimport { Platform, ScrollView, StyleSheet, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Heading, Icon, Text, VersionFooter } from '../components'\nimport { Switch } from '../components/display/switch'\nimport { useDirectMessagesEligible, useTheme } from '../hooks'\nimport { useAppName } from '../hooks/use_app_name'\nimport { usePersonSettings } from '../hooks/use_person_settings'\n\nexport type SettingsScreenProps = StaticScreenProps<{}>\n\nexport function SettingsScreen({}: SettingsScreenProps) {\n const styles = useStyles()\n const { directMessagesDisabled, setDirectMessagesDisabled, isMutating } = usePersonSettings()\n const directMessagesEligible = useDirectMessagesEligible()\n const appName = useAppName()\n const navigation = useNavigation()\n\n const handleNotificationSettings = useCallback(() => {\n navigation.navigate('NotificationSettings', {})\n }, [navigation])\n\n const handleGetHelp = useCallback(() => {\n navigation.navigate('GetHelp', { type: 'chat' })\n }, [navigation])\n\n return (\n <View style={styles.container}>\n <ScrollView contentInsetAdjustmentBehavior=\"automatic\">\n <View style={styles.sectionOuter}>\n <View style={styles.sectionHeader}>\n <Heading variant=\"h2\">Messages</Heading>\n </View>\n {directMessagesEligible && (\n <View style={styles.settingRow}>\n <View style={styles.settingRowText}>\n <Text>Allow direct messages</Text>\n <Text variant=\"tertiary\">\n When off, you can't be added to new direct messages, and any you're already in\n will be turned off.\n </Text>\n </View>\n <Switch\n value={!directMessagesDisabled}\n onValueChange={enabled => setDirectMessagesDisabled(!enabled)}\n disabled={isMutating}\n />\n </View>\n )}\n <NavRow label=\"Notification settings\" onPress={handleNotificationSettings} />\n {appName !== 'services' && <NavRow label=\"Get help\" onPress={handleGetHelp} />}\n </View>\n </ScrollView>\n <View style={styles.footer}>\n <VersionFooter />\n </View>\n </View>\n )\n}\n\ninterface NavRowProps {\n label: string\n onPress: () => void\n}\n\nfunction NavRow({ label, onPress }: NavRowProps) {\n const styles = useNavRowStyles()\n return (\n <PlatformPressable\n style={styles.container}\n onPress={onPress}\n accessibilityRole=\"button\"\n accessibilityLabel={label}\n >\n <View style={styles.inner}>\n <Text>{label}</Text>\n {Platform.OS === 'ios' && (\n <Icon name=\"general.rightChevron\" size={16} style={styles.chevron} />\n )}\n </View>\n </PlatformPressable>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const insets = useSafeAreaInsets()\n return StyleSheet.create({\n container: {\n flex: 1,\n },\n footer: {\n paddingBottom: Math.max(insets.bottom, 8),\n },\n sectionOuter: {\n paddingLeft: 16,\n },\n sectionHeader: {\n paddingRight: 16,\n paddingTop: 24,\n paddingBottom: 12,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n settingRow: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n paddingRight: 16,\n paddingVertical: 12,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n settingRowText: {\n flex: 1,\n gap: 8,\n },\n })\n}\n\nconst useNavRowStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n container: {\n paddingLeft: 0,\n },\n inner: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingRight: 16,\n paddingVertical: 14,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n chevron: {\n color: colors.iconColorDefaultDisabled,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"settings_screen.js","names":["PlatformPressable","useNavigation","React","useCallback","Platform","ScrollView","StyleSheet","View","useSafeAreaInsets","Heading","Icon","Text","VersionFooter","Switch","useDirectMessagesEligible","useTheme","useAppName","usePersonSettings","jsx","_jsx","jsxs","_jsxs","SettingsScreen","t0","$","_c","styles","useStyles","directMessagesDisabled","setDirectMessagesDisabled","isMutating","directMessagesEligible","appName","navigation","t1","navigate","handleNotificationSettings","t2","handleFlagTest","t3","type","handleGetHelp","t4","Symbol","for","variant","children","t5","sectionHeader","style","t6","settingRow","settingRowText","value","onValueChange","enabled","t7","NavRow","label","t8","t9","t10","sectionOuter","contentInsetAdjustmentBehavior","t11","t12","footer","t13","container","onPress","useNavRowStyles","chevron","OS","name","size","inner","accessibilityRole","colors","insets","borderColorDefaultBase","bottom","create","flex","paddingBottom","Math","max","paddingLeft","paddingRight","paddingTop","borderBottomWidth","borderBottomColor","flexDirection","alignItems","justifyContent","paddingVertical","gap","iconColorDefaultDisabled","color"],"sources":["../../src/screens/settings_screen.tsx"],"sourcesContent":["import { PlatformPressable } from '@react-navigation/elements'\nimport { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React, { useCallback } from 'react'\nimport { Platform, ScrollView, StyleSheet, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Heading, Icon, Text, VersionFooter } from '../components'\nimport { Switch } from '../components/display/switch'\nimport { useDirectMessagesEligible, useTheme } from '../hooks'\nimport { useAppName } from '../hooks/use_app_name'\nimport { usePersonSettings } from '../hooks/use_person_settings'\n\nexport type SettingsScreenProps = StaticScreenProps<{}>\n\nexport function SettingsScreen({}: SettingsScreenProps) {\n const styles = useStyles()\n const { directMessagesDisabled, setDirectMessagesDisabled, isMutating } = usePersonSettings()\n const directMessagesEligible = useDirectMessagesEligible()\n const appName = useAppName()\n const navigation = useNavigation()\n\n const handleNotificationSettings = useCallback(() => {\n navigation.navigate('NotificationSettings', {})\n }, [navigation])\n\n const handleFlagTest = useCallback(() => {\n navigation.navigate('FlagTest')\n }, [navigation])\n\n const handleGetHelp = useCallback(() => {\n navigation.navigate('GetHelp', { type: 'chat' })\n }, [navigation])\n\n return (\n <View style={styles.container}>\n <ScrollView contentInsetAdjustmentBehavior=\"automatic\">\n <View style={styles.sectionOuter}>\n <View style={styles.sectionHeader}>\n <Heading variant=\"h2\">Messages</Heading>\n </View>\n {directMessagesEligible && (\n <View style={styles.settingRow}>\n <View style={styles.settingRowText}>\n <Text>Allow direct messages</Text>\n <Text variant=\"tertiary\">\n When off, you can't be added to new direct messages, and any you're already in\n will be turned off.\n </Text>\n </View>\n <Switch\n value={!directMessagesDisabled}\n onValueChange={enabled => setDirectMessagesDisabled(!enabled)}\n disabled={isMutating}\n />\n </View>\n )}\n <NavRow label=\"Notification settings\" onPress={handleNotificationSettings} />\n {appName !== 'services' && <NavRow label=\"Get help\" onPress={handleGetHelp} />}\n <NavRow label=\"Flag test (staging)\" onPress={handleFlagTest} />\n </View>\n </ScrollView>\n <View style={styles.footer}>\n <VersionFooter />\n </View>\n </View>\n )\n}\n\ninterface NavRowProps {\n label: string\n onPress: () => void\n}\n\nfunction NavRow({ label, onPress }: NavRowProps) {\n const styles = useNavRowStyles()\n return (\n <PlatformPressable\n style={styles.container}\n onPress={onPress}\n accessibilityRole=\"button\"\n accessibilityLabel={label}\n >\n <View style={styles.inner}>\n <Text>{label}</Text>\n {Platform.OS === 'ios' && (\n <Icon name=\"general.rightChevron\" size={16} style={styles.chevron} />\n )}\n </View>\n </PlatformPressable>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const insets = useSafeAreaInsets()\n return StyleSheet.create({\n container: {\n flex: 1,\n },\n footer: {\n paddingBottom: Math.max(insets.bottom, 8),\n },\n sectionOuter: {\n paddingLeft: 16,\n },\n sectionHeader: {\n paddingRight: 16,\n paddingTop: 24,\n paddingBottom: 12,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n settingRow: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n paddingRight: 16,\n paddingVertical: 12,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n settingRowText: {\n flex: 1,\n gap: 8,\n },\n })\n}\n\nconst useNavRowStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n container: {\n paddingLeft: 0,\n },\n inner: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingRight: 16,\n paddingVertical: 14,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n chevron: {\n color: colors.iconColorDefaultDisabled,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planningcenter/chat-react-native",
3
- "version": "4.4.1-qa-staging.37",
3
+ "version": "4.4.1-qa-staging.38",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "@fortawesome/fontawesome-svg-core": "^7.2.0",
35
35
  "@fortawesome/react-native-fontawesome": "^0.3.2",
36
- "@planningcenter/emoji-keyboard": "4.4.1-qa-staging.37",
36
+ "@planningcenter/emoji-keyboard": "4.4.1-qa-staging.38",
37
37
  "lodash-inflection": "^1.5.0"
38
38
  },
39
39
  "peerDependencies": {
@@ -84,5 +84,5 @@
84
84
  "sf-symbols-typescript": "^2.2.0",
85
85
  "typescript": "~6.0.3"
86
86
  },
87
- "gitHead": "51bfb62e1947e980f65a6e7ced17d241a58576c0"
87
+ "gitHead": "d8b926a5017112b19d6bec76fa2500ebf2387cd7"
88
88
  }
@@ -57,6 +57,7 @@ import {
57
57
  ConversationSelectTypeScreenOptions,
58
58
  } from '../screens/conversation_select_type_screen'
59
59
  import { ConversationsScreen } from '../screens/conversations/conversations_screen'
60
+ import { FlagTestScreen } from '../screens/flag_test_screen'
60
61
  import { GetHelpScreen } from '../screens/get_help_screen'
61
62
  import {
62
63
  GroupNotificationLevelSelectScreen,
@@ -273,6 +274,11 @@ export const ChatStack = createNativeStackNavigator({
273
274
  options: ({ navigation }) =>
274
275
  composeOptions({ title: 'Chat settings' }, withMinimalBack({ onPress: navigation.goBack })),
275
276
  },
277
+ FlagTest: {
278
+ screen: FlagTestScreen,
279
+ options: ({ navigation }) =>
280
+ composeOptions({ title: 'Flag test' }, withMinimalBack({ onPress: navigation.goBack })),
281
+ },
276
282
  NotificationSettings: {
277
283
  screen: NotificationSettingsScreen,
278
284
  options: ({ navigation }) =>
@@ -0,0 +1,133 @@
1
+ import { useQuery } from '@tanstack/react-query'
2
+ import React from 'react'
3
+ import { ScrollView, StyleSheet, View } from 'react-native'
4
+ import { Heading, Text } from '../components'
5
+ import { useApiClient, useTheme } from '../hooks'
6
+ import { ApiCollection } from '../types'
7
+ import type { FeatureResource } from '../types/resources/feature_resource'
8
+ import { chatReactNativeVersion } from '../utils/package_version'
9
+
10
+ // Staging-only: checks the test flags from planningcenter/chat#2642 on both API versions. Never merge.
11
+
12
+ const OLD_VERSION = '2018-08-01'
13
+ const NEW_VERSION = '2026-10-26'
14
+
15
+ type Expected = { old: boolean; new: boolean; note?: string }
16
+
17
+ const TEST_FLAGS: Record<string, Expected> = {
18
+ ROLLOUT_expected_on_because_meets_minimum_crn_version: { old: true, new: true },
19
+ ROLLOUT_expected_off_because_below_minimum_crn_version: { old: true, new: false },
20
+ ROLLOUT_expected_on_because_meets_minimum_host_version: { old: true, new: true },
21
+ ROLLOUT_expected_off_because_below_minimum_host_version: {
22
+ old: true,
23
+ new: false,
24
+ note: 'Only checked inside Church Center or Services; other hosts see it on',
25
+ },
26
+ ROLLOUT_expected_off_because_legacy_false: { old: false, new: true },
27
+ ROLLOUT_expected_off_because_killed: {
28
+ old: false,
29
+ new: false,
30
+ note: 'Needs DISABLE_MOBILE_ROLLOUT_expected_off_because_killed enabled in staging Flipper',
31
+ },
32
+ ROLLOUT_expected_off_because_fixed_off: { old: false, new: false },
33
+ ROLLOUT_expected_on_because_flipper: {
34
+ old: true,
35
+ new: true,
36
+ note: 'Needs a staging Flipper record enabled for your org',
37
+ },
38
+ ROLLOUT_expected_off_because_unregistered: { old: false, new: false },
39
+ }
40
+
41
+ const flagNames = Object.keys(TEST_FLAGS)
42
+
43
+ const useFlagAnswers = (version: string) => {
44
+ const apiClient = useApiClient()
45
+
46
+ return useQuery({
47
+ queryKey: ['flag-test', version],
48
+ queryFn: async () => {
49
+ const response = await apiClient.chat.get<ApiCollection<FeatureResource>>({
50
+ url: '/me/features',
51
+ headers: {
52
+ 'X-PCO-API-Version': version,
53
+ 'X-PCO-Chat-React-Native-Version': chatReactNativeVersion,
54
+ },
55
+ data: {
56
+ where: { name: flagNames.join(',') },
57
+ fields: { Feature: ['name', 'enabled'] },
58
+ },
59
+ })
60
+
61
+ return Object.fromEntries(response.data.map(feature => [feature.name, feature.enabled]))
62
+ },
63
+ })
64
+ }
65
+
66
+ export function FlagTestScreen() {
67
+ const styles = useStyles()
68
+ const oldAnswers = useFlagAnswers(OLD_VERSION)
69
+ const newAnswers = useFlagAnswers(NEW_VERSION)
70
+
71
+ return (
72
+ <ScrollView contentContainerStyle={styles.container}>
73
+ <Text variant="tertiary">
74
+ Sending chat-react-native {chatReactNativeVersion}. Old is {OLD_VERSION}, new is{' '}
75
+ {NEW_VERSION}.
76
+ </Text>
77
+ {oldAnswers.error && <Text style={styles.fail}>Old: {String(oldAnswers.error)}</Text>}
78
+ {newAnswers.error && <Text style={styles.fail}>New: {String(newAnswers.error)}</Text>}
79
+ {flagNames.map(name => (
80
+ <View key={name} style={styles.row}>
81
+ <Heading variant="h3">{name.replace('ROLLOUT_', '')}</Heading>
82
+ <Answer label="Old" expected={TEST_FLAGS[name].old} actual={oldAnswers.data?.[name]} />
83
+ <Answer label="New" expected={TEST_FLAGS[name].new} actual={newAnswers.data?.[name]} />
84
+ {TEST_FLAGS[name].note && <Text variant="tertiary">{TEST_FLAGS[name].note}</Text>}
85
+ </View>
86
+ ))}
87
+ </ScrollView>
88
+ )
89
+ }
90
+
91
+ function Answer({
92
+ label,
93
+ expected,
94
+ actual,
95
+ }: {
96
+ label: string
97
+ expected: boolean
98
+ actual: boolean | undefined
99
+ }) {
100
+ const styles = useStyles()
101
+ const onOff = (value: boolean) => (value ? 'on' : 'off')
102
+
103
+ if (actual === undefined) return <Text variant="secondary">{label}: …</Text>
104
+
105
+ const passed = actual === expected
106
+ return (
107
+ <Text style={passed ? styles.pass : styles.fail}>
108
+ {passed ? '✓' : '✗'} {label}: {onOff(actual)} (expected {onOff(expected)})
109
+ </Text>
110
+ )
111
+ }
112
+
113
+ const useStyles = () => {
114
+ const { colors } = useTheme()
115
+ return StyleSheet.create({
116
+ container: {
117
+ padding: 16,
118
+ gap: 16,
119
+ },
120
+ row: {
121
+ gap: 4,
122
+ paddingBottom: 12,
123
+ borderBottomWidth: 1,
124
+ borderBottomColor: colors.borderColorDefaultBase,
125
+ },
126
+ pass: {
127
+ color: colors.statusSuccessIcon,
128
+ },
129
+ fail: {
130
+ color: colors.statusErrorText,
131
+ },
132
+ })
133
+ }
@@ -22,6 +22,10 @@ export function SettingsScreen({}: SettingsScreenProps) {
22
22
  navigation.navigate('NotificationSettings', {})
23
23
  }, [navigation])
24
24
 
25
+ const handleFlagTest = useCallback(() => {
26
+ navigation.navigate('FlagTest')
27
+ }, [navigation])
28
+
25
29
  const handleGetHelp = useCallback(() => {
26
30
  navigation.navigate('GetHelp', { type: 'chat' })
27
31
  }, [navigation])
@@ -51,6 +55,7 @@ export function SettingsScreen({}: SettingsScreenProps) {
51
55
  )}
52
56
  <NavRow label="Notification settings" onPress={handleNotificationSettings} />
53
57
  {appName !== 'services' && <NavRow label="Get help" onPress={handleGetHelp} />}
58
+ <NavRow label="Flag test (staging)" onPress={handleFlagTest} />
54
59
  </View>
55
60
  </ScrollView>
56
61
  <View style={styles.footer}>