@planningcenter/chat-react-native 4.4.1-qa-staging.31 → 4.4.1-qa-1036.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/build/components/conversation/message_list.d.ts.map +1 -1
  2. package/build/components/conversation/message_list.js +123 -155
  3. package/build/components/conversation/message_list.js.map +1 -1
  4. package/build/components/conversations/conversations.d.ts.map +1 -1
  5. package/build/components/conversations/conversations.js +0 -1
  6. package/build/components/conversations/conversations.js.map +1 -1
  7. package/build/components/display/keyboard_scroll_view.d.ts.map +1 -1
  8. package/build/components/display/keyboard_scroll_view.js +0 -1
  9. package/build/components/display/keyboard_scroll_view.js.map +1 -1
  10. package/build/hooks/direct_messages/use_direct_message_candidates.d.ts +1 -3
  11. package/build/hooks/direct_messages/use_direct_message_candidates.d.ts.map +1 -1
  12. package/build/hooks/direct_messages/use_direct_message_candidates.js +29 -42
  13. package/build/hooks/direct_messages/use_direct_message_candidates.js.map +1 -1
  14. package/build/navigation/index.d.ts.map +1 -1
  15. package/build/navigation/index.js +3 -11
  16. package/build/navigation/index.js.map +1 -1
  17. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  18. package/build/screens/conversation_details_screen.js +0 -1
  19. package/build/screens/conversation_details_screen.js.map +1 -1
  20. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
  21. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +0 -1
  22. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
  23. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts.map +1 -1
  24. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js +308 -409
  25. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js.map +1 -1
  26. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
  27. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +0 -1
  28. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
  29. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
  30. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +0 -1
  31. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
  32. package/build/screens/get_help_screen.js +62 -56
  33. package/build/screens/get_help_screen.js.map +1 -1
  34. package/build/screens/group_notification_settings_screen.js +2 -3
  35. package/build/screens/group_notification_settings_screen.js.map +1 -1
  36. package/build/screens/notification_settings_screen.d.ts.map +1 -1
  37. package/build/screens/notification_settings_screen.js +0 -1
  38. package/build/screens/notification_settings_screen.js.map +1 -1
  39. package/build/screens/preferred_app_selection_screen.js +39 -45
  40. package/build/screens/preferred_app_selection_screen.js.map +1 -1
  41. package/build/screens/search/components/search_results_list.d.ts +1 -4
  42. package/build/screens/search/components/search_results_list.d.ts.map +1 -1
  43. package/build/screens/search/components/search_results_list.js +138 -176
  44. package/build/screens/search/components/search_results_list.js.map +1 -1
  45. package/build/screens/search/search_screen.d.ts.map +1 -1
  46. package/build/screens/search/search_screen.js +28 -21
  47. package/build/screens/search/search_screen.js.map +1 -1
  48. package/build/screens/settings_screen.d.ts.map +1 -1
  49. package/build/screens/settings_screen.js +6 -7
  50. package/build/screens/settings_screen.js.map +1 -1
  51. package/package.json +3 -3
  52. package/src/components/conversation/__tests__/message_list.test.tsx +0 -4
  53. package/src/components/conversation/message_list.tsx +0 -6
  54. package/src/components/conversations/conversations.tsx +0 -1
  55. package/src/components/display/keyboard_scroll_view.tsx +0 -1
  56. package/src/hooks/direct_messages/use_direct_message_candidates.ts +2 -2
  57. package/src/navigation/index.tsx +2 -11
  58. package/src/screens/conversation_details_screen.tsx +0 -1
  59. package/src/screens/conversation_select_recipients/conversation_new_entry_screen.tsx +1 -4
  60. package/src/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.tsx +69 -104
  61. package/src/screens/conversation_select_recipients/conversation_select_group_recipients_screen.tsx +0 -1
  62. package/src/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.tsx +0 -1
  63. package/src/screens/get_help_screen.tsx +4 -4
  64. package/src/screens/group_notification_settings_screen.tsx +3 -3
  65. package/src/screens/notification_settings_screen.tsx +0 -1
  66. package/src/screens/preferred_app_selection_screen.tsx +4 -4
  67. package/src/screens/search/__tests__/search_screen.test.tsx +7 -5
  68. package/src/screens/search/components/__tests__/search_results_list.test.tsx +2 -6
  69. package/src/screens/search/components/search_results_list.tsx +8 -29
  70. package/src/screens/search/search_screen.tsx +18 -8
  71. package/src/screens/settings_screen.tsx +25 -25
  72. package/src/screens/conversation_select_recipients/__tests__/conversation_select_direct_message_recipients_screen.test.tsx +0 -83
@@ -1 +1 @@
1
- {"version":3,"file":"search_screen.js","names":["useNavigation","React","useRef","useState","Keyboard","StyleSheet","View","KeyboardView","composeOptions","withMinimalBack","useDebouncedSearchTerm","analyticsEvents","useProductAnalytics","SearchPromptBlankState","SearchField","SearchResultsList","jsx","_jsx","SearchScreenOptions","navigation","title","animation","onPress","goBack","SearchScreen","$","_c","term","setTerm","debouncedTerm","publishEvent","t0","Symbol","for","Set","publishedTerms","t1","settledTerm","counts","current","has","add","search_performed","term_length","length","conversation_result_count","conversationResultCount","message_result_count","messageResultCount","publishSearch","t2","result","position","dismiss","search_result_opened","result_type","type","navigate","conversation_id","Number","id","extra","conversationId","initial_message_id","openResult","t3","t4","t5","children","style","styles","container","testID","header","prompt","create","flex"],"sources":["../../../src/screens/search/search_screen.tsx"],"sourcesContent":["import { ParamListBase, useNavigation } from '@react-navigation/native'\nimport {\n NativeStackNavigationOptions,\n NativeStackScreenProps,\n} from '@react-navigation/native-stack'\nimport React, { useRef, useState } from 'react'\nimport { Keyboard, StyleSheet, View } from 'react-native'\nimport { KeyboardView } from '../../components'\nimport {\n composeOptions,\n withMinimalBack,\n} from '../../components/display/platform_modal_header_buttons'\nimport { useDebouncedSearchTerm } from '../../hooks/use_debounced_search_term'\nimport { analyticsEvents, useProductAnalytics } from '../../hooks/use_product_analytics'\nimport type { SearchResultResource } from '../../types/resources/search_result'\nimport { SearchPromptBlankState } from './components/search_blank_states'\nimport { SearchField } from './components/search_field'\nimport { SearchResultsList, type SearchResultCounts } from './components/search_results_list'\n\nexport const SearchScreenOptions = ({\n navigation,\n}: NativeStackScreenProps<ParamListBase>): NativeStackNavigationOptions =>\n composeOptions(\n { title: 'Search', animation: 'fade' },\n withMinimalBack({ onPress: () => navigation.goBack() })\n )\n\nexport function SearchScreen() {\n const navigation = useNavigation()\n const [term, setTerm] = useState('')\n const debouncedTerm = useDebouncedSearchTerm(term)\n const { publishEvent } = useProductAnalytics()\n const publishedTerms = useRef(new Set<string>())\n\n const publishSearch = (settledTerm: string, counts: SearchResultCounts) => {\n if (publishedTerms.current.has(settledTerm)) return\n\n publishedTerms.current.add(settledTerm)\n publishEvent(analyticsEvents.search_performed, {\n term_length: settledTerm.length,\n conversation_result_count: counts.conversationResultCount,\n message_result_count: counts.messageResultCount,\n })\n }\n\n const openResult = (result: SearchResultResource, position: number) => {\n Keyboard.dismiss()\n publishEvent(analyticsEvents.search_result_opened, { result_type: result.type, position })\n\n if (result.type === 'conversation') {\n navigation.navigate('Conversation', {\n conversation_id: Number(result.id),\n title: result.title,\n })\n } else {\n navigation.navigate('Conversation', {\n conversation_id: result.extra.conversationId,\n initial_message_id: result.id,\n title: result.title,\n })\n }\n }\n\n return (\n <KeyboardView>\n <View style={styles.container} testID=\"search-screen\">\n <SearchResultsList\n term={debouncedTerm}\n onSelect={openResult}\n onSettled={publishSearch}\n header={<SearchField term={term} onChange={setTerm} />}\n prompt={<SearchPromptBlankState />}\n />\n </View>\n </KeyboardView>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"search_screen.js","names":["useNavigation","React","useRef","useState","Keyboard","ScrollView","StyleSheet","View","KeyboardView","composeOptions","withMinimalBack","useDebouncedSearchTerm","analyticsEvents","useProductAnalytics","SearchPromptBlankState","SearchField","SearchResultsList","jsx","_jsx","jsxs","_jsxs","SearchScreenOptions","navigation","title","animation","onPress","goBack","SearchScreen","$","_c","term","setTerm","debouncedTerm","publishEvent","t0","Symbol","for","Set","publishedTerms","t1","settledTerm","counts","current","has","add","search_performed","term_length","length","conversation_result_count","conversationResultCount","message_result_count","messageResultCount","publishSearch","t2","result","position","dismiss","search_result_opened","result_type","type","navigate","conversation_id","Number","id","extra","conversationId","initial_message_id","openResult","t3","t4","contentContainerStyle","styles","prompt","keyboardShouldPersistTaps","children","t5","style","container","testID","create","flex","flexGrow","justifyContent"],"sources":["../../../src/screens/search/search_screen.tsx"],"sourcesContent":["import { ParamListBase, useNavigation } from '@react-navigation/native'\nimport {\n NativeStackNavigationOptions,\n NativeStackScreenProps,\n} from '@react-navigation/native-stack'\nimport React, { useRef, useState } from 'react'\nimport { Keyboard, ScrollView, StyleSheet, View } from 'react-native'\nimport { KeyboardView } from '../../components'\nimport {\n composeOptions,\n withMinimalBack,\n} from '../../components/display/platform_modal_header_buttons'\nimport { useDebouncedSearchTerm } from '../../hooks/use_debounced_search_term'\nimport { analyticsEvents, useProductAnalytics } from '../../hooks/use_product_analytics'\nimport type { SearchResultResource } from '../../types/resources/search_result'\nimport { SearchPromptBlankState } from './components/search_blank_states'\nimport { SearchField } from './components/search_field'\nimport { SearchResultsList, type SearchResultCounts } from './components/search_results_list'\n\nexport const SearchScreenOptions = ({\n navigation,\n}: NativeStackScreenProps<ParamListBase>): NativeStackNavigationOptions =>\n composeOptions(\n { title: 'Search', animation: 'fade' },\n withMinimalBack({ onPress: () => navigation.goBack() })\n )\n\nexport function SearchScreen() {\n const navigation = useNavigation()\n const [term, setTerm] = useState('')\n const debouncedTerm = useDebouncedSearchTerm(term)\n const { publishEvent } = useProductAnalytics()\n const publishedTerms = useRef(new Set<string>())\n\n const publishSearch = (settledTerm: string, counts: SearchResultCounts) => {\n if (publishedTerms.current.has(settledTerm)) return\n\n publishedTerms.current.add(settledTerm)\n publishEvent(analyticsEvents.search_performed, {\n term_length: settledTerm.length,\n conversation_result_count: counts.conversationResultCount,\n message_result_count: counts.messageResultCount,\n })\n }\n\n const openResult = (result: SearchResultResource, position: number) => {\n Keyboard.dismiss()\n publishEvent(analyticsEvents.search_result_opened, { result_type: result.type, position })\n\n if (result.type === 'conversation') {\n navigation.navigate('Conversation', {\n conversation_id: Number(result.id),\n title: result.title,\n })\n } else {\n navigation.navigate('Conversation', {\n conversation_id: result.extra.conversationId,\n initial_message_id: result.id,\n title: result.title,\n })\n }\n }\n\n return (\n <KeyboardView>\n <View style={styles.container} testID=\"search-screen\">\n <SearchField term={term} onChange={setTerm} />\n {debouncedTerm.length > 0 ? (\n <SearchResultsList\n key={debouncedTerm}\n term={debouncedTerm}\n onSelect={openResult}\n onSettled={publishSearch}\n />\n ) : (\n <ScrollView contentContainerStyle={styles.prompt} keyboardShouldPersistTaps=\"handled\">\n <SearchPromptBlankState />\n </ScrollView>\n )}\n </View>\n </KeyboardView>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n prompt: {\n flexGrow: 1,\n justifyContent: 'center',\n },\n})\n"],"mappings":";AAAA,SAAwBA,aAAa,QAAQ,0BAA0B;AAKvE,OAAOC,KAAK,IAAIC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/C,SAASC,QAAQ,EAAEC,UAAU,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACrE,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SACEC,cAAc,EACdC,eAAe,QACV,wDAAwD;AAC/D,SAASC,sBAAsB,QAAQ,uCAAuC;AAC9E,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,mCAAmC;AAExF,SAASC,sBAAsB,QAAQ,kCAAkC;AACzE,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,iBAAiB,QAAiC,kCAAkC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE7F,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC;AACqC,CAAC,KACtCb,cAAc,CACZ;EAAEc,KAAK,EAAE,QAAQ;EAAEC,SAAS,EAAE;AAAO,CAAC,EACtCd,eAAe,CAAC;EAAEe,OAAO,EAAEA,CAAA,KAAMH,UAAU,CAACI,MAAM,CAAC;AAAE,CAAC,CACxD,CAAC;AAEH,OAAO,SAAAC,aAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL,MAAAP,UAAA,GAAmBtB,aAAa,CAAC,CAAC;EAClC,OAAA8B,IAAA,EAAAC,OAAA,IAAwB5B,QAAQ,CAAC,EAAE,CAAC;EACpC,MAAA6B,aAAA,GAAsBrB,sBAAsB,CAACmB,IAAI,CAAC;EAClD;IAAAG;EAAA,IAAyBpB,mBAAmB,CAAC,CAAC;EAAA,IAAAqB,EAAA;EAAA,IAAAN,CAAA,QAAAO,MAAA,CAAAC,GAAA;IAChBF,EAAA,OAAIG,GAAG,CAAS,CAAC;IAAAT,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAA/C,MAAAU,cAAA,GAAuBpC,MAAM,CAACgC,EAAiB,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAX,CAAA,QAAAK,YAAA;IAE1BM,EAAA,GAAAA,CAAAC,WAAA,EAAAC,MAAA;MACpB,IAAIH,cAAc,CAAAI,OAAQ,CAAAC,GAAI,CAACH,WAAW,CAAC;QAAA;MAAA;MAE3CF,cAAc,CAAAI,OAAQ,CAAAE,GAAI,CAACJ,WAAW,CAAC;MACvCP,YAAY,CAACrB,eAAe,CAAAiC,gBAAiB,EAAE;QAAAC,WAAA,EAChCN,WAAW,CAAAO,MAAO;QAAAC,yBAAA,EACJP,MAAM,CAAAQ,uBAAwB;QAAAC,oBAAA,EACnCT,MAAM,CAAAU;MAC9B,CAAC,CAAC;IAAA,CACH;IAAAvB,CAAA,MAAAK,YAAA;IAAAL,CAAA,MAAAW,EAAA;EAAA;IAAAA,EAAA,GAAAX,CAAA;EAAA;EATD,MAAAwB,aAAA,GAAsBb,EASrB;EAAA,IAAAc,EAAA;EAAA,IAAAzB,CAAA,QAAAN,UAAA,IAAAM,CAAA,QAAAK,YAAA;IAEkBoB,EAAA,GAAAA,CAAAC,MAAA,EAAAC,QAAA;MACjBnD,QAAQ,CAAAoD,OAAQ,CAAC,CAAC;MAClBvB,YAAY,CAACrB,eAAe,CAAA6C,oBAAqB,EAAE;QAAAC,WAAA,EAAeJ,MAAM,CAAAK,IAAK;QAAAJ;MAAW,CAAC,CAAC;MAE1F,IAAID,MAAM,CAAAK,IAAK,KAAK,cAAc;QAChCrC,UAAU,CAAAsC,QAAS,CAAC,cAAc,EAAE;UAAAC,eAAA,EACjBC,MAAM,CAACR,MAAM,CAAAS,EAAG,CAAC;UAAAxC,KAAA,EAC3B+B,MAAM,CAAA/B;QACf,CAAC,CAAC;MAAA;QAEFD,UAAU,CAAAsC,QAAS,CAAC,cAAc,EAAE;UAAAC,eAAA,EACjBP,MAAM,CAAAU,KAAM,CAAAC,cAAe;UAAAC,kBAAA,EACxBZ,MAAM,CAAAS,EAAG;UAAAxC,KAAA,EACtB+B,MAAM,CAAA/B;QACf,CAAC,CAAC;MAAA;IACH,CACF;IAAAK,CAAA,MAAAN,UAAA;IAAAM,CAAA,MAAAK,YAAA;IAAAL,CAAA,MAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAhBD,MAAAuC,UAAA,GAAmBd,EAgBlB;EAAA,IAAAe,EAAA;EAAA,IAAAxC,CAAA,QAAAE,IAAA;IAKKsC,EAAA,gBAAAlD,IAAA,CAACH,WAAW;MAAOe,IAAI,EAAJA,IAAI;MAAYC,QAAO,EAAPA;IAAO,CAAG,CAAC;IAAAH,CAAA,MAAAE,IAAA;IAAAF,CAAA,MAAAwC,EAAA;EAAA;IAAAA,EAAA,GAAAxC,CAAA;EAAA;EAAA,IAAAyC,EAAA;EAAA,IAAAzC,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAuC,UAAA,IAAAvC,CAAA,SAAAwB,aAAA;IAC7CiB,EAAA,GAAArC,aAAa,CAAAe,MAAO,GAAG,CAWvB,gBAXA7B,IAAA,CACEF,iBAAiB;MAEVgB,IAAa,EAAbA,aAAa;MACTmC,QAAU,EAAVA,UAAU;MACTf,SAAa,EAAbA;IAAa,GAHnBpB,aAST,CAAC,gBAXAd,IAAA,CAQEb,UAAU;MAAwBiE,qBAAa,EAAbC,MAAM,CAAAC,MAAO;MAA4BC,yBAAS,EAAT,SAAS;MAAAC,QAAA,eACnFxD,IAAA,CAACJ,sBAAsB,IAAE;IAAC,CAE9B,CAAC;IAAAc,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAuC,UAAA;IAAAvC,CAAA,OAAAwB,aAAA;IAAAxB,CAAA,OAAAyC,EAAA;EAAA;IAAAA,EAAA,GAAAzC,CAAA;EAAA;EAAA,IAAA+C,EAAA;EAAA,IAAA/C,CAAA,SAAAwC,EAAA,IAAAxC,CAAA,SAAAyC,EAAA;IAdLM,EAAA,gBAAAzD,IAAA,CAACV,YAAY;MAAAkE,QAAA,eACXtD,KAAA,CAACb,IAAI;QAAQqE,KAAgB,EAAhBL,MAAM,CAAAM,SAAU;QAASC,MAAe,EAAf,eAAe;QAAAJ,QAAA,GACnDN,EAA8C,EAC7CC,EAWA;MAAA,CACG;IAAC,CACK,CAAC;IAAAzC,CAAA,OAAAwC,EAAA;IAAAxC,CAAA,OAAAyC,EAAA;IAAAzC,CAAA,OAAA+C,EAAA;EAAA;IAAAA,EAAA,GAAA/C,CAAA;EAAA;EAAA,OAhBf+C,EAgBe;AAAA;AAInB,MAAMJ,MAAM,GAAGjE,UAAU,CAACyE,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,IAAI,EAAE;EACR,CAAC;EACDR,MAAM,EAAE;IACNS,QAAQ,EAAE,CAAC;IACXC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","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,2CA6CrD"}
@@ -2,7 +2,7 @@ import { c as _c } from "react/compiler-runtime";
2
2
  import { PlatformPressable } from '@react-navigation/elements';
3
3
  import { useNavigation } from '@react-navigation/native';
4
4
  import React, { useCallback } from 'react';
5
- import { Platform, ScrollView, StyleSheet, View } from 'react-native';
5
+ import { Platform, StyleSheet, View } from 'react-native';
6
6
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
7
7
  import { Heading, Icon, Text, VersionFooter } from '../components';
8
8
  import { Switch } from '../components/display/switch';
@@ -119,12 +119,9 @@ export function SettingsScreen(t0) {
119
119
  }
120
120
  let t8;
121
121
  if ($[19] !== styles.sectionOuter || $[20] !== t4 || $[21] !== t5 || $[22] !== t6 || $[23] !== t7) {
122
- t8 = /*#__PURE__*/_jsx(ScrollView, {
123
- contentInsetAdjustmentBehavior: "automatic",
124
- children: /*#__PURE__*/_jsxs(View, {
125
- style: styles.sectionOuter,
126
- children: [t4, t5, t6, t7]
127
- })
122
+ t8 = /*#__PURE__*/_jsxs(View, {
123
+ style: styles.sectionOuter,
124
+ children: [t4, t5, t6, t7]
128
125
  });
129
126
  $[19] = styles.sectionOuter;
130
127
  $[20] = t4;
@@ -242,6 +239,8 @@ const useStyles = () => {
242
239
  flex: 1
243
240
  },
244
241
  footer: {
242
+ flex: 1,
243
+ justifyContent: "flex-end",
245
244
  paddingBottom: Math.max(insets.bottom, 8)
246
245
  },
247
246
  sectionOuter: {
@@ -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":";AAAA,SAASA,iBAAiB,QAAQ,4BAA4B;AAC9D,SAA4BC,aAAa,QAAQ,0BAA0B;AAC3E,OAAOC,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,QAAQ,EAAEC,UAAU,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACrE,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAEC,aAAa,QAAQ,eAAe;AAClE,SAASC,MAAM,QAAQ,8BAA8B;AACrD,SAASC,yBAAyB,EAAEC,QAAQ,QAAQ,UAAU;AAC9D,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,iBAAiB,QAAQ,8BAA8B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAIhE,OAAO,SAAAC,eAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL,MAAAC,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B;IAAAC,sBAAA;IAAAC,yBAAA;IAAAC;EAAA,IAA0Eb,iBAAiB,CAAC,CAAC;EAC7F,MAAAc,sBAAA,GAA+BjB,yBAAyB,CAAC,CAAC;EAC1D,MAAAkB,OAAA,GAAgBhB,UAAU,CAAC,CAAC;EAC5B,MAAAiB,UAAA,GAAmBhC,aAAa,CAAC,CAAC;EAAA,IAAAiC,EAAA;EAAA,IAAAV,CAAA,QAAAS,UAAA;IAEaC,EAAA,GAAAA,CAAA;MAC7CD,UAAU,CAAAE,QAAS,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;IAAA,CAChD;IAAAX,CAAA,MAAAS,UAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAFD,MAAAY,0BAAA,GAAmCF,EAEnB;EAAA,IAAAG,EAAA;EAAA,IAAAb,CAAA,QAAAS,UAAA;IAEkBI,EAAA,GAAAA,CAAA;MAChCJ,UAAU,CAAAE,QAAS,CAAC,SAAS,EAAE;QAAAG,IAAA,EAAQ;MAAO,CAAC,CAAC;IAAA,CACjD;IAAAd,CAAA,MAAAS,UAAA;IAAAT,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAFD,MAAAe,aAAA,GAAsBF,EAEN;EAAA,IAAAG,EAAA;EAAA,IAAAhB,CAAA,QAAAiB,MAAA,CAAAC,GAAA;IAONF,EAAA,gBAAArB,IAAA,CAACV,OAAO;MAASkC,OAAI,EAAJ,IAAI;MAAAC,QAAA,EAAC;IAAQ,CAAS,CAAC;IAAApB,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAAqB,EAAA;EAAA,IAAArB,CAAA,QAAAE,MAAA,CAAAoB,aAAA;IAD1CD,EAAA,gBAAA1B,IAAA,CAACZ,IAAI;MAAQwC,KAAoB,EAApBrB,MAAM,CAAAoB,aAAc;MAAAF,QAAA,EAC/BJ;IAAwC,CACpC,CAAC;IAAAhB,CAAA,MAAAE,MAAA,CAAAoB,aAAA;IAAAtB,CAAA,MAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAAA,IAAAwB,EAAA;EAAA,IAAAxB,CAAA,QAAAI,sBAAA,IAAAJ,CAAA,QAAAO,sBAAA,IAAAP,CAAA,QAAAM,UAAA,IAAAN,CAAA,SAAAK,yBAAA,IAAAL,CAAA,SAAAE,MAAA,CAAAuB,UAAA,IAAAzB,CAAA,SAAAE,MAAA,CAAAwB,cAAA;IACNF,EAAA,GAAAjB,sBAeA,iBAfAV,KAAA,CACEd,IAAI;MAAQwC,KAAiB,EAAjBrB,MAAM,CAAAuB,UAAW;MAAAL,QAAA,gBAC5BvB,KAAA,CAACd,IAAI;QAAQwC,KAAqB,EAArBrB,MAAM,CAAAwB,cAAe;QAAAN,QAAA,gBAChCzB,IAAA,CAACR,IAAI;UAAAiC,QAAA,EAAC;QAAqB,CAAM,CAAC,eAClCzB,IAAA,CAACR,IAAI;UAASgC,OAAU,EAAV,UAAU;UAAAC,QAAA,EAAC;QAGzB,CAAM,CAAC;MAAA,CACH,CAAC,eACPzB,IAAA,CAACN,MAAM;QACEsC,KAAuB,EAAvB,CAACvB,sBAAsB;QACfwB,aAA8C,EAA9CC,OAAA,IAAWxB,yBAAyB,CAAC,CAACwB,OAAO,CAAC;QACnDvB,QAAU,EAAVA;MAAU,CACrB,CAAC;IAAA,CAEN,CAAC;IAAAN,CAAA,MAAAI,sBAAA;IAAAJ,CAAA,MAAAO,sBAAA;IAAAP,CAAA,MAAAM,UAAA;IAAAN,CAAA,OAAAK,yBAAA;IAAAL,CAAA,OAAAE,MAAA,CAAAuB,UAAA;IAAAzB,CAAA,OAAAE,MAAA,CAAAwB,cAAA;IAAA1B,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,IAAA8B,EAAA;EAAA,IAAA9B,CAAA,SAAAY,0BAAA;IACDkB,EAAA,gBAAAnC,IAAA,CAACoC,MAAM;MAAOC,KAAuB,EAAvB,uBAAuB;MAAUpB,OAA0B,EAA1BA;IAA0B,CAAG,CAAC;IAAAZ,CAAA,OAAAY,0BAAA;IAAAZ,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAAA,IAAAiC,EAAA;EAAA,IAAAjC,CAAA,SAAAQ,OAAA,IAAAR,CAAA,SAAAe,aAAA;IAC5EkB,EAAA,GAAAzB,OAAO,KAAK,UAAiE,iBAA7Eb,IAAA,CAA2BoC,MAAM;MAAOC,KAAU,EAAV,UAAU;MAAUjB,OAAa,EAAbA;IAAa,CAAG,CAAC;IAAAf,CAAA,OAAAQ,OAAA;IAAAR,CAAA,OAAAe,aAAA;IAAAf,CAAA,OAAAiC,EAAA;EAAA;IAAAA,EAAA,GAAAjC,CAAA;EAAA;EAAA,IAAAkC,EAAA;EAAA,IAAAlC,CAAA,SAAAE,MAAA,CAAAiC,YAAA,IAAAnC,CAAA,SAAAqB,EAAA,IAAArB,CAAA,SAAAwB,EAAA,IAAAxB,CAAA,SAAA8B,EAAA,IAAA9B,CAAA,SAAAiC,EAAA;IAtBlFC,EAAA,gBAAAvC,IAAA,CAACd,UAAU;MAAgCuD,8BAAW,EAAX,WAAW;MAAAhB,QAAA,eACpDvB,KAAA,CAACd,IAAI;QAAQwC,KAAmB,EAAnBrB,MAAM,CAAAiC,YAAa;QAAAf,QAAA,GAC9BC,EAEO,EACNG,EAeA,EACDM,EAA6E,EAC5EG,EAA6E;MAAA,CAC1E;IAAC,CACG,CAAC;IAAAjC,CAAA,OAAAE,MAAA,CAAAiC,YAAA;IAAAnC,CAAA,OAAAqB,EAAA;IAAArB,CAAA,OAAAwB,EAAA;IAAAxB,CAAA,OAAA8B,EAAA;IAAA9B,CAAA,OAAAiC,EAAA;IAAAjC,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,IAAAqC,EAAA;EAAA,IAAArC,CAAA,SAAAiB,MAAA,CAAAC,GAAA;IAEXmB,EAAA,gBAAA1C,IAAA,CAACP,aAAa,IAAE,CAAC;IAAAY,CAAA,OAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAAA,IAAAsC,GAAA;EAAA,IAAAtC,CAAA,SAAAE,MAAA,CAAAqC,MAAA;IADnBD,GAAA,gBAAA3C,IAAA,CAACZ,IAAI;MAAQwC,KAAa,EAAbrB,MAAM,CAAAqC,MAAO;MAAAnB,QAAA,EACxBiB;IAAiB,CACb,CAAC;IAAArC,CAAA,OAAAE,MAAA,CAAAqC,MAAA;IAAAvC,CAAA,OAAAsC,GAAA;EAAA;IAAAA,GAAA,GAAAtC,CAAA;EAAA;EAAA,IAAAwC,GAAA;EAAA,IAAAxC,CAAA,SAAAE,MAAA,CAAAuC,SAAA,IAAAzC,CAAA,SAAAsC,GAAA,IAAAtC,CAAA,SAAAkC,EAAA;IA5BTM,GAAA,gBAAA3C,KAAA,CAACd,IAAI;MAAQwC,KAAgB,EAAhBrB,MAAM,CAAAuC,SAAU;MAAArB,QAAA,GAC3Bc,EAwBa,EACbI,GAEO;IAAA,CACH,CAAC;IAAAtC,CAAA,OAAAE,MAAA,CAAAuC,SAAA;IAAAzC,CAAA,OAAAsC,GAAA;IAAAtC,CAAA,OAAAkC,EAAA;IAAAlC,CAAA,OAAAwC,GAAA;EAAA;IAAAA,GAAA,GAAAxC,CAAA;EAAA;EAAA,OA7BPwC,GA6BO;AAAA;AASX,SAAAT,OAAAhC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAgB;IAAA+B,KAAA;IAAAU;EAAA,IAAA3C,EAA+B;EAC7C,MAAAG,MAAA,GAAeyC,eAAe,CAAC,CAAC;EAAA,IAAAjC,EAAA;EAAA,IAAAV,CAAA,QAAAgC,KAAA;IAS1BtB,EAAA,gBAAAf,IAAA,CAACR,IAAI;MAAAiC,QAAA,EAAEY;IAAK,CAAO,CAAC;IAAAhC,CAAA,MAAAgC,KAAA;IAAAhC,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAa,EAAA;EAAA,IAAAb,CAAA,QAAAE,MAAA,CAAA0C,OAAA;IACnB/B,EAAA,GAAAjC,QAAQ,CAAAiE,EAAG,KAAK,KAEhB,iBAFAlD,IAAA,CACET,IAAI;MAAM4D,IAAsB,EAAtB,sBAAsB;MAAOC,IAAE,EAAF,EAAE;MAASxB,KAAc,EAAdrB,MAAM,CAAA0C;IAAQ,CACnE,CAAC;IAAA5C,CAAA,MAAAE,MAAA,CAAA0C,OAAA;IAAA5C,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAE,MAAA,CAAA8C,KAAA,IAAAhD,CAAA,QAAAU,EAAA,IAAAV,CAAA,QAAAa,EAAA;IAJHG,EAAA,gBAAAnB,KAAA,CAACd,IAAI;MAAQwC,KAAY,EAAZrB,MAAM,CAAA8C,KAAM;MAAA5B,QAAA,GACvBV,EAAoB,EACnBG,EAEA;IAAA,CACG,CAAC;IAAAb,CAAA,MAAAE,MAAA,CAAA8C,KAAA;IAAAhD,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAAqB,EAAA;EAAA,IAAArB,CAAA,QAAAgC,KAAA,IAAAhC,CAAA,QAAA0C,OAAA,IAAA1C,CAAA,SAAAE,MAAA,CAAAuC,SAAA,IAAAzC,CAAA,SAAAgB,EAAA;IAXTK,EAAA,gBAAA1B,IAAA,CAACnB,iBAAiB;MACT+C,KAAgB,EAAhBrB,MAAM,CAAAuC,SAAU;MACdC,OAAO,EAAPA,OAAO;MACEO,iBAAQ,EAAR,QAAQ;MACNjB,kBAAK,EAALA,KAAK;MAAAZ,QAAA,EAEzBJ;IAKO,CACU,CAAC;IAAAhB,CAAA,MAAAgC,KAAA;IAAAhC,CAAA,MAAA0C,OAAA;IAAA1C,CAAA,OAAAE,MAAA,CAAAuC,SAAA;IAAAzC,CAAA,OAAAgB,EAAA;IAAAhB,CAAA,OAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAAA,OAZpBqB,EAYoB;AAAA;AAIxB,MAAMlB,SAAS,GAAGA,CAAA;EAAA,MAAAH,CAAA,GAAAC,EAAA;EAChB;IAAAiD;EAAA,IAAmB3D,QAAQ,CAAC,CAAC;EAC7B,MAAA4D,MAAA,GAAenE,iBAAiB,CAAC,CAAC;EAAA,IAAAe,EAAA;EAAA,IAAAC,CAAA,QAAAkD,MAAA,CAAAE,sBAAA,IAAApD,CAAA,QAAAmD,MAAA,CAAAE,MAAA;IAC3BtD,EAAA,GAAAjB,UAAU,CAAAwE,MAAO,CAAC;MAAAb,SAAA,EACZ;QAAAc,IAAA,EACH;MACR,CAAC;MAAAhB,MAAA,EACO;QAAAiB,aAAA,EACSC,IAAI,CAAAC,GAAI,CAACP,MAAM,CAAAE,MAAO,EAAE,CAAC;MAC1C,CAAC;MAAAlB,YAAA,EACa;QAAAwB,WAAA,EACC;MACf,CAAC;MAAArC,aAAA,EACc;QAAAsC,YAAA,EACC,EAAE;QAAAC,UAAA,EACJ,EAAE;QAAAL,aAAA,EACC,EAAE;QAAAM,iBAAA,EACE,CAAC;QAAAC,iBAAA,EACDb,MAAM,CAAAE;MAC3B,CAAC;MAAA3B,UAAA,EACW;QAAAuC,aAAA,EACK,KAAK;QAAAC,UAAA,EACR,YAAY;QAAAC,cAAA,EACR,eAAe;QAAAN,YAAA,EACjB,EAAE;QAAAO,eAAA,EACC,EAAE;QAAAL,iBAAA,EACA,CAAC;QAAAC,iBAAA,EACDb,MAAM,CAAAE;MAC3B,CAAC;MAAA1B,cAAA,EACe;QAAA6B,IAAA,EACR,CAAC;QAAAa,GAAA,EACF;MACP;IACF,CAAC,CAAC;IAAApE,CAAA,MAAAkD,MAAA,CAAAE,sBAAA;IAAApD,CAAA,MAAAmD,MAAA,CAAAE,MAAA;IAAArD,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OA9BKD,EA8BL;AAAA,CACH;AAED,MAAM4C,eAAe,GAAGA,CAAA;EAAA,MAAA3C,CAAA,GAAAC,EAAA;EACtB;IAAAiD;EAAA,IAAmB3D,QAAQ,CAAC,CAAC;EAAA,IAAAQ,EAAA;EAAA,IAAAC,CAAA,QAAAkD,MAAA,CAAAE,sBAAA,IAAApD,CAAA,QAAAkD,MAAA,CAAAmB,wBAAA;IACtBtE,EAAA,GAAAjB,UAAU,CAAAwE,MAAO,CAAC;MAAAb,SAAA,EACZ;QAAAkB,WAAA,EACI;MACf,CAAC;MAAAX,KAAA,EACM;QAAAgB,aAAA,EACU,KAAK;QAAAC,UAAA,EACR,QAAQ;QAAAC,cAAA,EACJ,eAAe;QAAAN,YAAA,EACjB,EAAE;QAAAO,eAAA,EACC,EAAE;QAAAL,iBAAA,EACA,CAAC;QAAAC,iBAAA,EACDb,MAAM,CAAAE;MAC3B,CAAC;MAAAR,OAAA,EACQ;QAAA0B,KAAA,EACApB,MAAM,CAAAmB;MACf;IACF,CAAC,CAAC;IAAArE,CAAA,MAAAkD,MAAA,CAAAE,sBAAA;IAAApD,CAAA,MAAAkD,MAAA,CAAAmB,wBAAA;IAAArE,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OAhBKD,EAgBL;AAAA,CACH","ignoreList":[]}
1
+ {"version":3,"file":"settings_screen.js","names":["PlatformPressable","useNavigation","React","useCallback","Platform","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","t9","t10","footer","t11","container","onPress","useNavRowStyles","chevron","OS","name","size","inner","accessibilityRole","colors","insets","borderColorDefaultBase","bottom","create","flex","justifyContent","paddingBottom","Math","max","paddingLeft","paddingRight","paddingTop","borderBottomWidth","borderBottomColor","flexDirection","alignItems","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, 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 <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 will\n 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 <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 flex: 1,\n justifyContent: 'flex-end',\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.31",
3
+ "version": "4.4.1-qa-1036.0",
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.31",
36
+ "@planningcenter/emoji-keyboard": "4.4.1-qa-1036.0",
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": "49bcabb80be23af0b7cc02eb64ebed1e53ab15ca"
87
+ "gitHead": "9f37793866610b35761115c51af6462ce827501a"
88
88
  }
@@ -27,10 +27,6 @@ import { addRecordInPagesData, deleteRecordInPagesData } from '../../../utils/ca
27
27
  import { getMessagesQueryKey } from '../../../utils/request/get_messages'
28
28
  import { MessageList } from '../message_list'
29
29
 
30
- jest.mock('@react-navigation/elements', () => ({
31
- ...jest.requireActual('@react-navigation/elements'),
32
- useHeaderHeight: () => 0,
33
- }))
34
30
  jest.mock('../../../hooks/use_api_client')
35
31
  const mockFlash = jest.fn()
36
32
  jest.mock('../../../hooks/use_animated_message_background_color', () => ({
@@ -1,5 +1,4 @@
1
1
  import { date as formatDate } from '@planningcenter/datetime-fmt'
2
- import { useHeaderHeight } from '@react-navigation/elements'
3
2
  import { noop } from 'lodash'
4
3
  import React, { RefObject, useCallback, useEffect, useRef, useState } from 'react'
5
4
  import { FlatList, FlatListProps, StyleSheet, View } from 'react-native'
@@ -8,7 +7,6 @@ import { ConversationResource } from '../../types/resources/conversation'
8
7
  import { MessageResource } from '../../types/resources/message'
9
8
  import { getRelativeDateStatus } from '../../utils/date'
10
9
  import { groupMessages, type DateSeparator, type EnrichedMessage } from '../../utils/group_messages'
11
- import { isLiquidGlassEnabled } from '../../utils/liquid_glass'
12
10
  import { CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL } from '../../utils/styles'
13
11
  import { isSystemMessage } from '../../utils/system_messages'
14
12
  import { Text } from '../display'
@@ -71,8 +69,6 @@ export function MessageList({
71
69
  onMomentumScrollEnd,
72
70
  }: MessageListProps) {
73
71
  const styles = useStyles()
74
- const headerHeight = useHeaderHeight()
75
- const glassHeaderInset = isLiquidGlassEnabled() ? headerHeight : 0
76
72
  const inReplyScreen = !!replyRootId
77
73
  const canDeleteNonAuthoredMessages =
78
74
  conversation.memberAbility?.canDeleteNonAuthoredMessages ?? false
@@ -159,8 +155,6 @@ export function MessageList({
159
155
  inverted
160
156
  ref={listRef}
161
157
  contentContainerStyle={styles.listContainer}
162
- contentInset={{ bottom: glassHeaderInset }}
163
- scrollIndicatorInsets={{ bottom: glassHeaderInset }}
164
158
  data={messagesWithSeparators}
165
159
  keyExtractor={item => item.id}
166
160
  onScroll={onScroll}
@@ -79,7 +79,6 @@ export const Conversations = ({ ListHeaderComponent }: ConversationsProps) => {
79
79
  data={data}
80
80
  keyExtractor={item => item.id.toString()}
81
81
  contentContainerStyle={styles.contentContainer}
82
- contentInsetAdjustmentBehavior="automatic"
83
82
  onRefresh={refetch}
84
83
  refreshing={!isFetched && isRefetching}
85
84
  ListHeaderComponent={ListHeaderComponent}
@@ -43,7 +43,6 @@ export function KeyboardScrollView({ children, contentContainerStyle }: Keyboard
43
43
  <KeyboardView>
44
44
  <ScrollView
45
45
  ref={scrollViewRef}
46
- contentInsetAdjustmentBehavior="automatic"
47
46
  contentContainerStyle={contentContainerStyle}
48
47
  onLayout={scrollFocusedInputIntoView}
49
48
  onContentSizeChange={scrollFocusedInputIntoView}
@@ -3,7 +3,7 @@ import { ApiCollection } from '../../types'
3
3
  import { DirectMessageCandidateResource } from '../../types/resources/direct_message_candidate'
4
4
  import { useApiClient } from '../use_api_client'
5
5
 
6
- export function useDirectMessageCandidates(term: string, { throwOnError = true } = {}) {
6
+ export function useDirectMessageCandidates(term: string) {
7
7
  const apiClient = useApiClient()
8
8
  return useQuery({
9
9
  queryKey: ['chat', '/me/direct_message_candidates', term],
@@ -26,6 +26,6 @@ export function useDirectMessageCandidates(term: string, { throwOnError = true }
26
26
  }) as Promise<ApiCollection<DirectMessageCandidateResource>>,
27
27
  enabled: term.length >= 1,
28
28
  staleTime: 1000 * 60,
29
- throwOnError,
29
+ throwOnError: true,
30
30
  })
31
31
  }
@@ -83,12 +83,9 @@ import { TeamConversationScreen } from '../screens/team_conversation_screen'
83
83
  import { isLiquidGlassEnabled } from '../utils/liquid_glass'
84
84
  import { ScreenLayoutWithChatAccessGate } from './screenLayout'
85
85
 
86
- const conversationGlassHeader = (): NativeStackNavigationOptions =>
87
- isLiquidGlassEnabled() ? { headerBlurEffect: 'systemChromeMaterial' } : {}
88
-
89
86
  const globalScreenOptions: () => NativeStackNavigationOptions = () => ({
90
87
  headerBackButtonDisplayMode: 'minimal',
91
- ...(isLiquidGlassEnabled() ? { headerShadowVisible: false, headerTransparent: true } : {}),
88
+ ...(isLiquidGlassEnabled() ? { headerShadowVisible: false } : {}),
92
89
  })
93
90
 
94
91
  export const NewConversationStack = createNativeStackNavigator({
@@ -154,7 +151,6 @@ export const NewConversationStack = createNativeStackNavigator({
154
151
  {
155
152
  title: 'New conversation',
156
153
  headerLeft: () => null,
157
- headerTransparent: false,
158
154
  },
159
155
  withRightClose({
160
156
  onPress: () => {
@@ -200,7 +196,6 @@ export const ChatStack = createNativeStackNavigator({
200
196
  options: ({ route, navigation }) =>
201
197
  composeOptions(
202
198
  {
203
- ...conversationGlassHeader(),
204
199
  headerTitle: (props: NativeStackHeaderRightProps) => {
205
200
  const { conversation_id, title, badge, deleted, muted } =
206
201
  route.params as ConversationRouteProps
@@ -237,10 +232,7 @@ export const ChatStack = createNativeStackNavigator({
237
232
  screen: ConversationScreen,
238
233
  options: ({ route, navigation }) =>
239
234
  composeOptions(
240
- {
241
- ...conversationGlassHeader(),
242
- title: (route.params as ConversationRouteProps)?.title ?? 'Reply',
243
- },
235
+ { title: (route.params as ConversationRouteProps)?.title ?? 'Reply' },
244
236
  withMinimalBack({ onPress: navigation.goBack })
245
237
  ),
246
238
  },
@@ -332,7 +324,6 @@ export const ChatStack = createNativeStackNavigator({
332
324
  {
333
325
  title: 'New conversation',
334
326
  headerLeft: () => null,
335
- headerTransparent: false,
336
327
  },
337
328
  withRightClose({ onPress: () => navigation.getParent()?.goBack() })
338
329
  ),
@@ -427,7 +427,6 @@ export function ConversationDetailsScreen({ route }: ConversationDetailsScreenPr
427
427
  return (
428
428
  <View style={styles.listContainer}>
429
429
  <FlatList
430
- contentInsetAdjustmentBehavior="automatic"
431
430
  data={listData as SectionListData}
432
431
  contentContainerStyle={styles.contentContainer}
433
432
  renderItem={({ item, index }) => {
@@ -59,10 +59,7 @@ export const ConversationNewEntryScreen = ({ route }: ConversationSelectRecipien
59
59
  }
60
60
 
61
61
  return (
62
- <ScrollView
63
- contentInsetAdjustmentBehavior="automatic"
64
- contentContainerStyle={styles.contentContainer}
65
- >
62
+ <ScrollView contentContainerStyle={styles.contentContainer}>
66
63
  <View style={styles.header}>
67
64
  <Heading variant="h2">Start a conversation by</Heading>
68
65
  </View>
@@ -1,6 +1,6 @@
1
1
  import { PlatformPressable } from '@react-navigation/elements'
2
2
  import { StackActions, useNavigation } from '@react-navigation/native'
3
- import { ReactElement, RefObject, useRef, useState } from 'react'
3
+ import { RefObject, useRef, useState } from 'react'
4
4
  import { FlatList, Pressable, StyleSheet, TextInput, View } from 'react-native'
5
5
  import { Avatar, Badge, Banner, Icon, KeyboardView, Spinner, Text } from '../../components'
6
6
  import { ActionButton } from '../../components/display/action_button'
@@ -92,31 +92,38 @@ export function ConversationSelectDirectMessageRecipientsScreen({
92
92
 
93
93
  return (
94
94
  <KeyboardView>
95
+ {isError && (
96
+ <Banner
97
+ appearance="error"
98
+ description="There was an issue starting the conversation. Please try again."
99
+ style={styles.errorBanner}
100
+ />
101
+ )}
102
+ <ToField
103
+ selectedPeople={selectedPeople}
104
+ searchTerm={searchTerm}
105
+ onSearchChange={setSearchTerm}
106
+ onRemove={removePerson}
107
+ onClear={() => setSelectedPeople(new Map())}
108
+ searchInputRef={searchInputRef}
109
+ />
95
110
  <View style={styles.candidateResultsContainer}>
96
- <CandidateResults
97
- term={debouncedTerm}
98
- selectedPeople={selectedPeople}
99
- onSelect={selectPerson}
100
- header={
101
- <>
102
- {isError && (
103
- <Banner
104
- appearance="error"
105
- description="There was an issue starting the conversation. Please try again."
106
- style={styles.errorBanner}
107
- />
108
- )}
109
- <ToField
110
- selectedPeople={selectedPeople}
111
- searchTerm={searchTerm}
112
- onSearchChange={setSearchTerm}
113
- onRemove={removePerson}
114
- onClear={() => setSelectedPeople(new Map())}
115
- searchInputRef={searchInputRef}
116
- />
117
- </>
111
+ <ComponentErrorBoundary
112
+ key={debouncedTerm}
113
+ fallback={
114
+ <Banner
115
+ appearance="error"
116
+ description="Couldn't load people right now. Try again."
117
+ style={styles.errorBanner}
118
+ />
118
119
  }
119
- />
120
+ >
121
+ <CandidateResults
122
+ term={debouncedTerm}
123
+ selectedPeople={selectedPeople}
124
+ onSelect={selectPerson}
125
+ />
126
+ </ComponentErrorBoundary>
120
127
  </View>
121
128
  <ActionButton
122
129
  title={buttonText}
@@ -207,74 +214,53 @@ function CandidateResults({
207
214
  term,
208
215
  selectedPeople,
209
216
  onSelect,
210
- header,
211
217
  }: {
212
218
  term: string
213
219
  selectedPeople: Map<string, DirectMessageCandidateResource>
214
220
  onSelect: (candidate: DirectMessageCandidateResource) => void
215
- header: ReactElement
216
221
  }) {
217
222
  const styles = useStyles()
218
- const { data, isFetching, isError } = useDirectMessageCandidates(term, { throwOnError: false })
223
+ const { data, isFetching } = useDirectMessageCandidates(term)
219
224
  const { groups, teams, resultsDescription } = useDirectMessageAffiliations()
220
225
 
221
- const unselectedCandidates = (data?.data ?? []).filter(c => !selectedPeople.has(c.id))
222
- const hasTruncated = (data?.meta.totalCount ?? 0) > (data?.data.length ?? 0)
223
- const isAtLimit = selectedPeople.size >= MAX_RECIPIENTS
224
- const showsResults = term.length >= 1 && !isAtLimit && !isError && unselectedCandidates.length > 0
225
-
226
- const emptyState = (() => {
227
- if (showsResults) return null
226
+ if (term.length < 1) {
227
+ if (selectedPeople.size > 0) return null
228
228
 
229
- if (term.length < 1) {
230
- if (selectedPeople.size > 0) return null
229
+ return (
230
+ <View style={styles.emptyState}>
231
+ <Icon name="churchCenter.people" size={40} style={styles.emptyStateIcon} />
232
+ <Text style={styles.emptyStateTitle}>Search for people to direct message</Text>
233
+ <Text variant="secondary" style={styles.emptyStateSubtitle}>
234
+ Start a conversation with people in your groups and teams.
235
+ </Text>
236
+ </View>
237
+ )
238
+ }
231
239
 
232
- return (
233
- <View style={styles.emptyState}>
234
- <Icon name="churchCenter.people" size={40} style={styles.emptyStateIcon} />
235
- <Text style={styles.emptyStateTitle}>Search for people to direct message</Text>
236
- <Text variant="secondary" style={styles.emptyStateSubtitle}>
237
- Start a conversation with people in your groups and teams.
238
- </Text>
239
- </View>
240
- )
241
- }
240
+ const isAtLimit = selectedPeople.size >= MAX_RECIPIENTS
242
241
 
243
- if (isError) {
244
- return (
245
- <ComponentErrorBoundary
246
- key={term}
247
- fallback={
248
- <Banner
249
- appearance="error"
250
- description="Couldn't load people right now. Try again."
251
- style={styles.errorBanner}
252
- />
253
- }
254
- >
255
- <CandidateSearchError term={term} />
256
- </ComponentErrorBoundary>
257
- )
258
- }
242
+ if (isAtLimit) {
243
+ return (
244
+ <View style={styles.emptyState}>
245
+ <Text variant="secondary" style={styles.emptyStateSubtitle}>
246
+ You can add up to {MAX_RECIPIENTS} people to a direct message.
247
+ </Text>
248
+ </View>
249
+ )
250
+ }
259
251
 
260
- if (isAtLimit) {
261
- return (
262
- <View style={styles.emptyState}>
263
- <Text variant="secondary" style={styles.emptyStateSubtitle}>
264
- You can add up to {MAX_RECIPIENTS} people to a direct message.
265
- </Text>
266
- </View>
267
- )
268
- }
252
+ const unselectedCandidates = (data?.data ?? []).filter(c => !selectedPeople.has(c.id))
253
+ const hasTruncated = (data?.meta.totalCount ?? 0) > (data?.data.length ?? 0)
269
254
 
270
- if (isFetching) {
271
- return (
272
- <View style={styles.emptyState}>
273
- <Spinner />
274
- </View>
275
- )
276
- }
255
+ if (isFetching && unselectedCandidates.length === 0) {
256
+ return (
257
+ <View style={styles.emptyState}>
258
+ <Spinner />
259
+ </View>
260
+ )
261
+ }
277
262
 
263
+ if (!isFetching && unselectedCandidates.length === 0) {
278
264
  return (
279
265
  <View style={styles.emptyState}>
280
266
  <Icon name="general.search" size={32} style={styles.emptyStateIcon} />
@@ -284,16 +270,13 @@ function CandidateResults({
284
270
  </Text>
285
271
  </View>
286
272
  )
287
- })()
273
+ }
288
274
 
289
275
  return (
290
276
  <CandidateList
291
- header={header}
292
- candidates={showsResults ? unselectedCandidates : []}
293
- hasTruncated={showsResults && hasTruncated}
294
- description={showsResults ? resultsDescription : null}
295
- showsHeading={showsResults}
296
- emptyState={emptyState}
277
+ candidates={unselectedCandidates}
278
+ hasTruncated={hasTruncated}
279
+ description={resultsDescription}
297
280
  groups={groups}
298
281
  teams={teams}
299
282
  onSelect={onSelect}
@@ -301,11 +284,6 @@ function CandidateResults({
301
284
  )
302
285
  }
303
286
 
304
- function CandidateSearchError({ term }: { term: string }) {
305
- useDirectMessageCandidates(term)
306
- return null
307
- }
308
-
309
287
  function candidateBadges(candidate: DirectMessageCandidateResource) {
310
288
  const badges = []
311
289
  if (candidate.directMessagesDisabled) badges.push({ title: 'DMs off' })
@@ -331,22 +309,16 @@ function candidateAffiliationNames(
331
309
  }
332
310
 
333
311
  function CandidateList({
334
- header,
335
312
  candidates,
336
313
  hasTruncated,
337
314
  description,
338
- showsHeading,
339
- emptyState,
340
315
  groups,
341
316
  teams,
342
317
  onSelect,
343
318
  }: {
344
- header: ReactElement
345
319
  candidates: DirectMessageCandidateResource[]
346
320
  hasTruncated: boolean
347
321
  description: string | null
348
- showsHeading: boolean
349
- emptyState: ReactElement | null
350
322
  groups: Map<number, string>
351
323
  teams: Map<number, string>
352
324
  onSelect: (candidate: DirectMessageCandidateResource) => void
@@ -358,7 +330,6 @@ function CandidateList({
358
330
  return (
359
331
  <FlatList<DirectMessageCandidateResource>
360
332
  data={available}
361
- contentInsetAdjustmentBehavior="automatic"
362
333
  keyboardShouldPersistTaps="handled"
363
334
  keyExtractor={item => item.id}
364
335
  renderItem={({ item }) => (
@@ -369,13 +340,7 @@ function CandidateList({
369
340
  onSelect={() => onSelect(item)}
370
341
  />
371
342
  )}
372
- ListHeaderComponent={
373
- <>
374
- {header}
375
- {showsHeading && <ResultsHeading description={description} />}
376
- </>
377
- }
378
- ListEmptyComponent={emptyState}
343
+ ListHeaderComponent={<ResultsHeading description={description} />}
379
344
  ListFooterComponent={
380
345
  <>
381
346
  {dmDisabled.length > 0 && (
@@ -60,7 +60,6 @@ export const ConversationSelectGroupRecipientsScreen = ({
60
60
 
61
61
  return (
62
62
  <SectionList<GroupsGroupResource, GroupsSection>
63
- contentInsetAdjustmentBehavior="automatic"
64
63
  sections={sections}
65
64
  keyExtractor={item => item.id.toString()}
66
65
  stickySectionHeadersEnabled={false}
@@ -32,7 +32,6 @@ export const ConversationSelectTeamsILeadRecipientsScreen = ({
32
32
 
33
33
  return (
34
34
  <FlatList
35
- contentInsetAdjustmentBehavior="automatic"
36
35
  data={serviceTypes}
37
36
  keyExtractor={item => item.id.toString()}
38
37
  contentContainerStyle={styles.contentContainer}
@@ -1,6 +1,6 @@
1
1
  import { StaticScreenProps, useNavigation } from '@react-navigation/native'
2
2
  import { useCallback, useMemo } from 'react'
3
- import { Alert, Linking, ScrollView, StyleSheet, View } from 'react-native'
3
+ import { Alert, Linking, StyleSheet, View } from 'react-native'
4
4
  import { Heading, PressableRow, Text, TextInlineButton } from '../components'
5
5
  import { useApiGet, useTheme } from '../hooks'
6
6
  import { useAppName } from '../hooks/use_app_name'
@@ -56,7 +56,7 @@ export const GetHelpScreen = ({ route }: GetHelpScreenProps) => {
56
56
  }, [navigation])
57
57
 
58
58
  return (
59
- <ScrollView contentInsetAdjustmentBehavior="automatic" contentContainerStyle={styles.container}>
59
+ <View style={[styles.container]}>
60
60
  {appSpecificHelpUrls.length > 0 && (
61
61
  <Heading variant="h2" style={[styles.heading, styles.headingBottomBorder]}>
62
62
  How-to articles
@@ -90,7 +90,7 @@ export const GetHelpScreen = ({ route }: GetHelpScreenProps) => {
90
90
  to the development team.
91
91
  </Text>
92
92
  </View>
93
- </ScrollView>
93
+ </View>
94
94
  )
95
95
  }
96
96
 
@@ -145,7 +145,7 @@ const useStyles = () => {
145
145
 
146
146
  return StyleSheet.create({
147
147
  container: {
148
- flexGrow: 1,
148
+ flex: 1,
149
149
  },
150
150
  text: {
151
151
  paddingVertical: 4,