@planningcenter/chat-react-native 3.16.0-rc.0 → 3.16.0-rc.1
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 +6 -3
- package/build/navigation/index.d.ts.map +1 -1
- package/build/screens/conversations/conversations_screen.js +1 -1
- package/build/screens/conversations/conversations_screen.js.map +1 -1
- package/build/screens/get_help_screen.d.ts +6 -3
- package/build/screens/get_help_screen.d.ts.map +1 -1
- package/build/screens/get_help_screen.js +22 -10
- package/build/screens/get_help_screen.js.map +1 -1
- package/package.json +2 -2
- package/src/screens/conversations/conversations_screen.tsx +1 -1
- package/src/screens/get_help_screen.tsx +52 -18
|
@@ -270,9 +270,12 @@ export declare const ChatStack: import("@react-navigation/native").TypedNavigato
|
|
|
270
270
|
readonly options: ({ navigation, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
271
271
|
};
|
|
272
272
|
readonly GetHelp: {
|
|
273
|
-
readonly screen: ({}: {
|
|
274
|
-
|
|
275
|
-
|
|
273
|
+
readonly screen: ({ route }: {
|
|
274
|
+
route: {
|
|
275
|
+
params: {
|
|
276
|
+
type?: "chat" | "general";
|
|
277
|
+
};
|
|
278
|
+
};
|
|
276
279
|
}) => React.JSX.Element;
|
|
277
280
|
readonly options: ({ navigation }: {
|
|
278
281
|
route: import("@react-navigation/native").RouteProp<import("@react-navigation/native").ParamListBase, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAEL,2BAA2B,EAC5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EACL,uBAAuB,EAExB,MAAM,yDAAyD,CAAA;AAChE,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,EAEL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAA;AAIvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EACL,oBAAoB,EAErB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAA0B,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AAEtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAO7C,eAAO,MAAM,oBAAoB;;;;;;;;;uOA5Cd,mBACR;;;;;;;;;;;;;uBA4PogT,gBAAiB,KAAK;;;qCAtMxgT,2BAA2B;;;;;;;;;uBAsMu9S,gBAAiB,KAAK;;;qCA5LxgT,2BAA2B;;;;;;;;uBA4Lu9S,gBAAiB,KAAK;;;qCA/KxgT,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;uBA+Ku9S,gBAAiB,KAAK;;;;qCA7JxgT,2BAA2B;;;;EAUtD,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;uBAiJy/S,gBAAiB,KAAK;;;;qCAtIxgT,2BAA2B;;;;;;;;;;;;uBAsIu9S,gBAAiB,KAAK;;qCAtHxgT,2BAA2B;qCAc3B,2BAA2B;;;;;;;;;;;;;;;;;uBAwGu9S,gBAAiB,KAAK;;;;qCAlExgT,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;mDAkEw+S,KAAK;;;iDAtMxgT,2BAA2B;;;;;;;;;mDAsMw+S,KAAK;;;iDA5LxgT,2BAA2B;;;;;;;;mDA4Lw+S,KAAK;;;iDA/KxgT,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;mDA+Kw+S,KAAK;;;;iDA7JxgT,2BAA2B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAEL,2BAA2B,EAC5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EACL,uBAAuB,EAExB,MAAM,yDAAyD,CAAA;AAChE,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,EAEL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAA;AAIvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EACL,oBAAoB,EAErB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAA0B,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AAEtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAO7C,eAAO,MAAM,oBAAoB;;;;;;;;;uOA5Cd,mBACR;;;;;;;;;;;;;uBA4PogT,gBAAiB,KAAK;;;qCAtMxgT,2BAA2B;;;;;;;;;uBAsMu9S,gBAAiB,KAAK;;;qCA5LxgT,2BAA2B;;;;;;;;uBA4Lu9S,gBAAiB,KAAK;;;qCA/KxgT,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;uBA+Ku9S,gBAAiB,KAAK;;;;qCA7JxgT,2BAA2B;;;;EAUtD,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;uBAiJy/S,gBAAiB,KAAK;;;;qCAtIxgT,2BAA2B;;;;;;;;;;;;uBAsIu9S,gBAAiB,KAAK;;qCAtHxgT,2BAA2B;qCAc3B,2BAA2B;;;;;;;;;;;;;;;;;uBAwGu9S,gBAAiB,KAAK;;;;qCAlExgT,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;mDAkEw+S,KAAK;;;iDAtMxgT,2BAA2B;;;;;;;;;mDAsMw+S,KAAK;;;iDA5LxgT,2BAA2B;;;;;;;;mDA4Lw+S,KAAK;;;iDA/KxgT,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;mDA+Kw+S,KAAK;;;;iDA7JxgT,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA6Ju9S,gBAAiB,KAAK;;;;;;;;;;;;;;;;;EATniT,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"}
|
|
@@ -42,7 +42,7 @@ export function ConversationsScreen({ route }) {
|
|
|
42
42
|
});
|
|
43
43
|
};
|
|
44
44
|
const handleGetHelp = useCallback(() => {
|
|
45
|
-
navigation.navigate('GetHelp');
|
|
45
|
+
navigation.navigate('GetHelp', { type: 'chat' });
|
|
46
46
|
}, [navigation]);
|
|
47
47
|
return (<View style={styles.container}>
|
|
48
48
|
<ConversationsContextProvider args={route.params}>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations_screen.js","sourceRoot":"","sources":["../../../src/screens/conversations/conversations_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,EAAE,2BAA2B,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AASxE,MAAM,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAA4B;IACrE,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAA;IAC1D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;IAClD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,2BAA2B,CAAC,mBAAmB,CAAC,CAAA;IAEpF,MAAM,+BAA+B,GAAG,GAAG,EAAE;QAC3C,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAChC,MAAM,EAAE,iBAAiB;gBACzB,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpC,eAAe,EAAE,aAAa;oBAC9B,GAAG,KAAK,CAAC,MAAM;iBAChB;aACF,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAChC,MAAM,EAAE,iBAAiB;gBACzB,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;oBAClB,eAAe,EAAE,aAAa;oBAC9B,GAAG,KAAK,CAAC,MAAM;iBAChB;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;YAChC,MAAM,EAAE,8BAA8B;YACtC,MAAM,EAAE;gBACN,GAAG,KAAK,CAAC,MAAM;aAChB;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"conversations_screen.js","sourceRoot":"","sources":["../../../src/screens/conversations/conversations_screen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React, { useCallback } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Conversations, TextButton } from '../../components'\nimport { ActionButton } from '../../components/display/action_button'\nimport { ConversationsContextProvider } from '../../contexts/conversations_context'\nimport { useCanCreateConversations } from '../../hooks'\nimport { GraphId } from '../../types/resources/group_resource'\nimport { destructureChatGroupGraphId, MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../utils'\nimport { ListHeaderComponent } from './components/list_header_component'\nimport { AppName } from '../../types/resources/app_name'\n\nexport type ConversationsScreenProps = StaticScreenProps<{\n title?: string\n chat_group_graph_id?: GraphId\n group_source_app_name?: AppName\n}>\n\nexport function ConversationsScreen({ route }: ConversationsScreenProps) {\n const navigation = useNavigation()\n const canCreateConversations = useCanCreateConversations()\n const styles = useStyles()\n\n const { chat_group_graph_id } = route.params || {}\n const { sourceAppName, sourceId } = destructureChatGroupGraphId(chat_group_graph_id)\n\n const handleNewConversationNavigation = () => {\n if (sourceAppName === 'Services') {\n return navigation.navigate('New', {\n screen: 'ConversationNew',\n params: {\n team_ids: sourceId ? [sourceId] : [],\n source_app_name: sourceAppName,\n ...route.params,\n },\n })\n }\n if (sourceAppName === 'Groups') {\n return navigation.navigate('New', {\n screen: 'ConversationNew',\n params: {\n group_id: sourceId,\n source_app_name: sourceAppName,\n ...route.params,\n },\n })\n }\n\n return navigation.navigate('New', {\n screen: 'ConversationSelectRecipients',\n params: {\n ...route.params,\n },\n })\n }\n\n const handleGetHelp = useCallback(() => {\n navigation.navigate('GetHelp', { type: 'chat' })\n }, [navigation])\n\n return (\n <View style={styles.container}>\n <ConversationsContextProvider args={route.params}>\n <Conversations ListHeaderComponent={ListHeaderComponent} />\n </ConversationsContextProvider>\n <ActionButton\n visible={canCreateConversations}\n title=\"New conversation\"\n onPress={handleNewConversationNavigation}\n buttonIconNameLeft=\"churchCenter.signups\"\n secondaryButton={\n <TextButton\n variant=\"tertiary\"\n onPress={handleGetHelp}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityShowsLargeContentViewer\n accessibilityLargeContentTitle=\"Get help\"\n >\n Get help\n </TextButton>\n }\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n },\n })\n}\n"]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type
|
|
3
|
-
|
|
1
|
+
import { StaticScreenProps } from '@react-navigation/native';
|
|
2
|
+
type GetHelpScreenRouteProps = {
|
|
3
|
+
type?: 'chat' | 'general';
|
|
4
|
+
};
|
|
5
|
+
type GetHelpScreenProps = StaticScreenProps<GetHelpScreenRouteProps>;
|
|
6
|
+
export declare const GetHelpScreen: ({ route }: GetHelpScreenProps) => import("react").JSX.Element;
|
|
4
7
|
export {};
|
|
5
8
|
//# sourceMappingURL=get_help_screen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_help_screen.d.ts","sourceRoot":"","sources":["../../src/screens/get_help_screen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get_help_screen.d.ts","sourceRoot":"","sources":["../../src/screens/get_help_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAQ3E,KAAK,uBAAuB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,CAAA;AAED,KAAK,kBAAkB,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAA;AAmDpE,eAAO,MAAM,aAAa,cAAe,kBAAkB,gCAyD1D,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useNavigation } from '@react-navigation/native';
|
|
2
|
-
import { useCallback } from 'react';
|
|
2
|
+
import { useCallback, useMemo } from 'react';
|
|
3
3
|
import { Linking, StyleSheet, View } from 'react-native';
|
|
4
4
|
import { Heading, PressableRow, Text, TextInlineButton } from '../components';
|
|
5
5
|
import { useApiGet, useTheme } from '../hooks';
|
|
@@ -21,24 +21,36 @@ const useOrganization = () => {
|
|
|
21
21
|
});
|
|
22
22
|
return organization;
|
|
23
23
|
};
|
|
24
|
-
|
|
24
|
+
const useHelpUrls = () => {
|
|
25
|
+
const { data: helpUrls = [] } = useApiGet({
|
|
26
|
+
url: '/help_urls',
|
|
27
|
+
data: {
|
|
28
|
+
fields: {
|
|
29
|
+
HelpUrl: [],
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
return helpUrls;
|
|
34
|
+
};
|
|
35
|
+
export const GetHelpScreen = ({ route }) => {
|
|
36
|
+
const { type = 'chat' } = route.params || {};
|
|
25
37
|
const styles = useStyles();
|
|
26
38
|
const appName = useAppName();
|
|
27
|
-
const isChurchCenter = appName === 'churchcenter';
|
|
28
39
|
const navigation = useNavigation();
|
|
29
40
|
const organization = useOrganization();
|
|
30
41
|
const contactPresent = organization?.contactEmail || organization?.contactPhoneNumber;
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
const helpUrls = useHelpUrls();
|
|
43
|
+
const appSpecificHelpUrls = useMemo(() => helpUrls
|
|
44
|
+
.filter(helpUrl => helpUrl.product === appName)
|
|
45
|
+
.filter(helpUrl => helpUrl.type.includes(type)), [helpUrls, appName, type]);
|
|
34
46
|
const handleNavigateToBugReport = useCallback(() => {
|
|
35
47
|
navigation.navigate('BugReport');
|
|
36
48
|
}, [navigation]);
|
|
37
49
|
return (<View style={[styles.container]}>
|
|
38
|
-
<Heading variant="h2" style={[styles.heading, styles.headingBottomBorder]}>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
<PressableRow onPress={() => Linking.openURL(
|
|
50
|
+
{appSpecificHelpUrls.length > 0 && (<Heading variant="h2" style={[styles.heading, styles.headingBottomBorder]}>
|
|
51
|
+
How-to articles
|
|
52
|
+
</Heading>)}
|
|
53
|
+
{appSpecificHelpUrls.map(helpUrl => (<PressableRow key={helpUrl.id} onPress={() => Linking.openURL(helpUrl.link)} text={helpUrl.title} isActive={true} iconPath="general.newWindow"/>))}
|
|
42
54
|
{contactPresent && (<Heading variant="h2" style={[styles.heading, styles.headingBottomBorder]}>
|
|
43
55
|
Contact {organization?.name}
|
|
44
56
|
</Heading>)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_help_screen.js","sourceRoot":"","sources":["../../src/screens/get_help_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"get_help_screen.js","sourceRoot":"","sources":["../../src/screens/get_help_screen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport { useCallback, useMemo } from 'react'\nimport { Linking, StyleSheet, View } from 'react-native'\nimport { Heading, PressableRow, Text, TextInlineButton } from '../components'\nimport { useApiGet, useTheme } from '../hooks'\nimport { useAppName } from '../hooks/use_app_name'\nimport { ResourceObject } from '../types'\n\ntype GetHelpScreenRouteProps = {\n type?: 'chat' | 'general'\n}\n\ntype GetHelpScreenProps = StaticScreenProps<GetHelpScreenRouteProps>\n\ninterface OrganizationResource extends ResourceObject {\n id: number\n name: string\n contactEmail: string\n contactPhoneNumber: string\n churchCenterChatHelpUrl: string\n servicesChatHelpUrl: string\n}\n\nconst useOrganization = () => {\n const { data: organization } = useApiGet<OrganizationResource>({\n url: '/',\n data: {\n fields: {\n Organization: [\n 'contact_phone_number',\n 'contact_email',\n 'name',\n 'church_center_chat_help_url',\n 'services_chat_help_url',\n ],\n },\n },\n })\n\n return organization\n}\n\ninterface HelpUrlResource extends ResourceObject {\n id: number\n link: string\n title: string\n product: 'services' | 'churchcenter'\n type: 'chat' | 'general'\n}\n\nconst useHelpUrls = () => {\n const { data: helpUrls = [] } = useApiGet<HelpUrlResource[]>({\n url: '/help_urls',\n data: {\n fields: {\n HelpUrl: [],\n },\n },\n })\n\n return helpUrls\n}\n\nexport const GetHelpScreen = ({ route }: GetHelpScreenProps) => {\n const { type = 'chat' } = route.params || {}\n const styles = useStyles()\n const appName = useAppName()\n const navigation = useNavigation()\n const organization = useOrganization()\n const contactPresent = organization?.contactEmail || organization?.contactPhoneNumber\n const helpUrls = useHelpUrls()\n const appSpecificHelpUrls = useMemo(\n () =>\n helpUrls\n .filter(helpUrl => helpUrl.product === appName)\n .filter(helpUrl => helpUrl.type.includes(type)),\n [helpUrls, appName, type]\n )\n\n const handleNavigateToBugReport = useCallback(() => {\n navigation.navigate('BugReport')\n }, [navigation])\n\n return (\n <View style={[styles.container]}>\n {appSpecificHelpUrls.length > 0 && (\n <Heading variant=\"h2\" style={[styles.heading, styles.headingBottomBorder]}>\n How-to articles\n </Heading>\n )}\n {appSpecificHelpUrls.map(helpUrl => (\n <PressableRow\n key={helpUrl.id}\n onPress={() => Linking.openURL(helpUrl.link)}\n text={helpUrl.title}\n isActive={true}\n iconPath=\"general.newWindow\"\n />\n ))}\n {contactPresent && (\n <Heading variant=\"h2\" style={[styles.heading, styles.headingBottomBorder]}>\n Contact {organization?.name}\n </Heading>\n )}\n <ContactRow email={organization?.contactEmail} />\n <ContactRow phone={organization?.contactPhoneNumber} />\n <Heading variant=\"h2\" style={[styles.heading]}>\n Report a bug\n </Heading>\n <View style={styles.text}>\n <Text>\n Having an issue?{' '}\n <TextInlineButton onPress={handleNavigateToBugReport}>\n Submit a bug report\n </TextInlineButton>{' '}\n to the development team.\n </Text>\n </View>\n </View>\n )\n}\n\nconst ContactRow = ({ email, phone }: { email?: string; phone?: string }) => {\n if (!email && !phone) return null\n\n const contact = email || phone\n\n return (\n <PressableRow\n onPress={() => {}}\n text={contact || ''}\n isActive={true}\n iconPath={email ? 'services.email' : 'general.phone'}\n />\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n flex: 1,\n },\n text: {\n paddingVertical: 4,\n paddingHorizontal: 16,\n },\n heading: {\n marginLeft: 16,\n paddingTop: 24,\n paddingBottom: 12,\n },\n headingBottomBorder: {\n marginLeft: 16,\n paddingLeft: 0,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n headingAux: {\n paddingTop: 24,\n paddingHorizontal: 16,\n },\n })\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/chat-react-native",
|
|
3
|
-
"version": "3.16.0-rc.
|
|
3
|
+
"version": "3.16.0-rc.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"react-native-url-polyfill": "^2.0.0",
|
|
56
56
|
"typescript": "<5.6.0"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "47e50810584fa31ba56562462c46916de42d51ec"
|
|
59
59
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { useNavigation } from '@react-navigation/native'
|
|
2
|
-
import {
|
|
3
|
-
import { useCallback } from 'react'
|
|
1
|
+
import { StaticScreenProps, useNavigation } from '@react-navigation/native'
|
|
2
|
+
import { useCallback, useMemo } from 'react'
|
|
4
3
|
import { Linking, StyleSheet, View } from 'react-native'
|
|
5
4
|
import { Heading, PressableRow, Text, TextInlineButton } from '../components'
|
|
6
5
|
import { useApiGet, useTheme } from '../hooks'
|
|
7
6
|
import { useAppName } from '../hooks/use_app_name'
|
|
8
7
|
import { ResourceObject } from '../types'
|
|
9
8
|
|
|
10
|
-
type
|
|
9
|
+
type GetHelpScreenRouteProps = {
|
|
10
|
+
type?: 'chat' | 'general'
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
type GetHelpScreenProps = StaticScreenProps<GetHelpScreenRouteProps>
|
|
11
14
|
|
|
12
15
|
interface OrganizationResource extends ResourceObject {
|
|
13
16
|
id: number
|
|
@@ -37,16 +40,42 @@ const useOrganization = () => {
|
|
|
37
40
|
return organization
|
|
38
41
|
}
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
interface HelpUrlResource extends ResourceObject {
|
|
44
|
+
id: number
|
|
45
|
+
link: string
|
|
46
|
+
title: string
|
|
47
|
+
product: 'services' | 'churchcenter'
|
|
48
|
+
type: 'chat' | 'general'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const useHelpUrls = () => {
|
|
52
|
+
const { data: helpUrls = [] } = useApiGet<HelpUrlResource[]>({
|
|
53
|
+
url: '/help_urls',
|
|
54
|
+
data: {
|
|
55
|
+
fields: {
|
|
56
|
+
HelpUrl: [],
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
return helpUrls
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export const GetHelpScreen = ({ route }: GetHelpScreenProps) => {
|
|
65
|
+
const { type = 'chat' } = route.params || {}
|
|
41
66
|
const styles = useStyles()
|
|
42
67
|
const appName = useAppName()
|
|
43
|
-
const isChurchCenter = appName === 'churchcenter'
|
|
44
68
|
const navigation = useNavigation()
|
|
45
69
|
const organization = useOrganization()
|
|
46
70
|
const contactPresent = organization?.contactEmail || organization?.contactPhoneNumber
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
71
|
+
const helpUrls = useHelpUrls()
|
|
72
|
+
const appSpecificHelpUrls = useMemo(
|
|
73
|
+
() =>
|
|
74
|
+
helpUrls
|
|
75
|
+
.filter(helpUrl => helpUrl.product === appName)
|
|
76
|
+
.filter(helpUrl => helpUrl.type.includes(type)),
|
|
77
|
+
[helpUrls, appName, type]
|
|
78
|
+
)
|
|
50
79
|
|
|
51
80
|
const handleNavigateToBugReport = useCallback(() => {
|
|
52
81
|
navigation.navigate('BugReport')
|
|
@@ -54,15 +83,20 @@ export const GetHelpScreen = ({}: GetHelpScreenProps) => {
|
|
|
54
83
|
|
|
55
84
|
return (
|
|
56
85
|
<View style={[styles.container]}>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
{appSpecificHelpUrls.length > 0 && (
|
|
87
|
+
<Heading variant="h2" style={[styles.heading, styles.headingBottomBorder]}>
|
|
88
|
+
How-to articles
|
|
89
|
+
</Heading>
|
|
90
|
+
)}
|
|
91
|
+
{appSpecificHelpUrls.map(helpUrl => (
|
|
92
|
+
<PressableRow
|
|
93
|
+
key={helpUrl.id}
|
|
94
|
+
onPress={() => Linking.openURL(helpUrl.link)}
|
|
95
|
+
text={helpUrl.title}
|
|
96
|
+
isActive={true}
|
|
97
|
+
iconPath="general.newWindow"
|
|
98
|
+
/>
|
|
99
|
+
))}
|
|
66
100
|
{contactPresent && (
|
|
67
101
|
<Heading variant="h2" style={[styles.heading, styles.headingBottomBorder]}>
|
|
68
102
|
Contact {organization?.name}
|