@planningcenter/chat-react-native 4.4.1-qa-staging.2 → 4.4.1-qa-staging.4
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/attachments/giphy_attachment.d.ts.map +1 -1
- package/build/components/conversation/attachments/giphy_attachment.js +2 -2
- package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
- package/build/components/conversation/message_form.d.ts.map +1 -1
- package/build/components/conversation/message_form.js +2 -2
- package/build/components/conversation/message_form.js.map +1 -1
- package/build/components/conversation/system_message.js +3 -3
- package/build/components/conversation/system_message.js.map +1 -1
- package/build/contexts/api_provider.d.ts.map +1 -1
- package/build/contexts/api_provider.js +24 -24
- package/build/contexts/api_provider.js.map +1 -1
- package/build/hooks/use_chat_permissions.d.ts +10 -2
- package/build/hooks/use_chat_permissions.d.ts.map +1 -1
- package/build/hooks/use_chat_permissions.js +8 -0
- package/build/hooks/use_chat_permissions.js.map +1 -1
- package/build/hooks/use_features.d.ts +2 -0
- package/build/hooks/use_features.d.ts.map +1 -1
- package/build/hooks/use_features.js +3 -1
- package/build/hooks/use_features.js.map +1 -1
- package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
- package/build/screens/age_check/age_check_underage_screen.js +3 -2
- package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
- package/build/screens/bug_report_screen.d.ts.map +1 -1
- package/build/screens/bug_report_screen.js +2 -2
- package/build/screens/bug_report_screen.js.map +1 -1
- package/build/screens/get_help_screen.js +4 -4
- package/build/screens/get_help_screen.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/components/conversation/attachments/giphy_attachment.test.tsx +76 -0
- package/src/__tests__/contexts/api_provider.test.tsx +50 -0
- package/src/__tests__/screens/get_help_screen.test.ts +40 -0
- package/src/components/conversation/attachments/giphy_attachment.tsx +2 -3
- package/src/components/conversation/message_form.tsx +1 -1
- package/src/components/conversation/system_message.tsx +3 -3
- package/src/contexts/api_provider.tsx +5 -8
- package/src/hooks/use_chat_permissions.ts +15 -2
- package/src/hooks/use_features.ts +2 -0
- package/src/screens/age_check/age_check_underage_screen.tsx +3 -2
- package/src/screens/bug_report_screen.tsx +2 -10
- package/src/screens/get_help_screen.tsx +4 -4
|
@@ -3,9 +3,8 @@ import { focusManager, QueryClient, QueryClientProvider, usePrefetchQuery } from
|
|
|
3
3
|
import React, { useContext, useEffect, useRef } from 'react';
|
|
4
4
|
import { useApiClient } from '../hooks/use_api_client';
|
|
5
5
|
import { useAppState } from '../hooks/use_app_state';
|
|
6
|
-
import {
|
|
6
|
+
import { appGrantsQueryOptions } from '../hooks/use_chat_permissions';
|
|
7
7
|
import { featuresQueryOptions } from '../hooks/use_features';
|
|
8
|
-
import { getRequestQueryKey } from '../hooks/use_suspense_api';
|
|
9
8
|
import { emitAuthRefresh } from '../utils/auth_events';
|
|
10
9
|
import { ResponseError } from '../utils/response_error';
|
|
11
10
|
import { ChatContext } from './chat_context';
|
|
@@ -40,13 +39,14 @@ export const chatQueryClient = new QueryClient({
|
|
|
40
39
|
}
|
|
41
40
|
});
|
|
42
41
|
export function ApiProvider(t0) {
|
|
43
|
-
const $ = _c(
|
|
42
|
+
const $ = _c(14);
|
|
44
43
|
const {
|
|
45
44
|
children
|
|
46
45
|
} = t0;
|
|
47
46
|
const {
|
|
48
47
|
token,
|
|
49
|
-
env
|
|
48
|
+
env,
|
|
49
|
+
session
|
|
50
50
|
} = useContext(ChatContext);
|
|
51
51
|
let t1;
|
|
52
52
|
if ($[0] !== env || $[1] !== token) {
|
|
@@ -101,22 +101,24 @@ export function ApiProvider(t0) {
|
|
|
101
101
|
}
|
|
102
102
|
useEffect(t4, t5);
|
|
103
103
|
let t6;
|
|
104
|
-
if ($[9]
|
|
105
|
-
t6 = /*#__PURE__*/_jsx(PrefetchQueries, {});
|
|
106
|
-
$[9] =
|
|
104
|
+
if ($[9] !== session.isAuthenticated) {
|
|
105
|
+
t6 = session.isAuthenticated && /*#__PURE__*/_jsx(PrefetchQueries, {});
|
|
106
|
+
$[9] = session.isAuthenticated;
|
|
107
|
+
$[10] = t6;
|
|
107
108
|
} else {
|
|
108
|
-
t6 = $[
|
|
109
|
+
t6 = $[10];
|
|
109
110
|
}
|
|
110
111
|
let t7;
|
|
111
|
-
if ($[
|
|
112
|
+
if ($[11] !== children || $[12] !== t6) {
|
|
112
113
|
t7 = /*#__PURE__*/_jsxs(QueryClientProvider, {
|
|
113
114
|
client: chatQueryClient,
|
|
114
115
|
children: [t6, children]
|
|
115
116
|
});
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
117
|
+
$[11] = children;
|
|
118
|
+
$[12] = t6;
|
|
119
|
+
$[13] = t7;
|
|
118
120
|
} else {
|
|
119
|
-
t7 = $[
|
|
121
|
+
t7 = $[13];
|
|
120
122
|
}
|
|
121
123
|
return t7;
|
|
122
124
|
}
|
|
@@ -128,26 +130,24 @@ function _temp() {
|
|
|
128
130
|
return chatQueryClient.invalidateQueries();
|
|
129
131
|
}
|
|
130
132
|
const PrefetchQueries = () => {
|
|
131
|
-
const $ = _c(
|
|
133
|
+
const $ = _c(4);
|
|
132
134
|
const client = useApiClient();
|
|
133
135
|
let t0;
|
|
134
|
-
if ($[0]
|
|
135
|
-
t0 =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
};
|
|
139
|
-
$[0] = t0;
|
|
136
|
+
if ($[0] !== client) {
|
|
137
|
+
t0 = appGrantsQueryOptions(client);
|
|
138
|
+
$[0] = client;
|
|
139
|
+
$[1] = t0;
|
|
140
140
|
} else {
|
|
141
|
-
t0 = $[
|
|
141
|
+
t0 = $[1];
|
|
142
142
|
}
|
|
143
143
|
usePrefetchQuery(t0);
|
|
144
144
|
let t1;
|
|
145
|
-
if ($[
|
|
145
|
+
if ($[2] !== client) {
|
|
146
146
|
t1 = featuresQueryOptions(client);
|
|
147
|
-
$[
|
|
148
|
-
$[
|
|
147
|
+
$[2] = client;
|
|
148
|
+
$[3] = t1;
|
|
149
149
|
} else {
|
|
150
|
-
t1 = $[
|
|
150
|
+
t1 = $[3];
|
|
151
151
|
}
|
|
152
152
|
usePrefetchQuery(t1);
|
|
153
153
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_provider.js","names":["focusManager","QueryClient","QueryClientProvider","usePrefetchQuery","React","useContext","useEffect","useRef","useApiClient","useAppState","
|
|
1
|
+
{"version":3,"file":"api_provider.js","names":["focusManager","QueryClient","QueryClientProvider","usePrefetchQuery","React","useContext","useEffect","useRef","useApiClient","useAppState","appGrantsQueryOptions","featuresQueryOptions","emitAuthRefresh","ResponseError","ChatContext","jsx","_jsx","jsxs","_jsxs","apiClient","defaultQueryFn","queryKey","Error","url","data","headers","app","get","configuredRetry","failureCount","error","is429Error","status","chatQueryClient","defaultOptions","queries","queryFn","retry","ApiProvider","t0","$","_c","children","token","env","session","t1","sessionChanged","useSessionChanged","client","t2","t3","isFetching","cancelQueries","then","_temp","clear","t4","t5","t6","isAuthenticated","PrefetchQueries","t7","invalidateQueries","useFocusManager","appState","setFocused","value","newToken","newEnv","prevToken","prevEnv","usePrevious","isInitialLogin","tokenChanged","Boolean","access_token","envChanged","ref","current"],"sources":["../../src/contexts/api_provider.tsx"],"sourcesContent":["import {\n focusManager,\n QueryClient,\n QueryClientProvider,\n QueryKey,\n usePrefetchQuery,\n} from '@tanstack/react-query'\nimport React, { useContext, useEffect, useRef } from 'react'\nimport { ViewProps } from 'react-native'\nimport { ApiClient, useApiClient } from '../hooks/use_api_client'\nimport { useAppState } from '../hooks/use_app_state'\nimport { appGrantsQueryOptions } from '../hooks/use_chat_permissions'\nimport { featuresQueryOptions } from '../hooks/use_features'\nimport { RequestQueryKey } from '../hooks/use_suspense_api'\nimport { emitAuthRefresh } from '../utils/auth_events'\nimport { ResponseError } from '../utils/response_error'\nimport { ChatContext, ChatContextValue } from './chat_context'\n\nlet apiClient: ApiClient | undefined\n\nconst defaultQueryFn = ({ queryKey }: { queryKey: QueryKey }) => {\n if (!apiClient) {\n throw new Error('No token present')\n }\n\n const [url, data, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return apiClient[app].get({ url, data, headers })\n}\n\nconst configuredRetry = (failureCount: number, error: any) => {\n if (is429Error(error)) return false\n\n return failureCount < 3\n}\n\nconst is429Error = (error: any): boolean => {\n return error instanceof ResponseError && error.status === 429\n}\n\nexport const chatQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n queryFn: defaultQueryFn,\n retry: configuredRetry,\n },\n },\n})\n\nexport function ApiProvider({ children }: ViewProps) {\n const { token, env, session } = useContext(ChatContext)\n const sessionChanged = useSessionChanged({ token, env })\n\n const client = useApiClient()\n\n useEffect(() => {\n if (!sessionChanged) return\n\n emitAuthRefresh()\n\n if (chatQueryClient.isFetching()) {\n chatQueryClient.cancelQueries().then(() => chatQueryClient.invalidateQueries())\n return\n }\n\n chatQueryClient.clear()\n }, [sessionChanged])\n\n useEffect(() => {\n apiClient = client\n }, [client])\n\n return (\n <QueryClientProvider client={chatQueryClient}>\n {session.isAuthenticated && <PrefetchQueries />}\n {children}\n </QueryClientProvider>\n )\n}\n\n// Component to prefetch queries when the app is focused\n// This needs to live in the provider so that it can access the api client\n// and the chat query client\nconst PrefetchQueries = () => {\n const client = useApiClient()\n\n usePrefetchQuery(appGrantsQueryOptions(client))\n usePrefetchQuery(featuresQueryOptions(client))\n\n return null\n}\n\nexport function useFocusManager() {\n const appState = useAppState()\n\n useEffect(() => {\n focusManager.setFocused(appState === 'active')\n }, [appState])\n\n return appState\n}\n\nfunction useSessionChanged(value: Pick<ChatContextValue, 'token' | 'env'>): boolean {\n const { token: newToken, env: newEnv } = value\n const { token: prevToken, env: prevEnv } = usePrevious<typeof value>(value)\n\n const isInitialLogin = !prevToken && !!newToken\n if (isInitialLogin) return false\n\n const tokenChanged = Boolean(\n prevToken?.access_token && newToken?.access_token !== prevToken?.access_token\n )\n\n const envChanged = Boolean(prevEnv && newEnv !== prevEnv)\n\n return tokenChanged || envChanged\n}\n\nfunction usePrevious<T>(value: T): T {\n const ref = useRef<T>(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n"],"mappings":";AAAA,SACEA,YAAY,EACZC,WAAW,EACXC,mBAAmB,EAEnBC,gBAAgB,QACX,uBAAuB;AAC9B,OAAOC,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAE5D,SAAoBC,YAAY,QAAQ,yBAAyB;AACjE,SAASC,WAAW,QAAQ,wBAAwB;AACpD,SAASC,qBAAqB,QAAQ,+BAA+B;AACrE,SAASC,oBAAoB,QAAQ,uBAAuB;AAE5D,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,WAAW,QAA0B,gBAAgB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9D,IAAIC,SAAgC;AAEpC,MAAMC,cAAc,GAAGA,CAAC;EAAEC;AAAiC,CAAC,KAAK;EAC/D,IAAI,CAACF,SAAS,EAAE;IACd,MAAM,IAAIG,KAAK,CAAC,kBAAkB,CAAC;EACrC;EAEA,MAAM,CAACC,GAAG,EAAEC,IAAI,EAAEC,OAAO,EAAEC,GAAG,GAAG,MAAM,CAAC,GAAGL,QAA2B;EAEtE,OAAOF,SAAS,CAACO,GAAG,CAAC,CAACC,GAAG,CAAC;IAAEJ,GAAG;IAAEC,IAAI;IAAEC;EAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAMG,eAAe,GAAGA,CAACC,YAAoB,EAAEC,KAAU,KAAK;EAC5D,IAAIC,UAAU,CAACD,KAAK,CAAC,EAAE,OAAO,KAAK;EAEnC,OAAOD,YAAY,GAAG,CAAC;AACzB,CAAC;AAED,MAAME,UAAU,GAAID,KAAU,IAAc;EAC1C,OAAOA,KAAK,YAAYjB,aAAa,IAAIiB,KAAK,CAACE,MAAM,KAAK,GAAG;AAC/D,CAAC;AAED,OAAO,MAAMC,eAAe,GAAG,IAAIhC,WAAW,CAAC;EAC7CiC,cAAc,EAAE;IACdC,OAAO,EAAE;MACPC,OAAO,EAAEhB,cAAc;MACvBiB,KAAK,EAAET;IACT;EACF;AACF,CAAC,CAAC;AAEF,OAAO,SAAAU,YAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAqB;IAAAC;EAAA,IAAAH,EAAuB;EACjD;IAAAI,KAAA;IAAAC,GAAA;IAAAC;EAAA,IAAgCxC,UAAU,CAACS,WAAW,CAAC;EAAA,IAAAgC,EAAA;EAAA,IAAAN,CAAA,QAAAI,GAAA,IAAAJ,CAAA,QAAAG,KAAA;IACdG,EAAA;MAAAH,KAAA;MAAAC;IAAa,CAAC;IAAAJ,CAAA,MAAAI,GAAA;IAAAJ,CAAA,MAAAG,KAAA;IAAAH,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAvD,MAAAO,cAAA,GAAuBC,iBAAiB,CAACF,EAAc,CAAC;EAExD,MAAAG,MAAA,GAAezC,YAAY,CAAC,CAAC;EAAA,IAAA0C,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAX,CAAA,QAAAO,cAAA;IAEnBG,EAAA,GAAAA,CAAA;MACR,IAAI,CAACH,cAAc;QAAA;MAAA;MAEnBnC,eAAe,CAAC,CAAC;MAEjB,IAAIqB,eAAe,CAAAmB,UAAW,CAAC,CAAC;QAC9BnB,eAAe,CAAAoB,aAAc,CAAC,CAAC,CAAAC,IAAK,CAACC,KAAyC,CAAC;QAAA;MAAA;MAIjFtB,eAAe,CAAAuB,KAAM,CAAC,CAAC;IAAA,CACxB;IAAEL,EAAA,IAACJ,cAAc,CAAC;IAAAP,CAAA,MAAAO,cAAA;IAAAP,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAW,EAAA;EAAA;IAAAD,EAAA,GAAAV,CAAA;IAAAW,EAAA,GAAAX,CAAA;EAAA;EAXnBlC,SAAS,CAAC4C,EAWT,EAAEC,EAAgB,CAAC;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAS,MAAA;IAEVQ,EAAA,GAAAA,CAAA;MACRtC,SAAA,CAAAA,CAAA,CAAY8B,MAAH;IAAA,CACV;IAAES,EAAA,IAACT,MAAM,CAAC;IAAAT,CAAA,MAAAS,MAAA;IAAAT,CAAA,MAAAiB,EAAA;IAAAjB,CAAA,MAAAkB,EAAA;EAAA;IAAAD,EAAA,GAAAjB,CAAA;IAAAkB,EAAA,GAAAlB,CAAA;EAAA;EAFXlC,SAAS,CAACmD,EAET,EAAEC,EAAQ,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAnB,CAAA,QAAAK,OAAA,CAAAe,eAAA;IAIPD,EAAA,GAAAd,OAAO,CAAAe,eAAuC,iBAA9C5C,IAAA,CAA4B6C,eAAe,IAAE,CAAC;IAAArB,CAAA,MAAAK,OAAA,CAAAe,eAAA;IAAApB,CAAA,OAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAAA,IAAAsB,EAAA;EAAA,IAAAtB,CAAA,SAAAE,QAAA,IAAAF,CAAA,SAAAmB,EAAA;IADjDG,EAAA,gBAAA5C,KAAA,CAAChB,mBAAmB;MAAS+B,MAAe,EAAfA,eAAe;MAAAS,QAAA,GACzCiB,EAA8C,EAC9CjB,QAAQ;IAAA,CACU,CAAC;IAAAF,CAAA,OAAAE,QAAA;IAAAF,CAAA,OAAAmB,EAAA;IAAAnB,CAAA,OAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAAA,OAHtBsB,EAGsB;AAAA;;AAI1B;AACA;AACA;AAjCO,SAAAP,MAAA;EAAA,OAY0CtB,eAAe,CAAA8B,iBAAkB,CAAC,CAAC;AAAA;AAsBpF,MAAMF,eAAe,GAAGA,CAAA;EAAA,MAAArB,CAAA,GAAAC,EAAA;EACtB,MAAAQ,MAAA,GAAezC,YAAY,CAAC,CAAC;EAAA,IAAA+B,EAAA;EAAA,IAAAC,CAAA,QAAAS,MAAA;IAEZV,EAAA,GAAA7B,qBAAqB,CAACuC,MAAM,CAAC;IAAAT,CAAA,MAAAS,MAAA;IAAAT,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAA9CrC,gBAAgB,CAACoC,EAA6B,CAAC;EAAA,IAAAO,EAAA;EAAA,IAAAN,CAAA,QAAAS,MAAA;IAC9BH,EAAA,GAAAnC,oBAAoB,CAACsC,MAAM,CAAC;IAAAT,CAAA,MAAAS,MAAA;IAAAT,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAA7CrC,gBAAgB,CAAC2C,EAA4B,CAAC;EAAA,OAEvC,IAAI;AAAA,CACZ;AAED,OAAO,SAAAkB,gBAAA;EAAA,MAAAxB,CAAA,GAAAC,EAAA;EACL,MAAAwB,QAAA,GAAiBxD,WAAW,CAAC,CAAC;EAAA,IAAA8B,EAAA;EAAA,IAAAO,EAAA;EAAA,IAAAN,CAAA,QAAAyB,QAAA;IAEpB1B,EAAA,GAAAA,CAAA;MACRvC,YAAY,CAAAkE,UAAW,CAACD,QAAQ,KAAK,QAAQ,CAAC;IAAA,CAC/C;IAAEnB,EAAA,IAACmB,QAAQ,CAAC;IAAAzB,CAAA,MAAAyB,QAAA;IAAAzB,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAM,EAAA;EAAA;IAAAP,EAAA,GAAAC,CAAA;IAAAM,EAAA,GAAAN,CAAA;EAAA;EAFblC,SAAS,CAACiC,EAET,EAAEO,EAAU,CAAC;EAAA,OAEPmB,QAAQ;AAAA;AAGjB,SAAAjB,kBAAAmB,KAAA;EACE;IAAAxB,KAAA,EAAAyB,QAAA;IAAAxB,GAAA,EAAAyB;EAAA,IAAyCF,KAAK;EAC9C;IAAAxB,KAAA,EAAA2B,SAAA;IAAA1B,GAAA,EAAA2B;EAAA,IAA2CC,WAAW,CAAeL,KAAK,CAAC;EAE3E,MAAAM,cAAA,GAAuB,CAACH,SAAuB,IAAxB,CAAe,CAACF,QAAQ;EAC/C,IAAIK,cAAc;IAAA,OAAS,KAAK;EAAA;EAEhC,MAAAC,YAAA,GAAqBC,OAAO,CAC1BL,SAAS,EAAAM,YAAoE,IAAlDR,QAAQ,EAAAQ,YAAc,KAAKN,SAAS,EAAAM,YACjE,CAAC;EAED,MAAAC,UAAA,GAAmBF,OAAO,CAACJ,OAA6B,IAAlBF,MAAM,KAAKE,OAAO,CAAC;EAAA,OAElDG,YAA0B,IAA1BG,UAA0B;AAAA;AAGnC,SAASL,WAAWA,CAAIL,KAAQ,EAAK;EACnC,MAAMW,GAAG,GAAGvE,MAAM,CAAI4D,KAAK,CAAC;EAE5B7D,SAAS,CAAC,MAAM;IACdwE,GAAG,CAACC,OAAO,GAAGZ,KAAK;EACrB,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAOW,GAAG,CAACC,OAAO;AACpB","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AppGrantsResource } from '../types';
|
|
2
|
-
import { App } from './use_api_client';
|
|
1
|
+
import { ApiCollection, AppGrantsResource } from '../types';
|
|
2
|
+
import { ApiClient, App } from './use_api_client';
|
|
3
3
|
export declare const appGrantsRequestArgs: {
|
|
4
4
|
url: string;
|
|
5
5
|
data: {
|
|
@@ -9,6 +9,14 @@ export declare const appGrantsRequestArgs: {
|
|
|
9
9
|
};
|
|
10
10
|
app: App;
|
|
11
11
|
};
|
|
12
|
+
export declare const appGrantsQueryOptions: (apiClient: ApiClient) => import("@tanstack/query-core").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<ApiCollection<AppGrantsResource>, Error, ApiCollection<AppGrantsResource>, import("./use_suspense_api").RequestQueryKey>, "queryFn"> & {
|
|
13
|
+
queryFn?: import("@tanstack/query-core").QueryFunction<ApiCollection<AppGrantsResource>, import("./use_suspense_api").RequestQueryKey, never> | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
queryKey: import("./use_suspense_api").RequestQueryKey & {
|
|
16
|
+
[dataTagSymbol]: ApiCollection<AppGrantsResource>;
|
|
17
|
+
[dataTagErrorSymbol]: Error;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
12
20
|
export declare function useAppGrants(): {
|
|
13
21
|
error: import("..").ResponseError;
|
|
14
22
|
isError: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_chat_permissions.d.ts","sourceRoot":"","sources":["../../src/hooks/use_chat_permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use_chat_permissions.d.ts","sourceRoot":"","sources":["../../src/hooks/use_chat_permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAI3D,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGjD,eAAO,MAAM,oBAAoB;;;;;;;SAOhB,GAAG;CACnB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,WAAW,SAAS;;;;;;;CAQtD,CAAA;AAEJ,wBAAgB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3B;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CAInD"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { c as _c } from "react/compiler-runtime";
|
|
2
|
+
import { queryOptions } from '@tanstack/react-query';
|
|
3
|
+
import { throwResponseError } from '../utils/response_error';
|
|
2
4
|
import { FIVE_MINUTES } from '../utils/time';
|
|
3
5
|
import { useApiGet } from './use_api';
|
|
6
|
+
import { getRequestQueryKey } from './use_suspense_api';
|
|
4
7
|
export const appGrantsRequestArgs = {
|
|
5
8
|
url: '/me/app_grants',
|
|
6
9
|
data: {
|
|
@@ -10,6 +13,11 @@ export const appGrantsRequestArgs = {
|
|
|
10
13
|
},
|
|
11
14
|
app: 'chat'
|
|
12
15
|
};
|
|
16
|
+
export const appGrantsQueryOptions = apiClient => queryOptions({
|
|
17
|
+
queryKey: getRequestQueryKey(appGrantsRequestArgs),
|
|
18
|
+
queryFn: () => apiClient[appGrantsRequestArgs.app].get(appGrantsRequestArgs).catch(throwResponseError),
|
|
19
|
+
staleTime: FIVE_MINUTES
|
|
20
|
+
});
|
|
13
21
|
export function useAppGrants() {
|
|
14
22
|
const $ = _c(1);
|
|
15
23
|
let t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_chat_permissions.js","names":["FIVE_MINUTES","useApiGet","appGrantsRequestArgs","url","data","fields","AppGrant","app","useAppGrants","$","_c","t0","Symbol","for","
|
|
1
|
+
{"version":3,"file":"use_chat_permissions.js","names":["queryOptions","throwResponseError","FIVE_MINUTES","useApiGet","getRequestQueryKey","appGrantsRequestArgs","url","data","fields","AppGrant","app","appGrantsQueryOptions","apiClient","queryKey","queryFn","get","catch","staleTime","useAppGrants","$","_c","t0","Symbol","for","useCanCreateConversations","t1","undefined","appGrants","t2","some","_temp","appGrant","createConversations"],"sources":["../../src/hooks/use_chat_permissions.ts"],"sourcesContent":["import { queryOptions } from '@tanstack/react-query'\nimport { ApiCollection, AppGrantsResource } from '../types'\nimport { throwResponseError } from '../utils/response_error'\nimport { FIVE_MINUTES } from '../utils/time'\nimport { useApiGet } from './use_api'\nimport { ApiClient, App } from './use_api_client'\nimport { getRequestQueryKey } from './use_suspense_api'\n\nexport const appGrantsRequestArgs = {\n url: '/me/app_grants',\n data: {\n fields: {\n AppGrant: ['create_conversations', 'app_name'],\n },\n },\n app: 'chat' as App,\n}\n\nexport const appGrantsQueryOptions = (apiClient: ApiClient) =>\n queryOptions({\n queryKey: getRequestQueryKey(appGrantsRequestArgs),\n queryFn: (): Promise<ApiCollection<AppGrantsResource>> =>\n apiClient[appGrantsRequestArgs.app]\n .get<ApiCollection<AppGrantsResource>>(appGrantsRequestArgs)\n .catch(throwResponseError),\n staleTime: FIVE_MINUTES,\n })\n\nexport function useAppGrants() {\n return useApiGet<AppGrantsResource[]>(appGrantsRequestArgs, {\n staleTime: FIVE_MINUTES,\n })\n}\n\nexport function useCanCreateConversations(): boolean {\n const { data: appGrants = [] } = useAppGrants()\n\n return appGrants.some(appGrant => appGrant.createConversations)\n}\n"],"mappings":";AAAA,SAASA,YAAY,QAAQ,uBAAuB;AAEpD,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,QAAQ,WAAW;AAErC,SAASC,kBAAkB,QAAQ,oBAAoB;AAEvD,OAAO,MAAMC,oBAAoB,GAAG;EAClCC,GAAG,EAAE,gBAAgB;EACrBC,IAAI,EAAE;IACJC,MAAM,EAAE;MACNC,QAAQ,EAAE,CAAC,sBAAsB,EAAE,UAAU;IAC/C;EACF,CAAC;EACDC,GAAG,EAAE;AACP,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAIC,SAAoB,IACxDZ,YAAY,CAAC;EACXa,QAAQ,EAAET,kBAAkB,CAACC,oBAAoB,CAAC;EAClDS,OAAO,EAAEA,CAAA,KACPF,SAAS,CAACP,oBAAoB,CAACK,GAAG,CAAC,CAChCK,GAAG,CAAmCV,oBAAoB,CAAC,CAC3DW,KAAK,CAACf,kBAAkB,CAAC;EAC9BgB,SAAS,EAAEf;AACb,CAAC,CAAC;AAEJ,OAAO,SAAAgB,aAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAF,CAAA,QAAAG,MAAA,CAAAC,GAAA;IACuDF,EAAA;MAAAJ,SAAA,EAC/Cf;IACb,CAAC;IAAAiB,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAAA,OAFMhB,SAAS,CAAsBE,oBAAoB,EAAEgB,EAE3D,CAAC;AAAA;AAGJ,OAAO,SAAAG,0BAAA;EAAA,MAAAL,CAAA,GAAAC,EAAA;EACL;IAAAb,IAAA,EAAAc;EAAA,IAAiCH,YAAY,CAAC,CAAC;EAAA,IAAAO,EAAA;EAAA,IAAAN,CAAA,QAAAE,EAAA;IAAjCI,EAAA,GAAAJ,EAAc,KAAdK,SAAc,GAAd,EAAc,GAAdL,EAAc;IAAAF,CAAA,MAAAE,EAAA;IAAAF,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAd,MAAAQ,SAAA,GAAAF,EAAc;EAAA,IAAAG,EAAA;EAAA,IAAAT,CAAA,QAAAQ,SAAA;IAErBC,EAAA,GAAAD,SAAS,CAAAE,IAAK,CAACC,KAAwC,CAAC;IAAAX,CAAA,MAAAQ,SAAA;IAAAR,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAA,OAAxDS,EAAwD;AAAA;AAH1D,SAAAE,MAAAC,QAAA;EAAA,OAG6BA,QAAQ,CAAAC,mBAAoB;AAAA","ignoreList":[]}
|
|
@@ -29,6 +29,8 @@ export declare const availableFeatures: {
|
|
|
29
29
|
readonly dm_search_clear_fix: "ROLLOUT_MOBILE_dm_search_clear_fix";
|
|
30
30
|
readonly search: "QA_MOBILE_search";
|
|
31
31
|
readonly search_rollout: "ROLLOUT_MOBILE_search";
|
|
32
|
+
readonly manual_archiving: "QA_MOBILE_manual_archiving";
|
|
33
|
+
readonly manual_archiving_rollout: "ROLLOUT_MOBILE_manual_archiving";
|
|
32
34
|
};
|
|
33
35
|
export {};
|
|
34
36
|
//# sourceMappingURL=use_features.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_features.d.ts","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAG1E,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAA;AAE1D,KAAK,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA;AAE7E,KAAK,kBAAkB,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG;IACzD,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9B,CAAA;AAED,wBAAgB,WAAW;;kCAOT,WAAW;EAS5B;AAED,eAAO,MAAM,oBAAoB,GAAI,WAAW,SAAS;;;;;;;CAerD,CAAA;AAEJ,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"use_features.d.ts","sourceRoot":"","sources":["../../src/hooks/use_features.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAG1E,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAA;AAE1D,KAAK,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA;AAE7E,KAAK,kBAAkB,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG;IACzD,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9B,CAAA;AAED,wBAAgB,WAAW;;kCAOT,WAAW;EAS5B;AAED,eAAO,MAAM,oBAAoB,GAAI,WAAW,SAAS;;;;;;;CAerD,CAAA;AAEJ,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAYsC,CAAA"}
|
|
@@ -68,7 +68,9 @@ export const availableFeatures = {
|
|
|
68
68
|
video_moderation: 'ROLLOUT_MOBILE_video_moderation',
|
|
69
69
|
dm_search_clear_fix: 'ROLLOUT_MOBILE_dm_search_clear_fix',
|
|
70
70
|
search: 'QA_MOBILE_search',
|
|
71
|
-
search_rollout: 'ROLLOUT_MOBILE_search'
|
|
71
|
+
search_rollout: 'ROLLOUT_MOBILE_search',
|
|
72
|
+
manual_archiving: 'QA_MOBILE_manual_archiving',
|
|
73
|
+
manual_archiving_rollout: 'ROLLOUT_MOBILE_manual_archiving'
|
|
72
74
|
};
|
|
73
75
|
const stableEmptyFeatures = {
|
|
74
76
|
data: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_features.js","names":["queryOptions","useSuspenseQuery","useCallback","getFeaturesRequestArgs","getFeaturesQueryKey","FIVE_MINUTES","ONE_MINUTE","useApiClient","useFeatures","$","_c","apiClient","t0","featuresQueryOptions","data","features","t1","featureName","some","feature","name","enabled","featureEnabled","t2","queryKey","queryFn","chat","get","catch","error","stableEmptyFeatures","failure","status","staleTime","query","state","gcTime","Infinity","availableFeatures","gender_specific_conversations","message_reporting","granular_notifications_ui","custom_conversation_avatars","conversation_safety_lock","video_moderation","dm_search_clear_fix","search","search_rollout","links","meta","count","totalCount"],"sources":["../../src/hooks/use_features.ts"],"sourcesContent":["import { queryOptions, 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, ONE_MINUTE } from '../utils/time'\nimport { ApiClient, useApiClient } from './use_api_client'\n\ntype FeatureName = (typeof availableFeatures)[keyof typeof availableFeatures]\n\ntype FeaturesCollection = ApiCollection<FeatureResource> & {\n failure?: { status?: number }\n}\n\nexport function useFeatures() {\n const apiClient = useApiClient()\n const { data } = useSuspenseQuery(featuresQueryOptions(apiClient))\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 featuresQueryOptions = (apiClient: ApiClient) =>\n queryOptions({\n queryKey: getFeaturesQueryKey(),\n queryFn: (): Promise<FeaturesCollection> => {\n return apiClient.chat\n .get<ApiCollection<FeatureResource>>(getFeaturesRequestArgs())\n .catch(error => ({ ...stableEmptyFeatures, failure: { status: error?.status } }))\n },\n staleTime: query => {\n const failure = query.state.data?.failure\n if (!failure) return FIVE_MINUTES\n\n return failure.status === 429 ? ONE_MINUTE : 0\n },\n gcTime: Infinity,\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 search: 'QA_MOBILE_search',\n search_rollout: 'ROLLOUT_MOBILE_search',\n} as const satisfies Record<string, `${'QA' | 'ROLLOUT'}_${string}`>\n\nconst stableEmptyFeatures: ApiCollection<FeatureResource> = {\n data: [],\n links: {},\n meta: {\n count: 0,\n totalCount: 0,\n },\n}\n"],"mappings":";AAAA,SAASA,YAAY,EAAEC,gBAAgB,QAAQ,uBAAuB;AACtE,SAASC,WAAW,QAAQ,OAAO;AAGnC,SAASC,sBAAsB,EAAEC,mBAAmB,QAAQ,+BAA+B;AAC3F,SAASC,YAAY,EAAEC,UAAU,QAAQ,eAAe;AACxD,SAAoBC,YAAY,QAAQ,kBAAkB;AAQ1D,OAAO,SAAAC,YAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL,MAAAC,SAAA,GAAkBJ,YAAY,CAAC,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAH,CAAA,QAAAE,SAAA;IACEC,EAAA,GAAAC,oBAAoB,CAACF,SAAS,CAAC;IAAAF,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAjE;IAAAK;EAAA,IAAiBb,gBAAgB,CAACW,EAA+B,CAAC;EAElE,MAAAG,QAAA,GAAiBD,IAAI,CAAAA,IAAK;EAAA,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAM,QAAA;IAGxBC,EAAA,GAAAC,WAAA,IACEF,QAAQ,CAAAG,IAAK,CAACC,OAAA,IAAWA,OAAO,CAAAC,IAAK,KAAKH,WAA8B,IAAfE,OAAO,CAAAE,OAAQ,CAAC;IAAAZ,CAAA,MAAAM,QAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAF7E,MAAAa,cAAA,GAAuBN,EAItB;EAAA,IAAAO,EAAA;EAAA,IAAAd,CAAA,QAAAa,cAAA,IAAAb,CAAA,QAAAM,QAAA;IAEMQ,EAAA;MAAAR,QAAA;MAAAO;IAGP,CAAC;IAAAb,CAAA,MAAAa,cAAA;IAAAb,CAAA,MAAAM,QAAA;IAAAN,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,OAHMc,EAGN;AAAA;AAGH,OAAO,MAAMV,oBAAoB,GAAIF,SAAoB,IACvDX,YAAY,CAAC;EACXwB,QAAQ,EAAEpB,mBAAmB,CAAC,CAAC;EAC/BqB,OAAO,EAAEA,CAAA,KAAmC;IAC1C,OAAOd,SAAS,CAACe,IAAI,CAClBC,GAAG,CAAiCxB,sBAAsB,CAAC,CAAC,CAAC,CAC7DyB,KAAK,CAACC,KAAK,KAAK;MAAE,GAAGC,mBAAmB;MAAEC,OAAO,EAAE;QAAEC,MAAM,EAAEH,KAAK,EAAEG;MAAO;IAAE,CAAC,CAAC,CAAC;EACrF,CAAC;EACDC,SAAS,EAAEC,KAAK,IAAI;IAClB,MAAMH,OAAO,GAAGG,KAAK,CAACC,KAAK,CAACrB,IAAI,EAAEiB,OAAO;IACzC,IAAI,CAACA,OAAO,EAAE,OAAO1B,YAAY;IAEjC,OAAO0B,OAAO,CAACC,MAAM,KAAK,GAAG,GAAG1B,UAAU,GAAG,CAAC;EAChD,CAAC;EACD8B,MAAM,EAAEC;AACV,CAAC,CAAC;AAEJ,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,6BAA6B,EAAE,uCAAuC;EACtEC,iBAAiB,EAAE,kCAAkC;EACrDC,yBAAyB,EAAE,8CAA8C;EACzEC,2BAA2B,EAAE,qCAAqC;EAClEC,wBAAwB,EAAE,kCAAkC;EAC5DC,gBAAgB,EAAE,iCAAiC;EACnDC,mBAAmB,EAAE,oCAAoC;EACzDC,MAAM,EAAE,kBAAkB;EAC1BC,cAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"use_features.js","names":["queryOptions","useSuspenseQuery","useCallback","getFeaturesRequestArgs","getFeaturesQueryKey","FIVE_MINUTES","ONE_MINUTE","useApiClient","useFeatures","$","_c","apiClient","t0","featuresQueryOptions","data","features","t1","featureName","some","feature","name","enabled","featureEnabled","t2","queryKey","queryFn","chat","get","catch","error","stableEmptyFeatures","failure","status","staleTime","query","state","gcTime","Infinity","availableFeatures","gender_specific_conversations","message_reporting","granular_notifications_ui","custom_conversation_avatars","conversation_safety_lock","video_moderation","dm_search_clear_fix","search","search_rollout","manual_archiving","manual_archiving_rollout","links","meta","count","totalCount"],"sources":["../../src/hooks/use_features.ts"],"sourcesContent":["import { queryOptions, 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, ONE_MINUTE } from '../utils/time'\nimport { ApiClient, useApiClient } from './use_api_client'\n\ntype FeatureName = (typeof availableFeatures)[keyof typeof availableFeatures]\n\ntype FeaturesCollection = ApiCollection<FeatureResource> & {\n failure?: { status?: number }\n}\n\nexport function useFeatures() {\n const apiClient = useApiClient()\n const { data } = useSuspenseQuery(featuresQueryOptions(apiClient))\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 featuresQueryOptions = (apiClient: ApiClient) =>\n queryOptions({\n queryKey: getFeaturesQueryKey(),\n queryFn: (): Promise<FeaturesCollection> => {\n return apiClient.chat\n .get<ApiCollection<FeatureResource>>(getFeaturesRequestArgs())\n .catch(error => ({ ...stableEmptyFeatures, failure: { status: error?.status } }))\n },\n staleTime: query => {\n const failure = query.state.data?.failure\n if (!failure) return FIVE_MINUTES\n\n return failure.status === 429 ? ONE_MINUTE : 0\n },\n gcTime: Infinity,\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 search: 'QA_MOBILE_search',\n search_rollout: 'ROLLOUT_MOBILE_search',\n manual_archiving: 'QA_MOBILE_manual_archiving',\n manual_archiving_rollout: 'ROLLOUT_MOBILE_manual_archiving',\n} as const satisfies Record<string, `${'QA' | 'ROLLOUT'}_${string}`>\n\nconst stableEmptyFeatures: ApiCollection<FeatureResource> = {\n data: [],\n links: {},\n meta: {\n count: 0,\n totalCount: 0,\n },\n}\n"],"mappings":";AAAA,SAASA,YAAY,EAAEC,gBAAgB,QAAQ,uBAAuB;AACtE,SAASC,WAAW,QAAQ,OAAO;AAGnC,SAASC,sBAAsB,EAAEC,mBAAmB,QAAQ,+BAA+B;AAC3F,SAASC,YAAY,EAAEC,UAAU,QAAQ,eAAe;AACxD,SAAoBC,YAAY,QAAQ,kBAAkB;AAQ1D,OAAO,SAAAC,YAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL,MAAAC,SAAA,GAAkBJ,YAAY,CAAC,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAH,CAAA,QAAAE,SAAA;IACEC,EAAA,GAAAC,oBAAoB,CAACF,SAAS,CAAC;IAAAF,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAjE;IAAAK;EAAA,IAAiBb,gBAAgB,CAACW,EAA+B,CAAC;EAElE,MAAAG,QAAA,GAAiBD,IAAI,CAAAA,IAAK;EAAA,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAM,QAAA;IAGxBC,EAAA,GAAAC,WAAA,IACEF,QAAQ,CAAAG,IAAK,CAACC,OAAA,IAAWA,OAAO,CAAAC,IAAK,KAAKH,WAA8B,IAAfE,OAAO,CAAAE,OAAQ,CAAC;IAAAZ,CAAA,MAAAM,QAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAF7E,MAAAa,cAAA,GAAuBN,EAItB;EAAA,IAAAO,EAAA;EAAA,IAAAd,CAAA,QAAAa,cAAA,IAAAb,CAAA,QAAAM,QAAA;IAEMQ,EAAA;MAAAR,QAAA;MAAAO;IAGP,CAAC;IAAAb,CAAA,MAAAa,cAAA;IAAAb,CAAA,MAAAM,QAAA;IAAAN,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,OAHMc,EAGN;AAAA;AAGH,OAAO,MAAMV,oBAAoB,GAAIF,SAAoB,IACvDX,YAAY,CAAC;EACXwB,QAAQ,EAAEpB,mBAAmB,CAAC,CAAC;EAC/BqB,OAAO,EAAEA,CAAA,KAAmC;IAC1C,OAAOd,SAAS,CAACe,IAAI,CAClBC,GAAG,CAAiCxB,sBAAsB,CAAC,CAAC,CAAC,CAC7DyB,KAAK,CAACC,KAAK,KAAK;MAAE,GAAGC,mBAAmB;MAAEC,OAAO,EAAE;QAAEC,MAAM,EAAEH,KAAK,EAAEG;MAAO;IAAE,CAAC,CAAC,CAAC;EACrF,CAAC;EACDC,SAAS,EAAEC,KAAK,IAAI;IAClB,MAAMH,OAAO,GAAGG,KAAK,CAACC,KAAK,CAACrB,IAAI,EAAEiB,OAAO;IACzC,IAAI,CAACA,OAAO,EAAE,OAAO1B,YAAY;IAEjC,OAAO0B,OAAO,CAACC,MAAM,KAAK,GAAG,GAAG1B,UAAU,GAAG,CAAC;EAChD,CAAC;EACD8B,MAAM,EAAEC;AACV,CAAC,CAAC;AAEJ,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,6BAA6B,EAAE,uCAAuC;EACtEC,iBAAiB,EAAE,kCAAkC;EACrDC,yBAAyB,EAAE,8CAA8C;EACzEC,2BAA2B,EAAE,qCAAqC;EAClEC,wBAAwB,EAAE,kCAAkC;EAC5DC,gBAAgB,EAAE,iCAAiC;EACnDC,mBAAmB,EAAE,oCAAoC;EACzDC,MAAM,EAAE,kBAAkB;EAC1BC,cAAc,EAAE,uBAAuB;EACvCC,gBAAgB,EAAE,4BAA4B;EAC9CC,wBAAwB,EAAE;AAC5B,CAAoE;AAEpE,MAAMnB,mBAAmD,GAAG;EAC1DhB,IAAI,EAAE,EAAE;EACRoC,KAAK,EAAE,CAAC,CAAC;EACTC,IAAI,EAAE;IACJC,KAAK,EAAE,CAAC;IACRC,UAAU,EAAE;EACd;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"age_check_underage_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/age_check/age_check_underage_screen.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"age_check_underage_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/age_check/age_check_underage_screen.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,YAAY,EAAE,GAAE,2BAAgC,2CAuDxF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { c as _c } from "react/compiler-runtime";
|
|
2
2
|
import { useRoute } from '@react-navigation/native';
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { Linking, StyleSheet, View, ScrollView } from 'react-native';
|
|
4
|
+
import { Linking as RNLinking, StyleSheet, View, ScrollView } from 'react-native';
|
|
5
5
|
import { Heading } from '../../components';
|
|
6
6
|
import { Icon, Text, TextInlineButton } from '../../components/display';
|
|
7
7
|
import { useTheme } from '../../hooks';
|
|
8
|
+
import { Linking } from '../../utils';
|
|
8
9
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
export function AgeCheckUnderageScreen(t0) {
|
|
10
11
|
const $ = _c(30);
|
|
@@ -28,7 +29,7 @@ export function AgeCheckUnderageScreen(t0) {
|
|
|
28
29
|
if (!email) {
|
|
29
30
|
return;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
RNLinking.openURL(`mailto:${email}`);
|
|
32
33
|
};
|
|
33
34
|
$[2] = email;
|
|
34
35
|
$[3] = t2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"age_check_underage_screen.js","names":["useRoute","React","Linking","StyleSheet","View","ScrollView","Heading","Icon","Text","TextInlineButton","useTheme","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AgeCheckUnderageScreen","t0","$","_c","t1","undefined","contactEmail","styles","useStyles","route","email","params","t2","openURL","openChurchAdminHelp","openTerms","_temp","t3","icon","name","size","style","t4","baseText","variant","children","t5","linkText","accessibilityRole","accessibilityHint","t6","t7","t8","t9","content","t10","container","scrollView","contentContainerStyle","colors","iconColorDefaultDisabled","textColorDefaultSecondary","create","flex","alignItems","justifyContent","gap","padding","minHeight","color","maxWidth","textAlign","fontSize"],"sources":["../../../src/screens/age_check/age_check_underage_screen.tsx"],"sourcesContent":["import { useRoute, RouteProp } from '@react-navigation/native'\nimport React from 'react'\nimport { Linking, StyleSheet, View, ScrollView } from 'react-native'\nimport { Heading } from '../../components'\nimport { Icon, Text, TextInlineButton } from '../../components/display'\nimport { useTheme } from '../../hooks'\nimport type { AgeCheckParams } from './screen_props'\n\nexport interface AgeCheckUnderageScreenProps {\n contactEmail?: string\n}\n\nexport function AgeCheckUnderageScreen({ contactEmail }: AgeCheckUnderageScreenProps = {}) {\n const styles = useStyles()\n const route = useRoute<RouteProp<AgeCheckParams, 'UnderagePerson'>>()\n\n const email = contactEmail ?? route?.params?.contactEmail\n\n const openChurchAdminHelp = () => {\n if (!email) return\n
|
|
1
|
+
{"version":3,"file":"age_check_underage_screen.js","names":["useRoute","React","Linking","RNLinking","StyleSheet","View","ScrollView","Heading","Icon","Text","TextInlineButton","useTheme","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AgeCheckUnderageScreen","t0","$","_c","t1","undefined","contactEmail","styles","useStyles","route","email","params","t2","openURL","openChurchAdminHelp","openTerms","_temp","t3","icon","name","size","style","t4","baseText","variant","children","t5","linkText","accessibilityRole","accessibilityHint","t6","t7","t8","t9","content","t10","container","scrollView","contentContainerStyle","colors","iconColorDefaultDisabled","textColorDefaultSecondary","create","flex","alignItems","justifyContent","gap","padding","minHeight","color","maxWidth","textAlign","fontSize"],"sources":["../../../src/screens/age_check/age_check_underage_screen.tsx"],"sourcesContent":["import { useRoute, RouteProp } from '@react-navigation/native'\nimport React from 'react'\nimport { Linking as RNLinking, StyleSheet, View, ScrollView } from 'react-native'\nimport { Heading } from '../../components'\nimport { Icon, Text, TextInlineButton } from '../../components/display'\nimport { useTheme } from '../../hooks'\nimport { Linking } from '../../utils'\nimport type { AgeCheckParams } from './screen_props'\n\nexport interface AgeCheckUnderageScreenProps {\n contactEmail?: string\n}\n\nexport function AgeCheckUnderageScreen({ contactEmail }: AgeCheckUnderageScreenProps = {}) {\n const styles = useStyles()\n const route = useRoute<RouteProp<AgeCheckParams, 'UnderagePerson'>>()\n\n const email = contactEmail ?? route?.params?.contactEmail\n\n const openChurchAdminHelp = () => {\n if (!email) return\n RNLinking.openURL(`mailto:${email}`)\n }\n\n const openTerms = () => {\n Linking.openURL('https://www.planningcenter.com/terms')\n }\n\n return (\n <ScrollView style={styles.scrollView} contentContainerStyle={styles.container}>\n <Icon name=\"general.outlinedTextMessage\" size={32} style={styles.icon} />\n\n <View style={styles.content}>\n <Heading variant=\"h3\" style={styles.baseText}>\n Chat is only available for users 13 and older.\n </Heading>\n <Text variant=\"tertiary\" style={styles.baseText}>\n If you submitted the wrong birthdate by accident,{` `}\n {email ? (\n <TextInlineButton\n onPress={openChurchAdminHelp}\n accessibilityRole=\"link\"\n accessibilityHint=\"Opens email client to contact your church administrator\"\n style={styles.linkText}\n >\n please contact your church administrator\n </TextInlineButton>\n ) : (\n <>please contact your church administrator</>\n )}\n {` `}\n to update your profile.\n </Text>\n <Text variant=\"tertiary\" style={styles.baseText}>\n For more information, view our{` `}\n <TextInlineButton\n onPress={openTerms}\n accessibilityRole=\"link\"\n accessibilityHint=\"Opens terms of service in browser\"\n style={styles.linkText}\n >\n terms of service\n </TextInlineButton>\n .\n </Text>\n </View>\n </ScrollView>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n scrollView: {\n flex: 1,\n },\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n gap: 16,\n padding: 16,\n minHeight: '100%',\n },\n icon: {\n color: colors.iconColorDefaultDisabled,\n },\n content: {\n alignItems: 'center',\n gap: 8,\n maxWidth: 250,\n },\n baseText: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n linkText: {\n fontSize: 14,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bug_report_screen.d.ts","sourceRoot":"","sources":["../../src/screens/bug_report_screen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"bug_report_screen.d.ts","sourceRoot":"","sources":["../../src/screens/bug_report_screen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,gCAAgC,CAAA;AA6CvC,eAAO,MAAM,sBAAsB,GAAI,iBAEpC,sBAAsB,CAAC,GAAG,CAAC,KAAG,4BAI9B,CAAA;AAoBH,wBAAgB,eAAe,4CAmS9B"}
|
|
@@ -2,7 +2,7 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
2
2
|
import { useNavigation } from '@react-navigation/native';
|
|
3
3
|
import { startsWith } from 'lodash';
|
|
4
4
|
import React, { useCallback, useState } from 'react';
|
|
5
|
-
import { View, StyleSheet, TextInput,
|
|
5
|
+
import { View, StyleSheet, TextInput, ScrollView, TouchableOpacity, Platform } from 'react-native';
|
|
6
6
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
7
7
|
import { Button, Spinner, Text, TextInlineButton, ImageAttachmentPreview, Icon, KeyboardScrollView } from '../components';
|
|
8
8
|
import { composeOptions, HeaderDismissButton, useHeaderRight, withLeftClose } from '../components/display/platform_modal_header_buttons';
|
|
@@ -14,7 +14,7 @@ import { useTheme } from '../hooks';
|
|
|
14
14
|
import { useAppName } from '../hooks/use_app_name';
|
|
15
15
|
import { useReportBugAction } from '../hooks/use_report_bug_action';
|
|
16
16
|
import { useUploadClient } from '../hooks/use_upload_client';
|
|
17
|
-
import { ImagePicker, platformFontWeightBold } from '../utils';
|
|
17
|
+
import { ImagePicker, Linking, platformFontWeightBold } from '../utils';
|
|
18
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
19
|
const MAX_DESCRIPTION_LENGTH = 2000;
|
|
20
20
|
var BUG_TYPE_OPTIONS = /*#__PURE__*/function (BUG_TYPE_OPTIONS) {
|