@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.
- package/build/navigation/index.d.ts +9 -0
- package/build/navigation/index.d.ts.map +1 -1
- package/build/navigation/index.js +11 -0
- package/build/navigation/index.js.map +1 -1
- package/build/screens/flag_test_screen.d.ts +2 -0
- package/build/screens/flag_test_screen.d.ts.map +1 -0
- package/build/screens/flag_test_screen.js +274 -0
- package/build/screens/flag_test_screen.js.map +1 -0
- package/build/screens/settings_screen.d.ts.map +1 -1
- package/build/screens/settings_screen.js +96 -73
- package/build/screens/settings_screen.js.map +1 -1
- package/package.json +3 -3
- package/src/navigation/index.tsx +6 -0
- package/src/screens/flag_test_screen.tsx +133 -0
- package/src/screens/settings_screen.tsx +5 -0
|
@@ -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;
|
|
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 @@
|
|
|
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,
|
|
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(
|
|
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("
|
|
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
|
|
45
|
+
const handleFlagTest = t2;
|
|
48
46
|
let t3;
|
|
49
|
-
if ($[4]
|
|
50
|
-
t3 =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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 = $[
|
|
56
|
+
t3 = $[5];
|
|
57
57
|
}
|
|
58
|
+
const handleGetHelp = t3;
|
|
58
59
|
let t4;
|
|
59
|
-
if ($[
|
|
60
|
-
t4 = /*#__PURE__*/_jsx(
|
|
61
|
-
|
|
62
|
-
children:
|
|
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] !==
|
|
71
|
-
t5 =
|
|
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
|
-
$[
|
|
88
|
-
$[
|
|
89
|
-
$[
|
|
90
|
-
$[
|
|
91
|
-
$[
|
|
92
|
-
$[
|
|
93
|
-
$[
|
|
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
|
-
|
|
106
|
+
t6 = $[15];
|
|
96
107
|
}
|
|
97
|
-
let
|
|
98
|
-
if ($[
|
|
99
|
-
|
|
108
|
+
let t7;
|
|
109
|
+
if ($[16] !== handleNotificationSettings) {
|
|
110
|
+
t7 = /*#__PURE__*/_jsx(NavRow, {
|
|
100
111
|
label: "Notification settings",
|
|
101
112
|
onPress: handleNotificationSettings
|
|
102
113
|
});
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
114
|
+
$[16] = handleNotificationSettings;
|
|
115
|
+
$[17] = t7;
|
|
105
116
|
} else {
|
|
106
|
-
|
|
117
|
+
t7 = $[17];
|
|
107
118
|
}
|
|
108
|
-
let
|
|
109
|
-
if ($[
|
|
110
|
-
|
|
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
|
-
$[
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
125
|
+
$[18] = appName;
|
|
126
|
+
$[19] = handleGetHelp;
|
|
127
|
+
$[20] = t8;
|
|
117
128
|
} else {
|
|
118
|
-
|
|
129
|
+
t8 = $[20];
|
|
119
130
|
}
|
|
120
|
-
let
|
|
121
|
-
if ($[
|
|
122
|
-
|
|
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: [
|
|
148
|
+
children: [t5, t6, t7, t8, t9]
|
|
127
149
|
})
|
|
128
150
|
});
|
|
129
|
-
$[
|
|
130
|
-
$[
|
|
131
|
-
$[
|
|
132
|
-
$[
|
|
133
|
-
$[
|
|
134
|
-
$[
|
|
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
|
-
|
|
159
|
+
t10 = $[29];
|
|
137
160
|
}
|
|
138
|
-
let
|
|
139
|
-
if ($[
|
|
140
|
-
|
|
141
|
-
$[
|
|
161
|
+
let t11;
|
|
162
|
+
if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
|
|
163
|
+
t11 = /*#__PURE__*/_jsx(VersionFooter, {});
|
|
164
|
+
$[30] = t11;
|
|
142
165
|
} else {
|
|
143
|
-
|
|
166
|
+
t11 = $[30];
|
|
144
167
|
}
|
|
145
|
-
let
|
|
146
|
-
if ($[
|
|
147
|
-
|
|
168
|
+
let t12;
|
|
169
|
+
if ($[31] !== styles.footer) {
|
|
170
|
+
t12 = /*#__PURE__*/_jsx(View, {
|
|
148
171
|
style: styles.footer,
|
|
149
|
-
children:
|
|
172
|
+
children: t11
|
|
150
173
|
});
|
|
151
|
-
$[
|
|
152
|
-
$[
|
|
174
|
+
$[31] = styles.footer;
|
|
175
|
+
$[32] = t12;
|
|
153
176
|
} else {
|
|
154
|
-
|
|
177
|
+
t12 = $[32];
|
|
155
178
|
}
|
|
156
|
-
let
|
|
157
|
-
if ($[
|
|
158
|
-
|
|
179
|
+
let t13;
|
|
180
|
+
if ($[33] !== styles.container || $[34] !== t10 || $[35] !== t12) {
|
|
181
|
+
t13 = /*#__PURE__*/_jsxs(View, {
|
|
159
182
|
style: styles.container,
|
|
160
|
-
children: [
|
|
183
|
+
children: [t10, t12]
|
|
161
184
|
});
|
|
162
|
-
$[
|
|
163
|
-
$[
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
185
|
+
$[33] = styles.container;
|
|
186
|
+
$[34] = t10;
|
|
187
|
+
$[35] = t12;
|
|
188
|
+
$[36] = t13;
|
|
166
189
|
} else {
|
|
167
|
-
|
|
190
|
+
t13 = $[36];
|
|
168
191
|
}
|
|
169
|
-
return
|
|
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.
|
|
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.
|
|
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": "
|
|
87
|
+
"gitHead": "d8b926a5017112b19d6bec76fa2500ebf2387cd7"
|
|
88
88
|
}
|
package/src/navigation/index.tsx
CHANGED
|
@@ -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}>
|