@planningcenter/chat-react-native 3.42.3-qa-staging.6 → 3.42.3-qa-856.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/conversation/messages_disabled_banners.d.ts +3 -2
- package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
- package/build/components/conversation/messages_disabled_banners.js +7 -2
- package/build/components/conversation/messages_disabled_banners.js.map +1 -1
- package/build/components/display/adult_requirement_notice.js +1 -1
- package/build/components/display/adult_requirement_notice.js.map +1 -1
- package/build/components/display/platform_modal_header_buttons.d.ts +7 -29
- package/build/components/display/platform_modal_header_buttons.d.ts.map +1 -1
- package/build/components/display/platform_modal_header_buttons.js +24 -76
- package/build/components/display/platform_modal_header_buttons.js.map +1 -1
- package/build/hooks/index.d.ts +1 -1
- package/build/hooks/index.d.ts.map +1 -1
- package/build/hooks/index.js +1 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/use_conversation.d.ts.map +1 -1
- package/build/hooks/use_conversation.js +0 -1
- package/build/hooks/use_conversation.js.map +1 -1
- package/build/hooks/use_conversation_jolt_events.d.ts.map +1 -1
- package/build/hooks/use_conversation_jolt_events.js +2 -10
- package/build/hooks/use_conversation_jolt_events.js.map +1 -1
- package/build/hooks/use_current_person.d.ts.map +1 -1
- package/build/hooks/use_current_person.js +0 -1
- package/build/hooks/use_current_person.js.map +1 -1
- package/build/hooks/use_direct_messages_enabled.d.ts +2 -0
- package/build/hooks/use_direct_messages_enabled.d.ts.map +1 -0
- package/build/hooks/use_direct_messages_enabled.js +16 -0
- package/build/hooks/use_direct_messages_enabled.js.map +1 -0
- package/build/hooks/use_features.d.ts +1 -0
- package/build/hooks/use_features.d.ts.map +1 -1
- package/build/hooks/use_features.js +1 -0
- package/build/hooks/use_features.js.map +1 -1
- package/build/navigation/index.d.ts +84 -50
- package/build/navigation/index.d.ts.map +1 -1
- package/build/navigation/index.js +36 -27
- package/build/navigation/index.js.map +1 -1
- package/build/screens/bug_report_screen.d.ts.map +1 -1
- package/build/screens/bug_report_screen.js +3 -9
- package/build/screens/bug_report_screen.js.map +1 -1
- package/build/screens/conversation_details_screen.d.ts.map +1 -1
- package/build/screens/conversation_details_screen.js +1 -2
- package/build/screens/conversation_details_screen.js.map +1 -1
- package/build/screens/conversation_filters/components/conversation_filters.js +3 -3
- package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
- package/build/screens/conversation_filters/components/rows.js +1 -1
- package/build/screens/conversation_filters/components/rows.js.map +1 -1
- package/build/screens/conversation_filters_screen.d.ts.map +1 -1
- package/build/screens/conversation_filters_screen.js +14 -1
- package/build/screens/conversation_filters_screen.js.map +1 -1
- package/build/screens/conversation_screen.d.ts.map +1 -1
- package/build/screens/conversation_screen.js +3 -10
- package/build/screens/conversation_screen.js.map +1 -1
- package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +1 -1
- package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
- package/build/screens/conversation_select_recipients/components/restricted_group_row.js +1 -1
- package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
- package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
- package/build/screens/conversation_select_type_screen.js +7 -4
- package/build/screens/conversation_select_type_screen.js.map +1 -1
- package/build/screens/conversations/components/list_header_component.js +3 -3
- package/build/screens/conversations/components/list_header_component.js.map +1 -1
- package/build/screens/message_report_screen.js +3 -5
- package/build/screens/message_report_screen.js.map +1 -1
- package/build/screens/notification_settings_screen.d.ts.map +1 -1
- package/build/screens/notification_settings_screen.js +2 -0
- package/build/screens/notification_settings_screen.js.map +1 -1
- package/build/screens/settings_screen.js +3 -3
- package/build/screens/settings_screen.js.map +1 -1
- package/build/types/jolt_events/conversation_events.d.ts +2 -2
- package/build/types/jolt_events/conversation_events.d.ts.map +1 -1
- package/build/types/jolt_events/conversation_events.js.map +1 -1
- package/build/types/resources/conversation.d.ts +2 -2
- package/build/types/resources/conversation.d.ts.map +1 -1
- package/build/types/resources/conversation.js.map +1 -1
- package/build/types/resources/person.d.ts +0 -1
- package/build/types/resources/person.d.ts.map +1 -1
- package/build/types/resources/person.js.map +1 -1
- package/build/utils/conversation_safety_constants.d.ts +1 -1
- package/build/utils/conversation_safety_constants.d.ts.map +1 -1
- package/build/utils/conversation_safety_constants.js +1 -1
- package/build/utils/conversation_safety_constants.js.map +1 -1
- package/build/utils/request/conversation.d.ts.map +1 -1
- package/build/utils/request/conversation.js +0 -1
- package/build/utils/request/conversation.js.map +1 -1
- package/package.json +4 -4
- package/src/components/conversation/messages_disabled_banners.tsx +11 -3
- package/src/components/display/adult_requirement_notice.tsx +1 -1
- package/src/components/display/platform_modal_header_buttons.tsx +50 -163
- package/src/hooks/index.ts +1 -1
- package/src/hooks/use_conversation.ts +0 -1
- package/src/hooks/use_conversation_jolt_events.ts +3 -16
- package/src/hooks/use_current_person.ts +0 -1
- package/src/hooks/use_direct_messages_enabled.ts +23 -0
- package/src/hooks/use_features.ts +1 -0
- package/src/navigation/index.tsx +42 -36
- package/src/screens/bug_report_screen.tsx +3 -9
- package/src/screens/conversation_details_screen.tsx +1 -2
- package/src/screens/conversation_filters/components/conversation_filters.tsx +3 -3
- package/src/screens/conversation_filters/components/rows.tsx +2 -2
- package/src/screens/conversation_filters_screen.tsx +21 -1
- package/src/screens/conversation_screen.tsx +3 -11
- package/src/screens/conversation_select_recipients/components/groups_recipient_row.tsx +1 -1
- package/src/screens/conversation_select_recipients/components/restricted_group_row.tsx +2 -2
- package/src/screens/conversation_select_type_screen.tsx +7 -4
- package/src/screens/conversations/components/list_header_component.tsx +3 -3
- package/src/screens/message_report_screen.tsx +3 -5
- package/src/screens/notification_settings_screen.tsx +4 -1
- package/src/screens/settings_screen.tsx +3 -3
- package/src/types/jolt_events/conversation_events.ts +2 -2
- package/src/types/resources/conversation.ts +3 -2
- package/src/types/resources/person.ts +0 -1
- package/src/utils/conversation_safety_constants.ts +1 -1
- package/src/utils/request/conversation.ts +0 -1
- package/build/hooks/use_direct_messages_eligible.d.ts +0 -2
- package/build/hooks/use_direct_messages_eligible.d.ts.map +0 -1
- package/build/hooks/use_direct_messages_eligible.js +0 -9
- package/build/hooks/use_direct_messages_eligible.js.map +0 -1
- package/src/__tests__/hooks/use_direct_messages_eligible.test.tsx +0 -77
- package/src/hooks/use_direct_messages_eligible.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_current_person.js","sourceRoot":"","sources":["../../src/hooks/use_current_person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,EAAE,KAAK;IACV,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,UAAU;gBACV,cAAc;gBACd,kBAAkB;gBAClB,0BAA0B;gBAC1B,0BAA0B;gBAC1B,
|
|
1
|
+
{"version":3,"file":"use_current_person.js","sourceRoot":"","sources":["../../src/hooks/use_current_person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,EAAE,KAAK;IACV,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,UAAU;gBACV,cAAc;gBACd,kBAAkB;gBAClB,0BAA0B;gBAC1B,0BAA0B;gBAC1B,UAAU;aACX;SACF;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;AAEjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAwB,wBAAwB,EAAE;QACvF,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,cAAc;KACvB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,YAAY,GAAG,CACnB,MAAsC,EACtC,gBAAsD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAChF,EAAE;QACF,WAAW,CAAC,YAAY,CAAqC,qBAAqB,EAAE,IAAI,CAAC,EAAE;YACzF,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YAEtB,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAA;IACpE,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA;AAC/D,CAAC,CAAA","sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { CurrentPersonResource } from '../types'\nimport { ApiResource } from '../types/api_primitives'\nimport { FIVE_MINUTES, THIRTY_MINUTES } from '../utils/time'\nimport { getRequestQueryKey, useSuspenseGet } from './use_suspense_api'\n\nexport const currentPersonRequestArgs = {\n url: '/me',\n data: {\n fields: {\n Person: [\n 'id',\n 'name',\n 'avatar',\n 'can_chat',\n 'unread_count',\n 'pco_chat_enabled',\n 'age_qualification_status',\n 'direct_messages_disabled',\n 'under_18',\n ],\n },\n },\n}\n\nexport const currentPersonQueryKey = getRequestQueryKey(currentPersonRequestArgs)\n\nexport const useCurrentPerson = () => {\n const { data: person } = useSuspenseGet<CurrentPersonResource>(currentPersonRequestArgs, {\n staleTime: FIVE_MINUTES,\n gcTime: THIRTY_MINUTES,\n })\n\n return person\n}\n\ntype ProcessRecord<T> = (record: T, update: Partial<T>) => T\n\nexport const useCurrentPersonCache = () => {\n const queryClient = useQueryClient()\n const handleUpdate = (\n update: Partial<CurrentPersonResource>,\n processRecord: ProcessRecord<CurrentPersonResource> = (r, u) => ({ ...r, ...u })\n ) => {\n queryClient.setQueryData<ApiResource<CurrentPersonResource>>(currentPersonQueryKey, data => {\n if (!data) return data\n\n return { ...data, data: processRecord(data.data, update) }\n })\n }\n\n const handleInvalidate = () => {\n queryClient.invalidateQueries({ queryKey: currentPersonQueryKey })\n }\n\n return { update: handleUpdate, invalidate: handleInvalidate }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_direct_messages_enabled.d.ts","sourceRoot":"","sources":["../../src/hooks/use_direct_messages_enabled.ts"],"names":[],"mappings":"AAOA,wBAAgB,wBAAwB,IAAI,OAAO,CAelD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features';
|
|
3
|
+
import { useApiClient } from './use_api_client';
|
|
4
|
+
import { availableFeatures } from './use_features';
|
|
5
|
+
export function useDirectMessagesEnabled() {
|
|
6
|
+
const apiClient = useApiClient();
|
|
7
|
+
const { data, isFetched } = useQuery({
|
|
8
|
+
queryKey: getFeaturesQueryKey(),
|
|
9
|
+
queryFn: () => apiClient.chat.get(getFeaturesRequestArgs()),
|
|
10
|
+
staleTime: 1000 * 60 * 5,
|
|
11
|
+
});
|
|
12
|
+
if (!isFetched)
|
|
13
|
+
return false;
|
|
14
|
+
return (data?.data.some(feature => feature.name === availableFeatures.direct_messages_eap && feature.enabled) ?? false);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=use_direct_messages_enabled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_direct_messages_enabled.js","sourceRoot":"","sources":["../../src/hooks/use_direct_messages_enabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,UAAU,wBAAwB;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAiC;QACnE,QAAQ,EAAE,mBAAmB,EAAE;QAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAiC,sBAAsB,EAAE,CAAC;QAC3F,SAAS,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC;KACzB,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAE5B,OAAO,CACL,IAAI,EAAE,IAAI,CAAC,IAAI,CACb,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,iBAAiB,CAAC,mBAAmB,IAAI,OAAO,CAAC,OAAO,CACrF,IAAI,KAAK,CACX,CAAA;AACH,CAAC","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { ApiCollection } from '../types'\nimport type { FeatureResource } from '../types/resources/feature_resource'\nimport { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features'\nimport { useApiClient } from './use_api_client'\nimport { availableFeatures } from './use_features'\n\nexport function useDirectMessagesEnabled(): boolean {\n const apiClient = useApiClient()\n const { data, isFetched } = useQuery<ApiCollection<FeatureResource>>({\n queryKey: getFeaturesQueryKey(),\n queryFn: () => apiClient.chat.get<ApiCollection<FeatureResource>>(getFeaturesRequestArgs()),\n staleTime: 1000 * 60 * 5,\n })\n\n if (!isFetched) return false\n\n return (\n data?.data.some(\n feature => feature.name === availableFeatures.direct_messages_eap && feature.enabled\n ) ?? false\n )\n}\n"]}
|
|
@@ -11,6 +11,7 @@ export declare const availableFeatures: {
|
|
|
11
11
|
readonly custom_conversation_avatars: "ROLLOUT_custom_conversation_avatars";
|
|
12
12
|
readonly conversation_safety_lock: "ROLLOUT_conversation_safety_lock";
|
|
13
13
|
readonly video_moderation: "ROLLOUT_MOBILE_video_moderation";
|
|
14
|
+
readonly direct_messages_eap: "ROLLOUT_direct_messages_eap";
|
|
14
15
|
readonly dm_search_clear_fix: "ROLLOUT_MOBILE_dm_search_clear_fix";
|
|
15
16
|
};
|
|
16
17
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_features.d.ts","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAK1E,KAAK,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA;AAE7E,wBAAgB,WAAW;;kCAiBT,WAAW;EAS5B;AAED,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"use_features.d.ts","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAK1E,KAAK,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA;AAE7E,wBAAgB,WAAW;;kCAiBT,WAAW;EAS5B;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;CAS0B,CAAA"}
|
|
@@ -29,6 +29,7 @@ export const availableFeatures = {
|
|
|
29
29
|
custom_conversation_avatars: 'ROLLOUT_custom_conversation_avatars',
|
|
30
30
|
conversation_safety_lock: 'ROLLOUT_conversation_safety_lock',
|
|
31
31
|
video_moderation: 'ROLLOUT_MOBILE_video_moderation',
|
|
32
|
+
direct_messages_eap: 'ROLLOUT_direct_messages_eap',
|
|
32
33
|
dm_search_clear_fix: 'ROLLOUT_MOBILE_dm_search_clear_fix',
|
|
33
34
|
};
|
|
34
35
|
const stableEmptyFeatures = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_features.js","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAI/C,MAAM,UAAU,WAAW;IACzB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAA;IAE5C,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAChC,QAAQ,EAAE,mBAAmB,EAAE;QAC/B,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,SAAS,CAAC,IAAI;iBAClB,GAAG,CAAiC,WAAW,CAAC;iBAChD,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAA;QACrC,CAAC;QACD,SAAS,EAAE,YAAY;KACxB,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;IAE1B,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,WAAwB,EAAE,EAAE,CAC3B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,EAC3E,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO;QACL,QAAQ;QACR,cAAc;KACf,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,6BAA6B,EAAE,uCAAuC;IACtE,iBAAiB,EAAE,kCAAkC;IACrD,yBAAyB,EAAE,8CAA8C;IACzE,2BAA2B,EAAE,qCAAqC;IAClE,wBAAwB,EAAE,kCAAkC;IAC5D,gBAAgB,EAAE,iCAAiC;IACnD,mBAAmB,EAAE,oCAAoC;CACH,CAAA;AAExD,MAAM,mBAAmB,GAAmC;IAC1D,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;KACd;CACF,CAAA","sourcesContent":["import { useSuspenseQuery } from '@tanstack/react-query'\nimport { useCallback } from 'react'\nimport { ApiCollection } from '../types'\nimport type { FeatureResource } from '../types/resources/feature_resource'\nimport { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features'\nimport { FIVE_MINUTES } from '../utils/time'\nimport { useApiClient } from './use_api_client'\n\ntype FeatureName = (typeof availableFeatures)[keyof typeof availableFeatures]\n\nexport function useFeatures() {\n const apiClient = useApiClient()\n const requestArgs = getFeaturesRequestArgs()\n\n const { data } = useSuspenseQuery({\n queryKey: getFeaturesQueryKey(),\n queryFn: () => {\n return apiClient.chat\n .get<ApiCollection<FeatureResource>>(requestArgs)\n .catch(() => stableEmptyFeatures)\n },\n staleTime: FIVE_MINUTES,\n })\n\n const features = data.data\n\n const featureEnabled = useCallback(\n (featureName: FeatureName) =>\n features.some(feature => feature.name === featureName && feature.enabled),\n [features]\n )\n\n return {\n features,\n featureEnabled,\n }\n}\n\nexport const availableFeatures = {\n gender_specific_conversations: 'ROLLOUT_gender_specific_conversations',\n message_reporting: 'ROLLOUT_MOBILE_message_reporting',\n granular_notifications_ui: 'ROLLOUT_granular_notification_preferences_ui',\n custom_conversation_avatars: 'ROLLOUT_custom_conversation_avatars',\n conversation_safety_lock: 'ROLLOUT_conversation_safety_lock',\n video_moderation: 'ROLLOUT_MOBILE_video_moderation',\n dm_search_clear_fix: 'ROLLOUT_MOBILE_dm_search_clear_fix',\n} as const satisfies Record<string, `ROLLOUT_${string}`>\n\nconst stableEmptyFeatures: ApiCollection<FeatureResource> = {\n data: [],\n links: {},\n meta: {\n count: 0,\n totalCount: 0,\n },\n}\n"]}
|
|
1
|
+
{"version":3,"file":"use_features.js","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAGnC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAI/C,MAAM,UAAU,WAAW;IACzB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAA;IAE5C,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAChC,QAAQ,EAAE,mBAAmB,EAAE;QAC/B,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,SAAS,CAAC,IAAI;iBAClB,GAAG,CAAiC,WAAW,CAAC;iBAChD,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAA;QACrC,CAAC;QACD,SAAS,EAAE,YAAY;KACxB,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;IAE1B,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,WAAwB,EAAE,EAAE,CAC3B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,EAC3E,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO;QACL,QAAQ;QACR,cAAc;KACf,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,6BAA6B,EAAE,uCAAuC;IACtE,iBAAiB,EAAE,kCAAkC;IACrD,yBAAyB,EAAE,8CAA8C;IACzE,2BAA2B,EAAE,qCAAqC;IAClE,wBAAwB,EAAE,kCAAkC;IAC5D,gBAAgB,EAAE,iCAAiC;IACnD,mBAAmB,EAAE,6BAA6B;IAClD,mBAAmB,EAAE,oCAAoC;CACH,CAAA;AAExD,MAAM,mBAAmB,GAAmC;IAC1D,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;KACd;CACF,CAAA","sourcesContent":["import { useSuspenseQuery } from '@tanstack/react-query'\nimport { useCallback } from 'react'\nimport { ApiCollection } from '../types'\nimport type { FeatureResource } from '../types/resources/feature_resource'\nimport { getFeaturesRequestArgs, getFeaturesQueryKey } from '../utils/request/get_features'\nimport { FIVE_MINUTES } from '../utils/time'\nimport { useApiClient } from './use_api_client'\n\ntype FeatureName = (typeof availableFeatures)[keyof typeof availableFeatures]\n\nexport function useFeatures() {\n const apiClient = useApiClient()\n const requestArgs = getFeaturesRequestArgs()\n\n const { data } = useSuspenseQuery({\n queryKey: getFeaturesQueryKey(),\n queryFn: () => {\n return apiClient.chat\n .get<ApiCollection<FeatureResource>>(requestArgs)\n .catch(() => stableEmptyFeatures)\n },\n staleTime: FIVE_MINUTES,\n })\n\n const features = data.data\n\n const featureEnabled = useCallback(\n (featureName: FeatureName) =>\n features.some(feature => feature.name === featureName && feature.enabled),\n [features]\n )\n\n return {\n features,\n featureEnabled,\n }\n}\n\nexport const availableFeatures = {\n gender_specific_conversations: 'ROLLOUT_gender_specific_conversations',\n message_reporting: 'ROLLOUT_MOBILE_message_reporting',\n granular_notifications_ui: 'ROLLOUT_granular_notification_preferences_ui',\n custom_conversation_avatars: 'ROLLOUT_custom_conversation_avatars',\n conversation_safety_lock: 'ROLLOUT_conversation_safety_lock',\n video_moderation: 'ROLLOUT_MOBILE_video_moderation',\n direct_messages_eap: 'ROLLOUT_direct_messages_eap',\n dm_search_clear_fix: 'ROLLOUT_MOBILE_dm_search_clear_fix',\n} as const satisfies Record<string, `ROLLOUT_${string}`>\n\nconst stableEmptyFeatures: ApiCollection<FeatureResource> = {\n data: [],\n links: {},\n meta: {\n count: 0,\n totalCount: 0,\n },\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StaticParamList } from '@react-navigation/native';
|
|
2
|
-
import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
|
|
3
2
|
import { CardStyleInterpolators } from '@react-navigation/stack';
|
|
3
|
+
import { useDirectMessagesEnabled } from '../hooks';
|
|
4
4
|
import { AttachmentActionsScreen } from '../screens/attachment_actions/attachment_actions_screen';
|
|
5
5
|
import { AvatarPickerScreen } from '../screens/avatar_picker/avatar_picker_screen';
|
|
6
6
|
import { BugReportScreen } from '../screens/bug_report_screen';
|
|
@@ -23,9 +23,21 @@ import { SendGiphyScreen } from '../screens/send_giphy_screen';
|
|
|
23
23
|
import { SettingsScreen } from '../screens/settings_screen';
|
|
24
24
|
import { SystemMessagePeopleScreen } from '../screens/system_message_people_screen';
|
|
25
25
|
import { ScreenLayoutWithChatAccessGate } from './screenLayout';
|
|
26
|
-
export declare const NewConversationStack: import("@react-navigation/core").TypedNavigator<
|
|
26
|
+
export declare const NewConversationStack: import("@react-navigation/core").TypedNavigator<{
|
|
27
|
+
ParamList: import("@react-navigation/routers").ParamListBase;
|
|
28
|
+
NavigatorID: string | undefined;
|
|
29
|
+
State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
|
|
30
|
+
ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
31
|
+
EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
|
|
32
|
+
NavigationList: {
|
|
33
|
+
[x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
34
|
+
};
|
|
35
|
+
Navigator: ({ id, initialRouteName, UNSTABLE_routeNamesChangeBehavior, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_router, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
}, {
|
|
27
37
|
readonly initialRouteName: "ConversationNewEntry";
|
|
28
|
-
readonly screenOptions:
|
|
38
|
+
readonly screenOptions: {
|
|
39
|
+
readonly headerBackButtonDisplayMode: "minimal";
|
|
40
|
+
};
|
|
29
41
|
readonly screenLayout: typeof ScreenLayoutWithChatAccessGate;
|
|
30
42
|
readonly screens: {
|
|
31
43
|
readonly ConversationNewEntry: {
|
|
@@ -34,7 +46,7 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
|
|
|
34
46
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
35
47
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
36
48
|
theme: ReactNavigation.Theme;
|
|
37
|
-
}) => NativeStackNavigationOptions;
|
|
49
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
38
50
|
};
|
|
39
51
|
readonly ConversationSelectGroupRecipients: {
|
|
40
52
|
readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -42,7 +54,7 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
|
|
|
42
54
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
43
55
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
44
56
|
theme: ReactNavigation.Theme;
|
|
45
|
-
}) => NativeStackNavigationOptions;
|
|
57
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
46
58
|
};
|
|
47
59
|
readonly ConversationSelectTeamsILeadRecipients: {
|
|
48
60
|
readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -50,20 +62,20 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
|
|
|
50
62
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
51
63
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
52
64
|
theme: ReactNavigation.Theme;
|
|
53
|
-
}) => NativeStackNavigationOptions;
|
|
65
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
54
66
|
};
|
|
55
67
|
readonly ConversationSelectDirectMessageRecipients: {
|
|
56
68
|
readonly screen: typeof ConversationSelectDirectMessageRecipientsScreen;
|
|
57
|
-
readonly if:
|
|
69
|
+
readonly if: typeof useDirectMessagesEnabled;
|
|
58
70
|
readonly options: ({ navigation, route }: {
|
|
59
71
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
60
72
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
61
73
|
theme: ReactNavigation.Theme;
|
|
62
|
-
}) => NativeStackNavigationOptions;
|
|
74
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
63
75
|
};
|
|
64
76
|
readonly ConversationFilterRecipients: {
|
|
65
77
|
readonly screen: ({ route, }: import("../screens/conversation_filter_recipients/types").ConversationFilterRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
66
|
-
readonly options: NativeStackNavigationOptions;
|
|
78
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
67
79
|
};
|
|
68
80
|
readonly ConversationNew: {
|
|
69
81
|
readonly screen: ({ route }: {
|
|
@@ -84,16 +96,28 @@ export declare const NewConversationStack: import("@react-navigation/core").Type
|
|
|
84
96
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
85
97
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
86
98
|
theme: ReactNavigation.Theme;
|
|
87
|
-
}) => NativeStackNavigationOptions;
|
|
99
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
88
100
|
};
|
|
89
101
|
readonly AvatarPicker: {
|
|
90
102
|
readonly screen: typeof AvatarPickerScreen;
|
|
91
|
-
readonly options: NativeStackNavigationOptions;
|
|
103
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
92
104
|
};
|
|
93
105
|
};
|
|
94
106
|
}>;
|
|
95
|
-
export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
96
|
-
|
|
107
|
+
export declare const ChatStack: import("@react-navigation/core").TypedNavigator<{
|
|
108
|
+
ParamList: import("@react-navigation/routers").ParamListBase;
|
|
109
|
+
NavigatorID: string | undefined;
|
|
110
|
+
State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
|
|
111
|
+
ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
112
|
+
EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
|
|
113
|
+
NavigationList: {
|
|
114
|
+
[x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
115
|
+
};
|
|
116
|
+
Navigator: ({ id, initialRouteName, UNSTABLE_routeNamesChangeBehavior, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_router, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
117
|
+
}, {
|
|
118
|
+
readonly screenOptions: {
|
|
119
|
+
readonly headerBackButtonDisplayMode: "minimal";
|
|
120
|
+
};
|
|
97
121
|
readonly screenLayout: typeof ScreenLayoutWithChatAccessGate;
|
|
98
122
|
readonly screens: {
|
|
99
123
|
readonly Conversations: {
|
|
@@ -102,11 +126,11 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
102
126
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
103
127
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
104
128
|
theme: ReactNavigation.Theme;
|
|
105
|
-
}) => NativeStackNavigationOptions;
|
|
129
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
106
130
|
};
|
|
107
131
|
readonly ConversationFilters: {
|
|
108
132
|
readonly screen: (_props: import("..").ConversationFiltersScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
109
|
-
readonly options: NativeStackNavigationOptions;
|
|
133
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
110
134
|
};
|
|
111
135
|
readonly Conversation: {
|
|
112
136
|
readonly screen: typeof ConversationScreen;
|
|
@@ -114,7 +138,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
114
138
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
115
139
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
116
140
|
theme: ReactNavigation.Theme;
|
|
117
|
-
}) => NativeStackNavigationOptions;
|
|
141
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
118
142
|
};
|
|
119
143
|
readonly ConversationReply: {
|
|
120
144
|
readonly screen: typeof ConversationScreen;
|
|
@@ -122,7 +146,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
122
146
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
123
147
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
124
148
|
theme: ReactNavigation.Theme;
|
|
125
|
-
}) => NativeStackNavigationOptions;
|
|
149
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
126
150
|
};
|
|
127
151
|
readonly TeamConversation: {
|
|
128
152
|
readonly screen: ({ route }: import("..").TeamConversationScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -139,11 +163,11 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
139
163
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
140
164
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
141
165
|
theme: ReactNavigation.Theme;
|
|
142
|
-
}) => NativeStackNavigationOptions;
|
|
166
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
143
167
|
};
|
|
144
168
|
readonly AvatarPicker: {
|
|
145
169
|
readonly screen: typeof AvatarPickerScreen;
|
|
146
|
-
readonly options: NativeStackNavigationOptions;
|
|
170
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
147
171
|
};
|
|
148
172
|
readonly ChatSettings: {
|
|
149
173
|
readonly screen: typeof SettingsScreen;
|
|
@@ -151,7 +175,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
151
175
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
152
176
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
153
177
|
theme: ReactNavigation.Theme;
|
|
154
|
-
}) => NativeStackNavigationOptions;
|
|
178
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
155
179
|
};
|
|
156
180
|
readonly NotificationSettings: {
|
|
157
181
|
readonly screen: typeof NotificationSettingsScreen;
|
|
@@ -159,15 +183,13 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
159
183
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
160
184
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
161
185
|
theme: ReactNavigation.Theme;
|
|
162
|
-
}) => NativeStackNavigationOptions;
|
|
186
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
163
187
|
};
|
|
164
188
|
readonly PreferredAppSelection: {
|
|
165
189
|
readonly screen: typeof PreferredAppSelectionScreen;
|
|
166
|
-
readonly options:
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
theme: ReactNavigation.Theme;
|
|
170
|
-
}) => NativeStackNavigationOptions;
|
|
190
|
+
readonly options: {
|
|
191
|
+
readonly title: "Preferred app";
|
|
192
|
+
};
|
|
171
193
|
};
|
|
172
194
|
readonly GroupNotificationSettings: {
|
|
173
195
|
readonly screen: typeof GroupNotificationSettingsScreen;
|
|
@@ -175,20 +197,32 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
175
197
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
176
198
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
177
199
|
theme: ReactNavigation.Theme;
|
|
178
|
-
}) => NativeStackNavigationOptions;
|
|
200
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
179
201
|
};
|
|
180
202
|
readonly GroupNotificationLevelSelect: {
|
|
181
203
|
readonly screen: typeof GroupNotificationLevelSelectScreen;
|
|
182
|
-
readonly options: NativeStackNavigationOptions;
|
|
204
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
183
205
|
};
|
|
184
206
|
readonly ConversationNotificationLevelSelect: {
|
|
185
207
|
readonly screen: typeof ConversationNotificationLevelSelectScreen;
|
|
186
|
-
readonly options: NativeStackNavigationOptions;
|
|
208
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
187
209
|
};
|
|
188
210
|
readonly New: {
|
|
189
|
-
readonly screen: import("@react-navigation/core").TypedNavigator<
|
|
211
|
+
readonly screen: import("@react-navigation/core").TypedNavigator<{
|
|
212
|
+
ParamList: import("@react-navigation/routers").ParamListBase;
|
|
213
|
+
NavigatorID: string | undefined;
|
|
214
|
+
State: import("@react-navigation/routers").StackNavigationState<import("@react-navigation/routers").ParamListBase>;
|
|
215
|
+
ScreenOptions: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
216
|
+
EventMap: import("@react-navigation/native-stack").NativeStackNavigationEventMap;
|
|
217
|
+
NavigationList: {
|
|
218
|
+
[x: string]: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
219
|
+
};
|
|
220
|
+
Navigator: ({ id, initialRouteName, UNSTABLE_routeNamesChangeBehavior, children, layout, screenListeners, screenOptions, screenLayout, UNSTABLE_router, ...rest }: import("@react-navigation/native-stack").NativeStackNavigatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
221
|
+
}, {
|
|
190
222
|
readonly initialRouteName: "ConversationNewEntry";
|
|
191
|
-
readonly screenOptions:
|
|
223
|
+
readonly screenOptions: {
|
|
224
|
+
readonly headerBackButtonDisplayMode: "minimal";
|
|
225
|
+
};
|
|
192
226
|
readonly screenLayout: typeof ScreenLayoutWithChatAccessGate;
|
|
193
227
|
readonly screens: {
|
|
194
228
|
readonly ConversationNewEntry: {
|
|
@@ -197,7 +231,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
197
231
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
198
232
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
199
233
|
theme: ReactNavigation.Theme;
|
|
200
|
-
}) => NativeStackNavigationOptions;
|
|
234
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
201
235
|
};
|
|
202
236
|
readonly ConversationSelectGroupRecipients: {
|
|
203
237
|
readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -205,7 +239,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
205
239
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
206
240
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
207
241
|
theme: ReactNavigation.Theme;
|
|
208
|
-
}) => NativeStackNavigationOptions;
|
|
242
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
209
243
|
};
|
|
210
244
|
readonly ConversationSelectTeamsILeadRecipients: {
|
|
211
245
|
readonly screen: ({ route, }: import("../screens/conversation_select_recipients/types/screen_props").ConversationSelectRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -213,20 +247,20 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
213
247
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
214
248
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
215
249
|
theme: ReactNavigation.Theme;
|
|
216
|
-
}) => NativeStackNavigationOptions;
|
|
250
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
217
251
|
};
|
|
218
252
|
readonly ConversationSelectDirectMessageRecipients: {
|
|
219
253
|
readonly screen: typeof ConversationSelectDirectMessageRecipientsScreen;
|
|
220
|
-
readonly if:
|
|
254
|
+
readonly if: typeof useDirectMessagesEnabled;
|
|
221
255
|
readonly options: ({ navigation, route }: {
|
|
222
256
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
223
257
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
224
258
|
theme: ReactNavigation.Theme;
|
|
225
|
-
}) => NativeStackNavigationOptions;
|
|
259
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
226
260
|
};
|
|
227
261
|
readonly ConversationFilterRecipients: {
|
|
228
262
|
readonly screen: ({ route, }: import("../screens/conversation_filter_recipients/types").ConversationFilterRecipientsScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
229
|
-
readonly options: NativeStackNavigationOptions;
|
|
263
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
230
264
|
};
|
|
231
265
|
readonly ConversationNew: {
|
|
232
266
|
readonly screen: ({ route }: {
|
|
@@ -247,11 +281,11 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
247
281
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
248
282
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
249
283
|
theme: ReactNavigation.Theme;
|
|
250
|
-
}) => NativeStackNavigationOptions;
|
|
284
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
251
285
|
};
|
|
252
286
|
readonly AvatarPicker: {
|
|
253
287
|
readonly screen: typeof AvatarPickerScreen;
|
|
254
|
-
readonly options: NativeStackNavigationOptions;
|
|
288
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
255
289
|
};
|
|
256
290
|
};
|
|
257
291
|
}>;
|
|
@@ -281,43 +315,43 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
281
315
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
282
316
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
283
317
|
theme: ReactNavigation.Theme;
|
|
284
|
-
}) => NativeStackNavigationOptions;
|
|
318
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
285
319
|
};
|
|
286
320
|
readonly SendGiphy: {
|
|
287
321
|
readonly screen: typeof SendGiphyScreen;
|
|
288
|
-
readonly options: NativeStackNavigationOptions;
|
|
322
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
289
323
|
};
|
|
290
324
|
readonly MessageActions: {
|
|
291
325
|
readonly screen: typeof MessageActionsScreen;
|
|
292
|
-
readonly options: NativeStackNavigationOptions;
|
|
326
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
293
327
|
};
|
|
294
328
|
readonly MessageReport: {
|
|
295
329
|
readonly screen: typeof MessageReportScreen;
|
|
296
|
-
readonly options: ({ navigation, route, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => NativeStackNavigationOptions;
|
|
330
|
+
readonly options: ({ navigation, route, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
297
331
|
};
|
|
298
332
|
readonly AttachmentActions: {
|
|
299
333
|
readonly screen: typeof AttachmentActionsScreen;
|
|
300
|
-
readonly options: NativeStackNavigationOptions;
|
|
334
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
301
335
|
};
|
|
302
336
|
readonly ConversationSelectType: {
|
|
303
337
|
readonly screen: typeof ConversationSelectTypeScreen;
|
|
304
|
-
readonly options: NativeStackNavigationOptions;
|
|
338
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
305
339
|
};
|
|
306
340
|
readonly Reactions: {
|
|
307
341
|
readonly screen: typeof ReactionsScreen;
|
|
308
|
-
readonly options: NativeStackNavigationOptions;
|
|
342
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
309
343
|
};
|
|
310
344
|
readonly SystemMessagePeople: {
|
|
311
345
|
readonly screen: typeof SystemMessagePeopleScreen;
|
|
312
|
-
readonly options: NativeStackNavigationOptions;
|
|
346
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
313
347
|
};
|
|
314
348
|
readonly MessageReadReceipts: {
|
|
315
349
|
readonly screen: typeof MessageReadReceiptsScreen;
|
|
316
|
-
readonly options: NativeStackNavigationOptions;
|
|
350
|
+
readonly options: import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
317
351
|
};
|
|
318
352
|
readonly BugReport: {
|
|
319
353
|
readonly screen: typeof BugReportScreen;
|
|
320
|
-
readonly options: ({ navigation, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => NativeStackNavigationOptions;
|
|
354
|
+
readonly options: ({ navigation, }: import("@react-navigation/native-stack").NativeStackScreenProps<any>) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
321
355
|
};
|
|
322
356
|
readonly GetHelp: {
|
|
323
357
|
readonly screen: ({ route }: {
|
|
@@ -331,7 +365,7 @@ export declare const ChatStack: import("@react-navigation/core").TypedNavigator<
|
|
|
331
365
|
route: import("@react-navigation/core").RouteProp<import("@react-navigation/routers").ParamListBase, string>;
|
|
332
366
|
navigation: import("@react-navigation/native-stack").NativeStackNavigationProp<import("@react-navigation/routers").ParamListBase, string, string | undefined>;
|
|
333
367
|
theme: ReactNavigation.Theme;
|
|
334
|
-
}) => NativeStackNavigationOptions;
|
|
368
|
+
}) => import("@react-navigation/native-stack").NativeStackNavigationOptions;
|
|
335
369
|
};
|
|
336
370
|
readonly NotFound: {
|
|
337
371
|
readonly screen: typeof NotFound;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAK1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAShE,OAAO,EAAE,wBAAwB,EAAqB,MAAM,UAAU,CAAA;AACtE,OAAO,EACL,uBAAuB,EAExB,MAAM,yDAAyD,CAAA;AAChE,OAAO,EACL,kBAAkB,EAGnB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AACtF,OAAO,EACL,yBAAyB,EAE1B,MAAM,sDAAsD,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAWlF,OAAO,EACL,yCAAyC,EAE1C,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAEL,kBAAkB,EAEnB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,+CAA+C,EAAE,MAAM,gGAAgG,CAAA;AAIhK,OAAO,EACL,4BAA4B,EAE7B,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EACL,kCAAkC,EAEnC,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,EACL,oBAAoB,EAErB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAA8B,MAAM,kCAAkC,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAA;AACvF,OAAO,EAAE,eAAe,EAA0B,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAA;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EACL,yBAAyB,EAE1B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAE/D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqF/B,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8NpB,CAAA;AAEF,KAAK,kBAAkB,GAAG,eAAe,CAAC,OAAO,SAAS,CAAC,CAAA;AAE3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,eAAe,CAAC;QACxB,UAAU,aAAc,SAAQ,kBAAkB;SAAG;KACtD;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { createNativeStackNavigator, } from '@react-navigation/native-stack';
|
|
3
3
|
import { CardStyleInterpolators } from '@react-navigation/stack';
|
|
4
|
-
import { composeOptions, createMinimalHeaderBackButton, withMinimalBack, withRightClose,
|
|
5
|
-
import {
|
|
4
|
+
import { composeOptions, createMinimalHeaderBackButton, withMinimalBack, withRightClose, withRightText, } from '../components/display/platform_modal_header_buttons';
|
|
5
|
+
import { useDirectMessagesEnabled, useQualifiedByAge } from '../hooks';
|
|
6
6
|
import { AttachmentActionsScreen, AttachmentActionsScreenOptions, } from '../screens/attachment_actions/attachment_actions_screen';
|
|
7
7
|
import { AvatarPickerScreen, AvatarPickerScreenOptions, AvatarPickerCreateScreenOptions, } from '../screens/avatar_picker/avatar_picker_screen';
|
|
8
8
|
import { BugReportScreen, BugReportScreenOptions } from '../screens/bug_report_screen';
|
|
@@ -32,15 +32,12 @@ import { SendGiphyScreen, SendGiphyScreenOptions } from '../screens/send_giphy_s
|
|
|
32
32
|
import { SettingsScreen } from '../screens/settings_screen';
|
|
33
33
|
import { SystemMessagePeopleScreen, SystemMessagePeopleScreenOptions, } from '../screens/system_message_people_screen';
|
|
34
34
|
import { TeamConversationScreen } from '../screens/team_conversation_screen';
|
|
35
|
-
import { isLiquidGlassEnabled } from '../utils/liquid_glass';
|
|
36
35
|
import { ScreenLayoutWithChatAccessGate } from './screenLayout';
|
|
37
|
-
const globalScreenOptions = () => ({
|
|
38
|
-
headerBackButtonDisplayMode: 'minimal',
|
|
39
|
-
...(isLiquidGlassEnabled() ? { headerShadowVisible: false } : {}),
|
|
40
|
-
});
|
|
41
36
|
export const NewConversationStack = createNativeStackNavigator({
|
|
42
37
|
initialRouteName: 'ConversationNewEntry',
|
|
43
|
-
screenOptions:
|
|
38
|
+
screenOptions: {
|
|
39
|
+
headerBackButtonDisplayMode: 'minimal',
|
|
40
|
+
},
|
|
44
41
|
screenLayout: ScreenLayoutWithChatAccessGate,
|
|
45
42
|
screens: {
|
|
46
43
|
ConversationNewEntry: {
|
|
@@ -48,13 +45,14 @@ export const NewConversationStack = createNativeStackNavigator({
|
|
|
48
45
|
options: ({ navigation }) => composeOptions({
|
|
49
46
|
title: 'New conversation',
|
|
50
47
|
headerBackVisible: false,
|
|
51
|
-
},
|
|
48
|
+
}, withRightText({ text: 'Cancel', onPress: navigation.goBack })),
|
|
52
49
|
},
|
|
53
50
|
ConversationSelectGroupRecipients: {
|
|
54
51
|
screen: ConversationSelectGroupRecipientsScreen,
|
|
55
52
|
options: ({ navigation, route }) => composeOptions({
|
|
56
53
|
title: 'New conversation',
|
|
57
|
-
},
|
|
54
|
+
}, withRightText({
|
|
55
|
+
text: 'Cancel',
|
|
58
56
|
onPress: () => navigation.popTo('Conversations', route.params),
|
|
59
57
|
})),
|
|
60
58
|
},
|
|
@@ -62,16 +60,18 @@ export const NewConversationStack = createNativeStackNavigator({
|
|
|
62
60
|
screen: ConversationSelectTeamsILeadRecipientsScreen,
|
|
63
61
|
options: ({ navigation, route }) => composeOptions({
|
|
64
62
|
title: 'New conversation',
|
|
65
|
-
},
|
|
63
|
+
}, withRightText({
|
|
64
|
+
text: 'Cancel',
|
|
66
65
|
onPress: () => navigation.popTo('Conversations', route.params),
|
|
67
66
|
})),
|
|
68
67
|
},
|
|
69
68
|
ConversationSelectDirectMessageRecipients: {
|
|
70
69
|
screen: ConversationSelectDirectMessageRecipientsScreen,
|
|
71
|
-
if:
|
|
70
|
+
if: useDirectMessagesEnabled,
|
|
72
71
|
options: ({ navigation, route }) => composeOptions({
|
|
73
72
|
title: 'New conversation',
|
|
74
|
-
},
|
|
73
|
+
}, withRightText({
|
|
74
|
+
text: 'Cancel',
|
|
75
75
|
onPress: () => navigation.popTo('Conversations', route.params),
|
|
76
76
|
})),
|
|
77
77
|
},
|
|
@@ -84,7 +84,8 @@ export const NewConversationStack = createNativeStackNavigator({
|
|
|
84
84
|
options: ({ navigation, route }) => composeOptions({
|
|
85
85
|
title: 'New conversation',
|
|
86
86
|
headerLeft: () => null,
|
|
87
|
-
},
|
|
87
|
+
}, withRightText({
|
|
88
|
+
text: 'Cancel',
|
|
88
89
|
onPress: () => {
|
|
89
90
|
const { chat_group_graph_id, group_source_app_name } = route.params;
|
|
90
91
|
navigation.popTo('Conversations', { chat_group_graph_id, group_source_app_name });
|
|
@@ -98,7 +99,9 @@ export const NewConversationStack = createNativeStackNavigator({
|
|
|
98
99
|
},
|
|
99
100
|
});
|
|
100
101
|
export const ChatStack = createNativeStackNavigator({
|
|
101
|
-
screenOptions:
|
|
102
|
+
screenOptions: {
|
|
103
|
+
headerBackButtonDisplayMode: 'minimal',
|
|
104
|
+
},
|
|
102
105
|
screenLayout: ScreenLayoutWithChatAccessGate,
|
|
103
106
|
screens: {
|
|
104
107
|
Conversations: {
|
|
@@ -152,7 +155,7 @@ export const ChatStack = createNativeStackNavigator({
|
|
|
152
155
|
options: ({ navigation }) => composeOptions({
|
|
153
156
|
presentation: 'modal',
|
|
154
157
|
title: 'Conversation details',
|
|
155
|
-
},
|
|
158
|
+
}, withRightText({ text: 'Done', onPress: navigation.goBack })),
|
|
156
159
|
},
|
|
157
160
|
AvatarPicker: {
|
|
158
161
|
screen: AvatarPickerScreen,
|
|
@@ -160,29 +163,35 @@ export const ChatStack = createNativeStackNavigator({
|
|
|
160
163
|
},
|
|
161
164
|
ChatSettings: {
|
|
162
165
|
screen: SettingsScreen,
|
|
163
|
-
options: ({ navigation }) => composeOptions({
|
|
166
|
+
options: ({ navigation }) => composeOptions({
|
|
167
|
+
title: 'Chat settings',
|
|
168
|
+
headerBackVisible: false,
|
|
169
|
+
}, withRightText({ text: 'Done', onPress: navigation.goBack })),
|
|
164
170
|
},
|
|
165
171
|
NotificationSettings: {
|
|
166
172
|
screen: NotificationSettingsScreen,
|
|
167
|
-
options: ({ navigation }) =>
|
|
168
|
-
|
|
169
|
-
:
|
|
173
|
+
options: ({ navigation }) => composeOptions({
|
|
174
|
+
title: 'Chat',
|
|
175
|
+
headerBackVisible: false,
|
|
176
|
+
}, withRightText({ text: 'Done', onPress: navigation.goBack })),
|
|
170
177
|
},
|
|
171
178
|
PreferredAppSelection: {
|
|
172
179
|
screen: PreferredAppSelectionScreen,
|
|
173
|
-
options:
|
|
180
|
+
options: {
|
|
181
|
+
title: 'Preferred app',
|
|
182
|
+
},
|
|
174
183
|
},
|
|
175
184
|
GroupNotificationSettings: {
|
|
176
185
|
screen: GroupNotificationSettingsScreen,
|
|
177
186
|
options: ({ route, navigation }) => {
|
|
178
187
|
const title = route.params?.title || 'Group Settings';
|
|
179
|
-
//
|
|
180
|
-
//
|
|
188
|
+
// Done only shows when this is the entry screen (e.g. deep links);
|
|
189
|
+
// deeper in the stack the back button covers dismissal.
|
|
181
190
|
return navigation.getState().index === 0
|
|
182
191
|
? composeOptions({
|
|
183
192
|
title,
|
|
184
|
-
},
|
|
185
|
-
:
|
|
193
|
+
}, withRightText({ text: 'Done', onPress: navigation.goBack }))
|
|
194
|
+
: { title };
|
|
186
195
|
},
|
|
187
196
|
},
|
|
188
197
|
GroupNotificationLevelSelect: {
|
|
@@ -207,7 +216,7 @@ export const ChatStack = createNativeStackNavigator({
|
|
|
207
216
|
options: ({ navigation }) => composeOptions({
|
|
208
217
|
title: 'New conversation',
|
|
209
218
|
headerLeft: () => null,
|
|
210
|
-
},
|
|
219
|
+
}, withRightText({ text: 'Cancel', onPress: () => navigation.getParent()?.goBack() })),
|
|
211
220
|
},
|
|
212
221
|
SendGiphy: {
|
|
213
222
|
screen: SendGiphyScreen,
|
|
@@ -252,7 +261,7 @@ export const ChatStack = createNativeStackNavigator({
|
|
|
252
261
|
headerTitle: 'Get help',
|
|
253
262
|
headerBackVisible: false,
|
|
254
263
|
presentation: 'modal',
|
|
255
|
-
},
|
|
264
|
+
}, withRightText({ text: 'Close', onPress: navigation.goBack })),
|
|
256
265
|
},
|
|
257
266
|
NotFound: {
|
|
258
267
|
screen: NotFound,
|