@planningcenter/chat-react-native 4.4.1-qa-staging.25 → 4.5.0-rc.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/message.d.ts.map +1 -1
- package/build/components/conversation/message.js +145 -193
- package/build/components/conversation/message.js.map +1 -1
- package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
- package/build/components/conversation/reply_shadow_message.js +107 -135
- package/build/components/conversation/reply_shadow_message.js.map +1 -1
- package/build/components/conversations/conversations.d.ts.map +1 -1
- package/build/components/conversations/conversations.js +3 -2
- package/build/components/conversations/conversations.js.map +1 -1
- package/build/contexts/conversations_context.d.ts.map +1 -1
- package/build/contexts/conversations_context.js +20 -17
- package/build/contexts/conversations_context.js.map +1 -1
- package/build/hooks/use_clear_conversation_filters.d.ts.map +1 -1
- package/build/hooks/use_clear_conversation_filters.js +2 -1
- package/build/hooks/use_clear_conversation_filters.js.map +1 -1
- package/build/hooks/use_conversations_cache.d.ts +1 -1
- package/build/hooks/use_conversations_cache.d.ts.map +1 -1
- package/build/hooks/use_conversations_cache.js +64 -55
- package/build/hooks/use_conversations_cache.js.map +1 -1
- package/build/hooks/use_conversations_jolt_events.js +2 -2
- package/build/hooks/use_conversations_jolt_events.js.map +1 -1
- package/build/hooks/use_jolt.d.ts.map +1 -1
- package/build/hooks/use_jolt.js +37 -9
- package/build/hooks/use_jolt.js.map +1 -1
- package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
- package/build/screens/conversation_filters/context/conversation_filter_context.js +8 -4
- package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
- package/build/screens/conversation_filters/screen_props.d.ts +1 -0
- package/build/screens/conversation_filters/screen_props.d.ts.map +1 -1
- package/build/screens/conversation_filters/screen_props.js.map +1 -1
- package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map +1 -1
- package/build/screens/conversations/components/filter_dropdown_list_header_component.js +192 -170
- package/build/screens/conversations/components/filter_dropdown_list_header_component.js.map +1 -1
- package/build/screens/conversations/conversations_screen.d.ts +1 -0
- package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
- package/build/screens/conversations/conversations_screen.js.map +1 -1
- package/build/utils/request/conversation.d.ts +2 -1
- package/build/utils/request/conversation.d.ts.map +1 -1
- package/build/utils/request/conversation.js +4 -1
- package/build/utils/request/conversation.js.map +1 -1
- package/build/utils/styles.d.ts +0 -1
- package/build/utils/styles.d.ts.map +1 -1
- package/build/utils/styles.js +1 -1
- package/build/utils/styles.js.map +1 -1
- package/package.json +3 -3
- package/src/components/conversation/message.tsx +2 -10
- package/src/components/conversation/reply_shadow_message.tsx +3 -14
- package/src/components/conversations/__tests__/conversations_blank_state.test.tsx +1 -0
- package/src/components/conversations/conversations.tsx +12 -2
- package/src/contexts/conversations_context.tsx +8 -1
- package/src/hooks/__tests__/use_conversations_jolt_events.test.tsx +135 -0
- package/src/hooks/__tests__/use_jolt.test.tsx +76 -1
- package/src/hooks/use_clear_conversation_filters.ts +1 -0
- package/src/hooks/use_conversations_cache.ts +29 -24
- package/src/hooks/use_conversations_jolt_events.ts +2 -2
- package/src/hooks/use_jolt.ts +26 -2
- package/src/screens/conversation_filters/context/conversation_filter_context.tsx +4 -0
- package/src/screens/conversation_filters/screen_props.ts +1 -0
- package/src/screens/conversations/components/__tests__/filter_dropdown_list_header_component.test.tsx +53 -31
- package/src/screens/conversations/components/filter_dropdown_list_header_component.tsx +19 -4
- package/src/screens/conversations/conversations_screen.tsx +1 -0
- package/src/utils/__tests__/conversation.test.ts +1 -0
- package/src/utils/request/conversation.ts +4 -0
- package/src/utils/styles.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_conversations_cache.js","names":["useQueryClient","deleteRecordInPagesData","updateRecordInPagesData","updateAllRecordsInPagesData","updateOrCreateRecordInPagesData","getConversationsRequestArgs","useApiClient","getRequestQueryKey","useConversationsCache","args","$","_c","apiClient","queryClient","conversationsRequestArgs","t0","conversationQueryKey","t1","id","data","
|
|
1
|
+
{"version":3,"file":"use_conversations_cache.js","names":["useQueryClient","deleteRecordInPagesData","updateRecordInPagesData","updateAllRecordsInPagesData","updateOrCreateRecordInPagesData","getConversationsRequestArgs","useApiClient","getRequestQueryKey","useConversationsCache","args","$","_c","apiClient","queryClient","conversationsRequestArgs","t0","conversationQueryKey","t1","id","url","data","conversations","chat","get","where","perPage","fetchConversation","t2","conversation","setQueryData","prev","record","processRecord","_temp","updateOrCreate","t3","conversation_0","prev_0","_temp2","updateOnly","t4","update","prev_1","record_1","updateAll","t5","t6","id_0","prev_2","handleConversationDestroy","t7","id_1","conversation_1","catch","_temp3","fetchAndUpdate","t8","id_2","fetchAndSync","invalidateQueries","queryKey","t9","create","destroy","fetchSync","fetchUpdate","invalidate","record_0","current_0","current"],"sources":["../../src/hooks/use_conversations_cache.ts"],"sourcesContent":["import { InfiniteData, useQueryClient } from '@tanstack/react-query'\nimport { ApiCollection, ConversationResource } from '../types'\nimport {\n deleteRecordInPagesData,\n updateRecordInPagesData,\n updateAllRecordsInPagesData,\n updateOrCreateRecordInPagesData,\n} from '../utils'\nimport { ConversationRequestArgs, getConversationsRequestArgs } from '../utils/request/conversation'\nimport { useApiClient } from './use_api_client'\nimport { getRequestQueryKey } from './use_suspense_api'\n\ntype QueryData = InfiniteData<ApiCollection<ConversationResource>>\n\nexport function useConversationsCache(args?: Partial<ConversationRequestArgs>) {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const conversationsRequestArgs = getConversationsRequestArgs(args)\n const conversationQueryKey = getRequestQueryKey(conversationsRequestArgs)\n\n const fetchConversation = async (id: number) => {\n if (!id) return\n\n const { url, data } = conversationsRequestArgs\n const { data: conversations } = await apiClient.chat.get<ApiCollection<ConversationResource>>({\n url,\n data: { ...data, where: { ...data.where, id }, perPage: 1 },\n })\n\n return conversations[0]\n }\n\n const updateOrCreate = async (conversation: ConversationResource) => {\n if (!conversation.id) return\n\n queryClient.setQueryData<QueryData>(conversationQueryKey, prev =>\n updateOrCreateRecordInPagesData({\n data: prev,\n record: conversation,\n processRecord: (record, current) => {\n return { ...current, ...record }\n },\n })\n )\n }\n\n const updateOnly = async (conversation: ConversationResource) => {\n if (!conversation.id) return\n\n queryClient.setQueryData<QueryData>(conversationQueryKey, prev =>\n updateRecordInPagesData({\n data: prev,\n record: conversation,\n processRecord: (record, current) => {\n return { ...current, ...record }\n },\n })\n )\n }\n\n const updateAll = async (update: Partial<ConversationResource>) => {\n queryClient.setQueryData<QueryData>(conversationQueryKey, prev =>\n updateAllRecordsInPagesData({\n data: prev,\n processRecord: record => ({ ...record, ...update }),\n })\n )\n }\n\n const handleConversationDestroy = ({ id }: { id: number }) => {\n if (!id) return\n\n queryClient.setQueryData<QueryData>(conversationQueryKey, prev =>\n deleteRecordInPagesData({\n data: prev,\n record: { id },\n })\n )\n }\n\n const fetchAndUpdate = async ({ id }: { id: number }) => {\n const conversation = await fetchConversation(id).catch(() => undefined)\n if (!conversation) return\n\n updateOnly(conversation)\n }\n\n const fetchAndSync = async ({ id }: { id: number }) => {\n let conversation: ConversationResource | undefined\n try {\n conversation = await fetchConversation(id)\n } catch {\n return\n }\n\n if (conversation) {\n updateOrCreate(conversation)\n } else {\n handleConversationDestroy({ id })\n }\n }\n\n return {\n create: updateOrCreate,\n destroy: handleConversationDestroy,\n fetchSync: fetchAndSync,\n fetchUpdate: fetchAndUpdate,\n invalidate: () => queryClient.invalidateQueries({ queryKey: conversationQueryKey }),\n update: updateOrCreate,\n updateAll,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,7 +31,7 @@ export function useConversationsJoltEvents() {
|
|
|
31
31
|
idempotentKey: e.data.data.last_message_idempotent_key
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
-
cache.
|
|
34
|
+
cache.fetchSync({
|
|
35
35
|
id: e.data.data.id
|
|
36
36
|
});
|
|
37
37
|
};
|
|
@@ -45,7 +45,7 @@ export function useConversationsJoltEvents() {
|
|
|
45
45
|
useJoltEvent(joltChannel, "conversation.updated", t0);
|
|
46
46
|
let t1;
|
|
47
47
|
if ($[4] !== cache) {
|
|
48
|
-
t1 = e_0 => cache.
|
|
48
|
+
t1 = e_0 => cache.fetchSync({
|
|
49
49
|
id: e_0.data.data.id
|
|
50
50
|
});
|
|
51
51
|
$[4] = cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_conversations_jolt_events.js","names":["useConversationsContext","completeMessageCreationConversationTracking","useApiGet","useApiClient","useConversationsCache","currentPersonRequestArgs","useCurrentPersonCache","useJoltChannel","useJoltEvent","useCurrentPerson","useConversationsJoltEvents","$","_c","data","currentPerson","args","cache","currentPersonCache","apiClient","enabled","id","joltChannel","t0","e","last_message_idempotent_key","last_message_author_id","idempotentKey","
|
|
1
|
+
{"version":3,"file":"use_conversations_jolt_events.js","names":["useConversationsContext","completeMessageCreationConversationTracking","useApiGet","useApiClient","useConversationsCache","currentPersonRequestArgs","useCurrentPersonCache","useJoltChannel","useJoltEvent","useCurrentPerson","useConversationsJoltEvents","$","_c","data","currentPerson","args","cache","currentPersonCache","apiClient","enabled","id","joltChannel","t0","e","last_message_idempotent_key","last_message_author_id","idempotentKey","fetchSync","t1","e_0","t2","e_1","destroy","invalidate"],"sources":["../../src/hooks/use_conversations_jolt_events.ts"],"sourcesContent":["import { useConversationsContext } from '../contexts/conversations_context'\nimport { CurrentPersonResource } from '../types'\nimport { JoltConversationEvent } from '../types/jolt_events'\nimport { completeMessageCreationConversationTracking } from '../utils/performance_tracking'\nimport { useApiGet } from './use_api'\nimport { useApiClient } from './use_api_client'\nimport { useConversationsCache } from './use_conversations_cache'\nimport { currentPersonRequestArgs, useCurrentPersonCache } from './use_current_person'\nimport { useJoltChannel, useJoltEvent } from './use_jolt'\n\nconst useCurrentPerson = () => {\n return useApiGet<CurrentPersonResource>(currentPersonRequestArgs)\n}\n\nexport function useConversationsJoltEvents() {\n const { data: currentPerson } = useCurrentPerson()\n const { args } = useConversationsContext()\n const cache = useConversationsCache(args)\n const currentPersonCache = useCurrentPersonCache()\n const apiClient = useApiClient()\n const enabled = currentPerson?.id ? true : false\n const joltChannel = useJoltChannel(`chat.people.${currentPerson?.id}`, enabled)\n\n useJoltEvent(joltChannel, 'conversation.updated', (e: JoltConversationEvent) => {\n if (\n e.data.data.last_message_idempotent_key &&\n e.data.data.last_message_author_id === currentPerson?.id\n ) {\n completeMessageCreationConversationTracking({\n apiClient,\n idempotentKey: e.data.data.last_message_idempotent_key,\n })\n }\n cache.fetchSync({ id: e.data.data.id })\n })\n useJoltEvent(joltChannel, 'conversation.created', (e: JoltConversationEvent) =>\n cache.fetchSync({ id: e.data.data.id })\n )\n useJoltEvent(joltChannel, 'conversation.destroyed', (e: JoltConversationEvent) =>\n cache.destroy({ id: e.data.data.id })\n )\n\n useJoltEvent(joltChannel, 'STREAM_USER_UPDATED', currentPersonCache.invalidate) // Would be nice to have a non-stream chat event\n useJoltEvent(joltChannel, 'conversation.read', currentPersonCache.invalidate)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_jolt.d.ts","sourceRoot":"","sources":["../../src/hooks/use_jolt.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,6BAA6B,CAAA;AACpD,OAAO,EACL,aAAa,EAEd,MAAM,uDAAuD,CAAA;AAC9D,OAAO,EAEL,gBAAgB,EACjB,MAAM,yDAAyD,CAAA;AAMhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAWnE,eAAO,MAAM,aAAa,QAAO,UAAU,GAAG,SAqG7C,CAAA;AA+CD,eAAO,MAAM,qBAAqB,YAQjC,CAAA;
|
|
1
|
+
{"version":3,"file":"use_jolt.d.ts","sourceRoot":"","sources":["../../src/hooks/use_jolt.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,6BAA6B,CAAA;AACpD,OAAO,EACL,aAAa,EAEd,MAAM,uDAAuD,CAAA;AAC9D,OAAO,EAEL,gBAAgB,EACjB,MAAM,yDAAyD,CAAA;AAMhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAWnE,eAAO,MAAM,aAAa,QAAO,UAAU,GAAG,SAqG7C,CAAA;AA+CD,eAAO,MAAM,qBAAqB,YAQjC,CAAA;AAqBD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,OAAc,GACtB,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAyCrC;AAED,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;AAE5C,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAClD,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,EAC5C,SAAS,EAAE,uBAAuB,EAClC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,QAO5B"}
|
package/build/hooks/use_jolt.js
CHANGED
|
@@ -240,8 +240,24 @@ export const useJoltForegroundPing = () => {
|
|
|
240
240
|
}
|
|
241
241
|
useEffect(t0, t1);
|
|
242
242
|
};
|
|
243
|
+
const channelConsumers = new WeakMap();
|
|
244
|
+
const retainChannel = (jolt, channelName) => {
|
|
245
|
+
const counts = channelConsumers.get(jolt) ?? new Map();
|
|
246
|
+
channelConsumers.set(jolt, counts);
|
|
247
|
+
counts.set(channelName, (counts.get(channelName) ?? 0) + 1);
|
|
248
|
+
};
|
|
249
|
+
const releaseChannel = (jolt, channelName) => {
|
|
250
|
+
const counts = channelConsumers.get(jolt);
|
|
251
|
+
const remaining = (counts?.get(channelName) ?? 1) - 1;
|
|
252
|
+
if (remaining > 0) {
|
|
253
|
+
counts?.set(channelName, remaining);
|
|
254
|
+
} else {
|
|
255
|
+
counts?.delete(channelName);
|
|
256
|
+
}
|
|
257
|
+
return remaining;
|
|
258
|
+
};
|
|
243
259
|
export function useJoltChannel(channelName, t0) {
|
|
244
|
-
const $ = _c(
|
|
260
|
+
const $ = _c(18);
|
|
245
261
|
const enabled = t0 === undefined ? true : t0;
|
|
246
262
|
const jolt = useJoltClient();
|
|
247
263
|
const queryClient = useQueryClient();
|
|
@@ -310,15 +326,27 @@ export function useJoltChannel(channelName, t0) {
|
|
|
310
326
|
const handleUnsubscribe = t4;
|
|
311
327
|
let t5;
|
|
312
328
|
let t6;
|
|
313
|
-
if ($[13] !== handleUnsubscribe) {
|
|
314
|
-
t5 = () =>
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
329
|
+
if ($[13] !== channelName || $[14] !== handleUnsubscribe || $[15] !== jolt) {
|
|
330
|
+
t5 = () => {
|
|
331
|
+
if (!jolt) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
retainChannel(jolt, channelName);
|
|
335
|
+
return () => {
|
|
336
|
+
if (releaseChannel(jolt, channelName) === 0) {
|
|
337
|
+
handleUnsubscribe();
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
t6 = [jolt, channelName, handleUnsubscribe];
|
|
342
|
+
$[13] = channelName;
|
|
343
|
+
$[14] = handleUnsubscribe;
|
|
344
|
+
$[15] = jolt;
|
|
345
|
+
$[16] = t5;
|
|
346
|
+
$[17] = t6;
|
|
319
347
|
} else {
|
|
320
|
-
t5 = $[
|
|
321
|
-
t6 = $[
|
|
348
|
+
t5 = $[16];
|
|
349
|
+
t6 = $[17];
|
|
322
350
|
}
|
|
323
351
|
useEffect(t5, t6);
|
|
324
352
|
return subscription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_jolt.js","names":["JoltClient","useQuery","useQueryClient","useSuspenseQuery","useCallback","useEffect","useMemo","AppState","useChatContext","Client","Uri","throwResponseError","FIVE_SECONDS","useJoltClient","$","_c","session","sessionAccessToken","token","access_token","queryClient","t0","uri","t1","root","api","defaultHeaders","headers","version","apiClient","t2","fetchQuery","queryKey","queryFn","post","url","data","type","attributes","catch","staleTime","fetchJoltToken","t3","Symbol","for","t4","then","_temp","Infinity","gcTime","refetchOnWindowFocus","wssUrl","t5","_temp2","fetchAuthTokenFn","t6","channel","connectionId","cid","_temp3","_temp4","fetchSubscribeToken","t7","channel_0","connectionId_0","options","fetchSubscribeTokenFn","t8","Boolean","t9","t10","logToConsole","t11","enabled","joltClient","pingSubscribedJoltClients","getQueryCache","findAll","forEach","query","state","subscriptions","length","ping","foregroundPingListeners","Map","subscribeToForegroundPing","existing","get","mounts","previousState","currentState","subscription","addEventListener","nextState","set","remove","unsubscribeFromForegroundPing","delete","useJoltForegroundPing","useJoltChannel","channelName","undefined","jolt","ready","alreadySubscribed","find","c","subscribe","handleSubscribe","removeQueries","exact","unsubscribe","handleUnsubscribe","useJoltEvent","eventName","callback","_temp5","bind","e","res","res_0","id","res_1","res_2","console","error"],"sources":["../../src/hooks/use_jolt.ts"],"sourcesContent":["import JoltClient from '@planningcenter/jolt-client'\nimport {\n CustomMessage,\n FetchAuthToken,\n} from '@planningcenter/jolt-client/dist/types/JoltConnection'\nimport {\n FetchSubscribeToken,\n JoltSubscription,\n} from '@planningcenter/jolt-client/dist/types/JoltSubscription'\nimport { QueryClient, useQuery, useQueryClient, useSuspenseQuery } from '@tanstack/react-query'\nimport { useCallback, useEffect, useMemo } from 'react'\nimport { AppState, AppStateStatus } from 'react-native'\nimport { useChatContext } from '../contexts/chat_context'\nimport { ApiResource } from '../types'\nimport type { JoltSubscriptionPattern } from '../types/jolt_events'\nimport { Client, Uri } from '../utils'\nimport { throwResponseError } from '../utils/response_error'\nimport { FIVE_SECONDS } from '../utils/time'\n\ninterface JoltResponse {\n type: 'JoltToken'\n id: string\n wssUrl: string\n}\n\nexport const useJoltClient = (): JoltClient | undefined => {\n const { session } = useChatContext()\n const sessionAccessToken = session.token?.access_token\n const queryClient = useQueryClient()\n const uri = useMemo(() => new Uri({ session }), [session])\n const apiClient = useMemo(\n () =>\n new Client({\n root: uri.api(`/chat/v2`),\n defaultHeaders: uri.headers,\n version: '2018-11-01',\n }),\n [uri]\n )\n\n const fetchJoltToken = async () => {\n return queryClient.fetchQuery({\n queryKey: ['jolt-token'],\n queryFn: () => {\n return apiClient\n .post<ApiResource<JoltResponse>>({\n url: '/me/jolt_authorize',\n data: {\n data: {\n type: 'JoltToken',\n attributes: {},\n },\n },\n })\n .catch(throwResponseError)\n },\n staleTime: FIVE_SECONDS,\n })\n }\n\n /** The wssUrl is static and doesn't change so we can cache it to infinity and beyond */\n const { data: wssUrl } = useSuspenseQuery<string>({\n queryKey: ['wss-url'],\n queryFn: () => fetchJoltToken().then(res => res.data.wssUrl),\n staleTime: Infinity,\n gcTime: Infinity,\n refetchOnWindowFocus: false,\n })\n\n const fetchAuthTokenFn: FetchAuthToken = () => {\n return queryClient.fetchQuery({\n queryKey: ['jolt-auth-token'],\n queryFn: () => fetchJoltToken().then(res => res.data.id),\n })\n }\n\n const fetchSubscribeToken: FetchSubscribeToken = (channel: string, connectionId: string) => {\n return apiClient\n .post<ApiResource<JoltResponse>>({\n url: '/me/jolt_subscribe',\n data: {\n data: {\n type: 'JoltSubscribeToken',\n attributes: { channel, cid: connectionId },\n },\n },\n })\n .then(res => res.data.id)\n .catch((res: unknown) => {\n console.error('failed to subscribe to Jolt channel', res)\n return ''\n })\n }\n\n const fetchSubscribeTokenFn: FetchSubscribeToken = (\n channel: string,\n connectionId: string,\n options\n ) => {\n return queryClient.fetchQuery({\n queryKey: ['jolt-subscribe-token', channel, connectionId],\n queryFn: () => fetchSubscribeToken(channel, connectionId, options),\n })\n }\n\n const { data: joltClient } = useQuery({\n enabled: Boolean(wssUrl),\n queryKey: ['jolt-client', wssUrl, sessionAccessToken],\n queryFn: async () => {\n if (!wssUrl) return undefined\n\n return new JoltClient(\n wssUrl,\n {\n fetchAuthTokenFn,\n fetchSubscribeTokenFn,\n },\n { logToConsole: false }\n )\n },\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n })\n\n return joltClient\n}\n\nconst pingSubscribedJoltClients = (queryClient: QueryClient) => {\n queryClient\n .getQueryCache()\n .findAll({ queryKey: ['jolt-client'] })\n .forEach(query => {\n const joltClient = query.state.data as JoltClient | undefined\n if (!joltClient || joltClient.subscriptions.length === 0) return\n\n try {\n joltClient.ping()\n } catch {}\n })\n}\n\nconst foregroundPingListeners = new Map<QueryClient, { mounts: number; remove: () => void }>()\n\nconst subscribeToForegroundPing = (queryClient: QueryClient) => {\n const existing = foregroundPingListeners.get(queryClient)\n if (existing) {\n existing.mounts += 1\n return\n }\n\n let previousState: AppStateStatus = AppState.currentState\n const subscription = AppState.addEventListener('change', nextState => {\n if (nextState === 'active' && previousState !== 'active') {\n pingSubscribedJoltClients(queryClient)\n }\n previousState = nextState\n })\n\n foregroundPingListeners.set(queryClient, { mounts: 1, remove: () => subscription.remove() })\n}\n\nconst unsubscribeFromForegroundPing = (queryClient: QueryClient) => {\n const existing = foregroundPingListeners.get(queryClient)\n if (!existing) return\n\n existing.mounts -= 1\n if (existing.mounts > 0) return\n\n existing.remove()\n foregroundPingListeners.delete(queryClient)\n}\n\nexport const useJoltForegroundPing = () => {\n const queryClient = useQueryClient()\n\n useEffect(() => {\n subscribeToForegroundPing(queryClient)\n\n return () => unsubscribeFromForegroundPing(queryClient)\n }, [queryClient])\n}\n\nexport function useJoltChannel(\n channelName: string,\n enabled: boolean = true\n): JoltSubscription | undefined | null {\n const jolt = useJoltClient()\n const queryClient = useQueryClient()\n const ready = Boolean(jolt) && enabled\n\n const handleSubscribe = useCallback(async () => {\n if (!jolt) return null\n\n // If the subscription already exists, we don't need to subscribe again\n const alreadySubscribed = jolt.subscriptions.find(c => c.channel === channelName)\n if (alreadySubscribed) return alreadySubscribed\n\n return jolt.subscribe(channelName)\n }, [channelName, jolt])\n\n const { data: subscription } = useQuery<JoltSubscription | null>({\n queryKey: ['jolt-subscription', channelName],\n queryFn: handleSubscribe,\n refetchOnWindowFocus: false,\n enabled: ready,\n })\n\n const handleUnsubscribe = useCallback(() => {\n queryClient.removeQueries({\n queryKey: ['jolt-subscription', channelName],\n exact: true,\n })\n\n jolt?.unsubscribe(channelName)\n }, [queryClient, channelName, jolt])\n\n useEffect(() => {\n return handleUnsubscribe\n }, [handleUnsubscribe])\n\n return subscription\n}\n\ntype UserCallbackFn<T> = (_event: T) => void\n\nexport function useJoltEvent<T extends CustomMessage>(\n channel: JoltSubscription | undefined | null,\n eventName: JoltSubscriptionPattern,\n callback: UserCallbackFn<T>\n) {\n useEffect(() => {\n if (!channel) return () => {}\n\n return channel.bind(eventName, e => callback(e as T))\n }, [channel, eventName, callback])\n}\n"],"mappings":";AAAA,OAAOA,UAAU,MAAM,6BAA6B;AASpD,SAAsBC,QAAQ,EAAEC,cAAc,EAAEC,gBAAgB,QAAQ,uBAAuB;AAC/F,SAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AACvD,SAASC,QAAQ,QAAwB,cAAc;AACvD,SAASC,cAAc,QAAQ,0BAA0B;AAGzD,SAASC,MAAM,EAAEC,GAAG,QAAQ,UAAU;AACtC,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,YAAY,QAAQ,eAAe;AAQ5C,OAAO,MAAMC,aAAa,GAAGA,CAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAC3B;IAAAC;EAAA,IAAoBR,cAAc,CAAC,CAAC;EACpC,MAAAS,kBAAA,GAA2BD,OAAO,CAAAE,KAAoB,EAAAC,YAAA;EACtD,MAAAC,WAAA,GAAoBlB,cAAc,CAAC,CAAC;EAAA,IAAAmB,EAAA;EAAA,IAAAP,CAAA,QAAAE,OAAA;IACVK,EAAA,OAAIX,GAAG,CAAC;MAAAM;IAAU,CAAC,CAAC;IAAAF,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAA9C,MAAAQ,GAAA,GAA0BD,EAAoB;EAAY,IAAAE,EAAA;EAAA,IAAAT,CAAA,QAAAQ,GAAA;IAGtDC,EAAA,OAAId,MAAM,CAAC;MAAAe,IAAA,EACHF,GAAG,CAAAG,GAAI,CAAC,UAAU,CAAC;MAAAC,cAAA,EACTJ,GAAG,CAAAK,OAAQ;MAAAC,OAAA,EAClB;IACX,CAAC,CAAC;IAAAd,CAAA,MAAAQ,GAAA;IAAAR,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EANN,MAAAe,SAAA,GAEIN,EAIE;EAEL,IAAAO,EAAA;EAAA,IAAAhB,CAAA,QAAAe,SAAA,IAAAf,CAAA,QAAAM,WAAA;IAEsBU,EAAA,SAAAA,CAAA,KACdV,WAAW,CAAAW,UAAW,CAAC;MAAAC,QAAA,EAClB,CAAC,YAAY,CAAC;MAAAC,OAAA,EACfA,CAAA,KACAJ,SAAS,CAAAK,IACT,CAA4B;QAAAC,GAAA,EAC1B,oBAAoB;QAAAC,IAAA,EACnB;UAAAA,IAAA,EACE;YAAAC,IAAA,EACE,WAAW;YAAAC,UAAA,EACL,CAAC;UACf;QACF;MACF,CAAC,CAAC,CAAAC,KACI,CAAC5B,kBAAkB,CAC5B;MAAA6B,SAAA,EACU5B;IACb,CAAC,CACF;IAAAE,CAAA,MAAAe,SAAA;IAAAf,CAAA,MAAAM,WAAA;IAAAN,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAlBD,MAAA2B,cAAA,GAAuBX,EAkBtB;EAAA,IAAAY,EAAA;EAAA,IAAA5B,CAAA,QAAA6B,MAAA,CAAAC,GAAA;IAIWF,EAAA,IAAC,SAAS,CAAC;IAAA5B,CAAA,MAAA4B,EAAA;EAAA;IAAAA,EAAA,GAAA5B,CAAA;EAAA;EAAA,IAAA+B,EAAA;EAAA,IAAA/B,CAAA,QAAA2B,cAAA;IAD2BI,EAAA;MAAAb,QAAA,EACtCU,EAAW;MAAAT,OAAA,EACZA,CAAA,KAAMQ,cAAc,CAAC,CAAC,CAAAK,IAAK,CAACC,KAAsB,CAAC;MAAAP,SAAA,EACjDQ,QAAQ;MAAAC,MAAA,EACXD,QAAQ;MAAAE,oBAAA,EACM;IACxB,CAAC;IAAApC,CAAA,MAAA2B,cAAA;IAAA3B,CAAA,MAAA+B,EAAA;EAAA;IAAAA,EAAA,GAAA/B,CAAA;EAAA;EAND;IAAAsB,IAAA,EAAAe;EAAA,IAAyBhD,gBAAgB,CAAS0C,EAMjD,CAAC;EAAA,IAAAO,EAAA;EAAA,IAAAtC,CAAA,SAAA2B,cAAA,IAAA3B,CAAA,SAAAM,WAAA;IAEuCgC,EAAA,GAAAA,CAAA,KAChChC,WAAW,CAAAW,UAAW,CAAC;MAAAC,QAAA,EAClB,CAAC,iBAAiB,CAAC;MAAAC,OAAA,EACpBA,CAAA,KAAMQ,cAAc,CAAC,CAAC,CAAAK,IAAK,CAACO,MAAkB;IACzD,CAAC,CACF;IAAAvC,CAAA,OAAA2B,cAAA;IAAA3B,CAAA,OAAAM,WAAA;IAAAN,CAAA,OAAAsC,EAAA;EAAA;IAAAA,EAAA,GAAAtC,CAAA;EAAA;EALD,MAAAwC,gBAAA,GAAyCF,EAKxC;EAAA,IAAAG,EAAA;EAAA,IAAAzC,CAAA,SAAAe,SAAA;IAEgD0B,EAAA,GAAAA,CAAAC,OAAA,EAAAC,YAAA,KACxC5B,SAAS,CAAAK,IACT,CAA4B;MAAAC,GAAA,EAC1B,oBAAoB;MAAAC,IAAA,EACnB;QAAAA,IAAA,EACE;UAAAC,IAAA,EACE,oBAAoB;UAAAC,UAAA,EACd;YAAAkB,OAAA;YAAAE,GAAA,EAAgBD;UAAa;QAC3C;MACF;IACF,CAAC,CAAC,CAAAX,IACG,CAACa,MAAkB,CAAC,CAAApB,KACnB,CAACqB,MAGN,CACJ;IAAA9C,CAAA,OAAAe,SAAA;IAAAf,CAAA,OAAAyC,EAAA;EAAA;IAAAA,EAAA,GAAAzC,CAAA;EAAA;EAhBD,MAAA+C,mBAAA,GAAiDN,EAgBhD;EAAA,IAAAO,EAAA;EAAA,IAAAhD,CAAA,SAAA+C,mBAAA,IAAA/C,CAAA,SAAAM,WAAA;IAEkD0C,EAAA,GAAAA,CAAAC,SAAA,EAAAC,cAAA,EAAAC,OAAA,KAK1C7C,WAAW,CAAAW,UAAW,CAAC;MAAAC,QAAA,EAClB,CAAC,sBAAsB,EAAEwB,SAAO,EAAEC,cAAY,CAAC;MAAAxB,OAAA,EAChDA,CAAA,KAAM4B,mBAAmB,CAACL,SAAO,EAAEC,cAAY,EAAEQ,OAAO;IACnE,CAAC,CACF;IAAAnD,CAAA,OAAA+C,mBAAA;IAAA/C,CAAA,OAAAM,WAAA;IAAAN,CAAA,OAAAgD,EAAA;EAAA;IAAAA,EAAA,GAAAhD,CAAA;EAAA;EATD,MAAAoD,qBAAA,GAAmDJ,EASlD;EAGU,MAAAK,EAAA,GAAAC,OAAO,CAACjB,MAAM,CAAC;EAAA,IAAAkB,EAAA;EAAA,IAAAvD,CAAA,SAAAG,kBAAA,IAAAH,CAAA,SAAAqC,MAAA;IACdkB,EAAA,IAAC,aAAa,EAAElB,MAAM,EAAElC,kBAAkB,CAAC;IAAAH,CAAA,OAAAG,kBAAA;IAAAH,CAAA,OAAAqC,MAAA;IAAArC,CAAA,OAAAuD,EAAA;EAAA;IAAAA,EAAA,GAAAvD,CAAA;EAAA;EAAA,IAAAwD,GAAA;EAAA,IAAAxD,CAAA,SAAAwC,gBAAA,IAAAxC,CAAA,SAAAoD,qBAAA,IAAApD,CAAA,SAAAqC,MAAA;IAC5CmB,GAAA,SAAAA,CAAA;MACP,IAAI,CAACnB,MAAM;QAAA;MAAA;MAAkB,OAEtB,IAAInD,UAAU,CACnBmD,MAAM,EACN;QAAAG,gBAAA;QAAAY;MAGA,CAAC,EACD;QAAAK,YAAA,EAAgB;MAAM,CACxB,CAAC;IAAA,CACF;IAAAzD,CAAA,OAAAwC,gBAAA;IAAAxC,CAAA,OAAAoD,qBAAA;IAAApD,CAAA,OAAAqC,MAAA;IAAArC,CAAA,OAAAwD,GAAA;EAAA;IAAAA,GAAA,GAAAxD,CAAA;EAAA;EAAA,IAAA0D,GAAA;EAAA,IAAA1D,CAAA,SAAAwD,GAAA,IAAAxD,CAAA,SAAAqD,EAAA,IAAArD,CAAA,SAAAuD,EAAA;IAdmCG,GAAA;MAAAC,OAAA,EAC3BN,EAAe;MAAAnC,QAAA,EACdqC,EAA2C;MAAApC,OAAA,EAC5CqC,GAWR;MAAApB,oBAAA,EACqB,KAAK;MAAAV,SAAA,EAChBQ,QAAQ;MAAAC,MAAA,EACXD;IACV,CAAC;IAAAlC,CAAA,OAAAwD,GAAA;IAAAxD,CAAA,OAAAqD,EAAA;IAAArD,CAAA,OAAAuD,EAAA;IAAAvD,CAAA,OAAA0D,GAAA;EAAA;IAAAA,GAAA,GAAA1D,CAAA;EAAA;EAlBD;IAAAsB,IAAA,EAAAsC;EAAA,IAA6BzE,QAAQ,CAACuE,GAkBrC,CAAC;EAAA,OAEKE,UAAU;AAAA,CAClB;AAED,MAAMC,yBAAyB,GAAIvD,WAAwB,IAAK;EAC9DA,WAAW,CACRwD,aAAa,CAAC,CAAC,CACfC,OAAO,CAAC;IAAE7C,QAAQ,EAAE,CAAC,aAAa;EAAE,CAAC,CAAC,CACtC8C,OAAO,CAACC,KAAK,IAAI;IAChB,MAAML,UAAU,GAAGK,KAAK,CAACC,KAAK,CAAC5C,IAA8B;IAC7D,IAAI,CAACsC,UAAU,IAAIA,UAAU,CAACO,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;IAE1D,IAAI;MACFR,UAAU,CAACS,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,MAAM,CAAC;EACX,CAAC,CAAC;AACN,CAAC;AAED,MAAMC,uBAAuB,GAAG,IAAIC,GAAG,CAAsD,CAAC;AAE9F,MAAMC,yBAAyB,GAAIlE,WAAwB,IAAK;EAC9D,MAAMmE,QAAQ,GAAGH,uBAAuB,CAACI,GAAG,CAACpE,WAAW,CAAC;EACzD,IAAImE,QAAQ,EAAE;IACZA,QAAQ,CAACE,MAAM,IAAI,CAAC;IACpB;EACF;EAEA,IAAIC,aAA6B,GAAGnF,QAAQ,CAACoF,YAAY;EACzD,MAAMC,YAAY,GAAGrF,QAAQ,CAACsF,gBAAgB,CAAC,QAAQ,EAAEC,SAAS,IAAI;IACpE,IAAIA,SAAS,KAAK,QAAQ,IAAIJ,aAAa,KAAK,QAAQ,EAAE;MACxDf,yBAAyB,CAACvD,WAAW,CAAC;IACxC;IACAsE,aAAa,GAAGI,SAAS;EAC3B,CAAC,CAAC;EAEFV,uBAAuB,CAACW,GAAG,CAAC3E,WAAW,EAAE;IAAEqE,MAAM,EAAE,CAAC;IAAEO,MAAM,EAAEA,CAAA,KAAMJ,YAAY,CAACI,MAAM,CAAC;EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,MAAMC,6BAA6B,GAAI7E,WAAwB,IAAK;EAClE,MAAMmE,QAAQ,GAAGH,uBAAuB,CAACI,GAAG,CAACpE,WAAW,CAAC;EACzD,IAAI,CAACmE,QAAQ,EAAE;EAEfA,QAAQ,CAACE,MAAM,IAAI,CAAC;EACpB,IAAIF,QAAQ,CAACE,MAAM,GAAG,CAAC,EAAE;EAEzBF,QAAQ,CAACS,MAAM,CAAC,CAAC;EACjBZ,uBAAuB,CAACc,MAAM,CAAC9E,WAAW,CAAC;AAC7C,CAAC;AAED,OAAO,MAAM+E,qBAAqB,GAAGA,CAAA;EAAA,MAAArF,CAAA,GAAAC,EAAA;EACnC,MAAAK,WAAA,GAAoBlB,cAAc,CAAC,CAAC;EAAA,IAAAmB,EAAA;EAAA,IAAAE,EAAA;EAAA,IAAAT,CAAA,QAAAM,WAAA;IAE1BC,EAAA,GAAAA,CAAA;MACRiE,yBAAyB,CAAClE,WAAW,CAAC;MAAA,OAE/B,MAAM6E,6BAA6B,CAAC7E,WAAW,CAAC;IAAA,CACxD;IAAEG,EAAA,IAACH,WAAW,CAAC;IAAAN,CAAA,MAAAM,WAAA;IAAAN,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAS,EAAA;EAAA;IAAAF,EAAA,GAAAP,CAAA;IAAAS,EAAA,GAAAT,CAAA;EAAA;EAJhBT,SAAS,CAACgB,EAIT,EAAEE,EAAa,CAAC;AAAA,CAClB;AAED,OAAO,SAAA6E,eAAAC,WAAA,EAAAhF,EAAA;EAAA,MAAAP,CAAA,GAAAC,EAAA;EAEL,MAAA0D,OAAA,GAAApD,EAAuB,KAAvBiF,SAAuB,GAAvB,IAAuB,GAAvBjF,EAAuB;EAEvB,MAAAkF,IAAA,GAAa1F,aAAa,CAAC,CAAC;EAC5B,MAAAO,WAAA,GAAoBlB,cAAc,CAAC,CAAC;EACpC,MAAAsG,KAAA,GAAcpC,OAAO,CAACmC,IAAe,CAAC,IAAxB9B,OAAwB;EAAA,IAAAlD,EAAA;EAAA,IAAAT,CAAA,QAAAuF,WAAA,IAAAvF,CAAA,QAAAyF,IAAA;IAEFhF,EAAA,SAAAA,CAAA;MAClC,IAAI,CAACgF,IAAI;QAAA,OAAS,IAAI;MAAA;MAGtB,MAAAE,iBAAA,GAA0BF,IAAI,CAAAtB,aAAc,CAAAyB,IAAK,CAACC,CAAA,IAAKA,CAAC,CAAAnD,OAAQ,KAAK6C,WAAW,CAAC;MACjF,IAAII,iBAAiB;QAAA,OAASA,iBAAiB;MAAA;MAAA,OAExCF,IAAI,CAAAK,SAAU,CAACP,WAAW,CAAC;IAAA,CACnC;IAAAvF,CAAA,MAAAuF,WAAA;IAAAvF,CAAA,MAAAyF,IAAA;IAAAzF,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EARD,MAAA+F,eAAA,GAAwBtF,EAQD;EAAA,IAAAO,EAAA;EAAA,IAAAhB,CAAA,QAAAuF,WAAA;IAGXvE,EAAA,IAAC,mBAAmB,EAAEuE,WAAW,CAAC;IAAAvF,CAAA,MAAAuF,WAAA;IAAAvF,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAA4B,EAAA;EAAA,IAAA5B,CAAA,QAAA+F,eAAA,IAAA/F,CAAA,QAAA0F,KAAA,IAAA1F,CAAA,QAAAgB,EAAA;IADmBY,EAAA;MAAAV,QAAA,EACrDF,EAAkC;MAAAG,OAAA,EACnC4E,eAAe;MAAA3D,oBAAA,EACF,KAAK;MAAAuB,OAAA,EAClB+B;IACX,CAAC;IAAA1F,CAAA,MAAA+F,eAAA;IAAA/F,CAAA,MAAA0F,KAAA;IAAA1F,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,MAAA4B,EAAA;EAAA;IAAAA,EAAA,GAAA5B,CAAA;EAAA;EALD;IAAAsB,IAAA,EAAAwD;EAAA,IAA+B3F,QAAQ,CAA0ByC,EAKhE,CAAC;EAAA,IAAAG,EAAA;EAAA,IAAA/B,CAAA,QAAAuF,WAAA,IAAAvF,CAAA,SAAAyF,IAAA,IAAAzF,CAAA,SAAAM,WAAA;IAEoCyB,EAAA,GAAAA,CAAA;MACpCzB,WAAW,CAAA0F,aAAc,CAAC;QAAA9E,QAAA,EACd,CAAC,mBAAmB,EAAEqE,WAAW,CAAC;QAAAU,KAAA,EACrC;MACT,CAAC,CAAC;MAEFR,IAAI,EAAAS,WAA0B,CAAZX,WAAW,CAAC;IAAA,CAC/B;IAAAvF,CAAA,MAAAuF,WAAA;IAAAvF,CAAA,OAAAyF,IAAA;IAAAzF,CAAA,OAAAM,WAAA;IAAAN,CAAA,OAAA+B,EAAA;EAAA;IAAAA,EAAA,GAAA/B,CAAA;EAAA;EAPD,MAAAmG,iBAAA,GAA0BpE,EAOU;EAAA,IAAAO,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAzC,CAAA,SAAAmG,iBAAA;IAE1B7D,EAAA,GAAAA,CAAA,KACD6D,iBACR;IAAE1D,EAAA,IAAC0D,iBAAiB,CAAC;IAAAnG,CAAA,OAAAmG,iBAAA;IAAAnG,CAAA,OAAAsC,EAAA;IAAAtC,CAAA,OAAAyC,EAAA;EAAA;IAAAH,EAAA,GAAAtC,CAAA;IAAAyC,EAAA,GAAAzC,CAAA;EAAA;EAFtBT,SAAS,CAAC+C,EAET,EAAEG,EAAmB,CAAC;EAAA,OAEhBqC,YAAY;AAAA;AAKrB,OAAO,SAAAsB,aAAA1D,OAAA,EAAA2D,SAAA,EAAAC,QAAA;EAAA,MAAAtG,CAAA,GAAAC,EAAA;EAAA,IAAAM,EAAA;EAAA,IAAAE,EAAA;EAAA,IAAAT,CAAA,QAAAsG,QAAA,IAAAtG,CAAA,QAAA0C,OAAA,IAAA1C,CAAA,QAAAqG,SAAA;IAKK9F,EAAA,GAAAA,CAAA;MACR,IAAI,CAACmC,OAAO;QAAA,OAAS6D,MAAQ;MAAA;MAAA,OAEtB7D,OAAO,CAAA8D,IAAK,CAACH,SAAS,EAAEI,CAAA,IAAKH,QAAQ,CAACG,CAAM,CAAC,CAAC;IAAA,CACtD;IAAEhG,EAAA,IAACiC,OAAO,EAAE2D,SAAS,EAAEC,QAAQ,CAAC;IAAAtG,CAAA,MAAAsG,QAAA;IAAAtG,CAAA,MAAA0C,OAAA;IAAA1C,CAAA,MAAAqG,SAAA;IAAArG,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAS,EAAA;EAAA;IAAAF,EAAA,GAAAP,CAAA;IAAAS,EAAA,GAAAT,CAAA;EAAA;EAJjCT,SAAS,CAACgB,EAIT,EAAEE,EAA8B,CAAC;AAAA;AAT7B,SAAA8F,OAAA;AAzMsB,SAAAtE,MAAAyE,GAAA;EAAA,OAsCmBA,GAAG,CAAApF,IAAK,CAAAe,MAAO;AAAA;AAtClC,SAAAE,OAAAoE,KAAA;EAAA,OA+CqBD,KAAG,CAAApF,IAAK,CAAAsF,EAAG;AAAA;AA/ChC,SAAA/D,OAAAgE,KAAA;EAAA,OA8DVH,KAAG,CAAApF,IAAK,CAAAsF,EAAG;AAAA;AA9DD,SAAA9D,OAAAgE,KAAA;EAgErBC,OAAO,CAAAC,KAAM,CAAC,qCAAqC,EAAEN,KAAG,CAAC;EAAA,OAClD,EAAE;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"use_jolt.js","names":["JoltClient","useQuery","useQueryClient","useSuspenseQuery","useCallback","useEffect","useMemo","AppState","useChatContext","Client","Uri","throwResponseError","FIVE_SECONDS","useJoltClient","$","_c","session","sessionAccessToken","token","access_token","queryClient","t0","uri","t1","root","api","defaultHeaders","headers","version","apiClient","t2","fetchQuery","queryKey","queryFn","post","url","data","type","attributes","catch","staleTime","fetchJoltToken","t3","Symbol","for","t4","then","_temp","Infinity","gcTime","refetchOnWindowFocus","wssUrl","t5","_temp2","fetchAuthTokenFn","t6","channel","connectionId","cid","_temp3","_temp4","fetchSubscribeToken","t7","channel_0","connectionId_0","options","fetchSubscribeTokenFn","t8","Boolean","t9","t10","logToConsole","t11","enabled","joltClient","pingSubscribedJoltClients","getQueryCache","findAll","forEach","query","state","subscriptions","length","ping","foregroundPingListeners","Map","subscribeToForegroundPing","existing","get","mounts","previousState","currentState","subscription","addEventListener","nextState","set","remove","unsubscribeFromForegroundPing","delete","useJoltForegroundPing","channelConsumers","WeakMap","retainChannel","jolt","channelName","counts","releaseChannel","remaining","useJoltChannel","undefined","ready","alreadySubscribed","find","c","subscribe","handleSubscribe","removeQueries","exact","unsubscribe","handleUnsubscribe","useJoltEvent","eventName","callback","_temp5","bind","e","res","res_0","id","res_1","res_2","console","error"],"sources":["../../src/hooks/use_jolt.ts"],"sourcesContent":["import JoltClient from '@planningcenter/jolt-client'\nimport {\n CustomMessage,\n FetchAuthToken,\n} from '@planningcenter/jolt-client/dist/types/JoltConnection'\nimport {\n FetchSubscribeToken,\n JoltSubscription,\n} from '@planningcenter/jolt-client/dist/types/JoltSubscription'\nimport { QueryClient, useQuery, useQueryClient, useSuspenseQuery } from '@tanstack/react-query'\nimport { useCallback, useEffect, useMemo } from 'react'\nimport { AppState, AppStateStatus } from 'react-native'\nimport { useChatContext } from '../contexts/chat_context'\nimport { ApiResource } from '../types'\nimport type { JoltSubscriptionPattern } from '../types/jolt_events'\nimport { Client, Uri } from '../utils'\nimport { throwResponseError } from '../utils/response_error'\nimport { FIVE_SECONDS } from '../utils/time'\n\ninterface JoltResponse {\n type: 'JoltToken'\n id: string\n wssUrl: string\n}\n\nexport const useJoltClient = (): JoltClient | undefined => {\n const { session } = useChatContext()\n const sessionAccessToken = session.token?.access_token\n const queryClient = useQueryClient()\n const uri = useMemo(() => new Uri({ session }), [session])\n const apiClient = useMemo(\n () =>\n new Client({\n root: uri.api(`/chat/v2`),\n defaultHeaders: uri.headers,\n version: '2018-11-01',\n }),\n [uri]\n )\n\n const fetchJoltToken = async () => {\n return queryClient.fetchQuery({\n queryKey: ['jolt-token'],\n queryFn: () => {\n return apiClient\n .post<ApiResource<JoltResponse>>({\n url: '/me/jolt_authorize',\n data: {\n data: {\n type: 'JoltToken',\n attributes: {},\n },\n },\n })\n .catch(throwResponseError)\n },\n staleTime: FIVE_SECONDS,\n })\n }\n\n /** The wssUrl is static and doesn't change so we can cache it to infinity and beyond */\n const { data: wssUrl } = useSuspenseQuery<string>({\n queryKey: ['wss-url'],\n queryFn: () => fetchJoltToken().then(res => res.data.wssUrl),\n staleTime: Infinity,\n gcTime: Infinity,\n refetchOnWindowFocus: false,\n })\n\n const fetchAuthTokenFn: FetchAuthToken = () => {\n return queryClient.fetchQuery({\n queryKey: ['jolt-auth-token'],\n queryFn: () => fetchJoltToken().then(res => res.data.id),\n })\n }\n\n const fetchSubscribeToken: FetchSubscribeToken = (channel: string, connectionId: string) => {\n return apiClient\n .post<ApiResource<JoltResponse>>({\n url: '/me/jolt_subscribe',\n data: {\n data: {\n type: 'JoltSubscribeToken',\n attributes: { channel, cid: connectionId },\n },\n },\n })\n .then(res => res.data.id)\n .catch((res: unknown) => {\n console.error('failed to subscribe to Jolt channel', res)\n return ''\n })\n }\n\n const fetchSubscribeTokenFn: FetchSubscribeToken = (\n channel: string,\n connectionId: string,\n options\n ) => {\n return queryClient.fetchQuery({\n queryKey: ['jolt-subscribe-token', channel, connectionId],\n queryFn: () => fetchSubscribeToken(channel, connectionId, options),\n })\n }\n\n const { data: joltClient } = useQuery({\n enabled: Boolean(wssUrl),\n queryKey: ['jolt-client', wssUrl, sessionAccessToken],\n queryFn: async () => {\n if (!wssUrl) return undefined\n\n return new JoltClient(\n wssUrl,\n {\n fetchAuthTokenFn,\n fetchSubscribeTokenFn,\n },\n { logToConsole: false }\n )\n },\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n })\n\n return joltClient\n}\n\nconst pingSubscribedJoltClients = (queryClient: QueryClient) => {\n queryClient\n .getQueryCache()\n .findAll({ queryKey: ['jolt-client'] })\n .forEach(query => {\n const joltClient = query.state.data as JoltClient | undefined\n if (!joltClient || joltClient.subscriptions.length === 0) return\n\n try {\n joltClient.ping()\n } catch {}\n })\n}\n\nconst foregroundPingListeners = new Map<QueryClient, { mounts: number; remove: () => void }>()\n\nconst subscribeToForegroundPing = (queryClient: QueryClient) => {\n const existing = foregroundPingListeners.get(queryClient)\n if (existing) {\n existing.mounts += 1\n return\n }\n\n let previousState: AppStateStatus = AppState.currentState\n const subscription = AppState.addEventListener('change', nextState => {\n if (nextState === 'active' && previousState !== 'active') {\n pingSubscribedJoltClients(queryClient)\n }\n previousState = nextState\n })\n\n foregroundPingListeners.set(queryClient, { mounts: 1, remove: () => subscription.remove() })\n}\n\nconst unsubscribeFromForegroundPing = (queryClient: QueryClient) => {\n const existing = foregroundPingListeners.get(queryClient)\n if (!existing) return\n\n existing.mounts -= 1\n if (existing.mounts > 0) return\n\n existing.remove()\n foregroundPingListeners.delete(queryClient)\n}\n\nexport const useJoltForegroundPing = () => {\n const queryClient = useQueryClient()\n\n useEffect(() => {\n subscribeToForegroundPing(queryClient)\n\n return () => unsubscribeFromForegroundPing(queryClient)\n }, [queryClient])\n}\n\nconst channelConsumers = new WeakMap<JoltClient, Map<string, number>>()\n\nconst retainChannel = (jolt: JoltClient, channelName: string) => {\n const counts = channelConsumers.get(jolt) ?? new Map<string, number>()\n channelConsumers.set(jolt, counts)\n counts.set(channelName, (counts.get(channelName) ?? 0) + 1)\n}\n\nconst releaseChannel = (jolt: JoltClient, channelName: string) => {\n const counts = channelConsumers.get(jolt)\n const remaining = (counts?.get(channelName) ?? 1) - 1\n if (remaining > 0) {\n counts?.set(channelName, remaining)\n } else {\n counts?.delete(channelName)\n }\n return remaining\n}\n\nexport function useJoltChannel(\n channelName: string,\n enabled: boolean = true\n): JoltSubscription | undefined | null {\n const jolt = useJoltClient()\n const queryClient = useQueryClient()\n const ready = Boolean(jolt) && enabled\n\n const handleSubscribe = useCallback(async () => {\n if (!jolt) return null\n\n // If the subscription already exists, we don't need to subscribe again\n const alreadySubscribed = jolt.subscriptions.find(c => c.channel === channelName)\n if (alreadySubscribed) return alreadySubscribed\n\n return jolt.subscribe(channelName)\n }, [channelName, jolt])\n\n const { data: subscription } = useQuery<JoltSubscription | null>({\n queryKey: ['jolt-subscription', channelName],\n queryFn: handleSubscribe,\n refetchOnWindowFocus: false,\n enabled: ready,\n })\n\n const handleUnsubscribe = useCallback(() => {\n queryClient.removeQueries({\n queryKey: ['jolt-subscription', channelName],\n exact: true,\n })\n\n jolt?.unsubscribe(channelName)\n }, [queryClient, channelName, jolt])\n\n useEffect(() => {\n if (!jolt) return\n\n retainChannel(jolt, channelName)\n return () => {\n if (releaseChannel(jolt, channelName) === 0) handleUnsubscribe()\n }\n }, [jolt, channelName, handleUnsubscribe])\n\n return subscription\n}\n\ntype UserCallbackFn<T> = (_event: T) => void\n\nexport function useJoltEvent<T extends CustomMessage>(\n channel: JoltSubscription | undefined | null,\n eventName: JoltSubscriptionPattern,\n callback: UserCallbackFn<T>\n) {\n useEffect(() => {\n if (!channel) return () => {}\n\n return channel.bind(eventName, e => callback(e as T))\n }, [channel, eventName, callback])\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation_filter_context.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_filters/context/conversation_filter_context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAiB,iBAAiB,EAAY,MAAM,OAAO,CAAA;AAGlE,OAAO,EAAE,yBAAyB,EAAkC,MAAM,iBAAiB,CAAA;AAI3F,eAAO,MAAM,aAAa;YAChB,yBAAyB;kBACnB,MAAM;qBACH,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;8BACf,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;iBACrC,MAAM,IAAI;oBACP,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;kBAC7C,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;kBAC3C,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;+BAC9B,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"conversation_filter_context.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_filters/context/conversation_filter_context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAiB,iBAAiB,EAAY,MAAM,OAAO,CAAA;AAGlE,OAAO,EAAE,yBAAyB,EAAkC,MAAM,iBAAiB,CAAA;AAI3F,eAAO,MAAM,aAAa;YAChB,yBAAyB;kBACnB,MAAM;qBACH,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;8BACf,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;iBACrC,MAAM,IAAI;oBACP,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;kBAC7C,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;kBAC3C,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;+BAC9B,MAAM,GAAG,SAAS;EAiB7C,CAAA;AAEF,eAAO,MAAM,cAAc,GAAI,cAAc,iBAAiB,4CAqD7D,CAAA;AAED,eAAO,MAAM,gBAAgB;YAlFnB,yBAAyB;kBACnB,MAAM;qBACH,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;8BACf,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;iBACrC,MAAM,IAAI;oBACP,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;kBAC7C,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;kBAC3C,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI;+BAC9B,MAAM,GAAG,SAAS;CA4E9C,CAAA"}
|
|
@@ -11,7 +11,8 @@ export const FilterContext = createContext({
|
|
|
11
11
|
chat_group_graph_id: undefined,
|
|
12
12
|
group_source_app_name: undefined,
|
|
13
13
|
show_direct_messages: undefined,
|
|
14
|
-
show_archived: undefined
|
|
14
|
+
show_archived: undefined,
|
|
15
|
+
show_unread: undefined
|
|
15
16
|
},
|
|
16
17
|
scrollOffset: 0,
|
|
17
18
|
setScrollOffset: () => {},
|
|
@@ -57,7 +58,8 @@ export const FilterProvider = t0 => {
|
|
|
57
58
|
chat_group_graph_id: undefined,
|
|
58
59
|
group_source_app_name: undefined,
|
|
59
60
|
show_direct_messages: undefined,
|
|
60
|
-
show_archived: undefined
|
|
61
|
+
show_archived: undefined,
|
|
62
|
+
show_unread: undefined
|
|
61
63
|
}));
|
|
62
64
|
};
|
|
63
65
|
t3 = params => {
|
|
@@ -65,7 +67,8 @@ export const FilterProvider = t0 => {
|
|
|
65
67
|
chat_group_graph_id: params.chat_group_graph_id,
|
|
66
68
|
group_source_app_name: undefined,
|
|
67
69
|
show_direct_messages: undefined,
|
|
68
|
-
show_archived: undefined
|
|
70
|
+
show_archived: undefined,
|
|
71
|
+
show_unread: undefined
|
|
69
72
|
});
|
|
70
73
|
};
|
|
71
74
|
t4 = params_0 => {
|
|
@@ -73,7 +76,8 @@ export const FilterProvider = t0 => {
|
|
|
73
76
|
chat_group_graph_id: undefined,
|
|
74
77
|
group_source_app_name: params_0.group_source_app_name,
|
|
75
78
|
show_direct_messages: params_0.show_direct_messages,
|
|
76
|
-
show_archived: params_0.show_archived
|
|
79
|
+
show_archived: params_0.show_archived,
|
|
80
|
+
show_unread: undefined
|
|
77
81
|
});
|
|
78
82
|
};
|
|
79
83
|
t5 = params_1 => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation_filter_context.js","names":["StackActions","useNavigation","useRoute","React","createContext","useState","Platform","useSafeAreaInsets","jsx","_jsx","DEFAULT_LIST_PADDING_BOTTOM","FilterContext","params","chat_group_graph_id","undefined","group_source_app_name","show_direct_messages","show_archived","scrollOffset","setScrollOffset","setFormSheetHeaderHeight","resetFilter","setGroupFilter","setAppFilter","applyFilters","platformListPaddingBottom","FilterProvider","t0","$","_c","children","formSheetHeaderHeight","navigation","route","bottom","t1","select","ios","android","t2","t3","t4","t5","dispatch","popTo","setParams","params_0","params_1","t6","filterContextValue","t7","Provider","useFilterContext","useContext"],"sources":["../../../../src/screens/conversation_filters/context/conversation_filter_context.tsx"],"sourcesContent":["import { RouteProp, StackActions, useNavigation, useRoute } from '@react-navigation/native'\nimport React from 'react'\nimport { createContext, PropsWithChildren, useState } from 'react'\nimport { Platform } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { ConversationFiltersParams, ConversationFiltersScreenProps } from '../screen_props'\n\nconst DEFAULT_LIST_PADDING_BOTTOM = 64\n\nexport const FilterContext = createContext<{\n params: ConversationFiltersParams\n scrollOffset: number\n setScrollOffset: (offset: number) => void\n setFormSheetHeaderHeight: (height: number) => void\n resetFilter: () => void\n setGroupFilter: (params: ConversationFiltersParams) => void\n setAppFilter: (params: ConversationFiltersParams) => void\n applyFilters: (params: ConversationFiltersParams) => void\n platformListPaddingBottom: number | undefined\n}>({\n params: {\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n },\n scrollOffset: 0,\n setScrollOffset: () => {},\n setFormSheetHeaderHeight: () => {},\n resetFilter: () => {},\n setGroupFilter: () => {},\n setAppFilter: () => {},\n applyFilters: () => {},\n platformListPaddingBottom: DEFAULT_LIST_PADDING_BOTTOM,\n})\n\nexport const FilterProvider = ({ children }: PropsWithChildren) => {\n const [scrollOffset, setScrollOffset] = useState(0)\n const [formSheetHeaderHeight, setFormSheetHeaderHeight] = useState(56)\n const navigation = useNavigation()\n const route = useRoute<RouteProp<ConversationFiltersScreenProps['route']>>()\n const { bottom } = useSafeAreaInsets()\n\n const platformListPaddingBottom = Platform.select({\n ios: bottom + formSheetHeaderHeight,\n android: bottom + 12,\n })\n\n const filterContextValue = {\n params: route.params,\n scrollOffset,\n setScrollOffset,\n platformListPaddingBottom,\n setFormSheetHeaderHeight,\n resetFilter: () => {\n navigation.dispatch(\n StackActions.popTo('Conversations', {\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n })\n )\n },\n setGroupFilter: (params: Omit<ConversationFiltersParams, 'group_source_app_name'>) => {\n navigation.setParams({\n chat_group_graph_id: params.chat_group_graph_id,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n })\n },\n setAppFilter: (params: Omit<ConversationFiltersParams, 'chat_group_graph_id'>) => {\n navigation.setParams({\n chat_group_graph_id: undefined,\n group_source_app_name: params.group_source_app_name,\n show_direct_messages: params.show_direct_messages,\n show_archived: params.show_archived,\n })\n },\n applyFilters: (params: ConversationFiltersParams) => {\n navigation.dispatch(StackActions.popTo('Conversations', params))\n },\n }\n\n return <FilterContext.Provider value={filterContextValue}>{children}</FilterContext.Provider>\n}\n\nexport const useFilterContext = () => {\n return React.useContext(FilterContext)\n}\n"],"mappings":";AAAA,SAAoBA,YAAY,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,0BAA0B;AAC3F,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,EAAqBC,QAAQ,QAAQ,OAAO;AAClE,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,iBAAiB,QAAQ,gCAAgC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGlE,MAAMC,2BAA2B,GAAG,EAAE;AAEtC,OAAO,MAAMC,aAAa,GAAGP,aAAa,CAUvC;EACDQ,MAAM,EAAE;IACNC,mBAAmB,EAAEC,SAAS;IAC9BC,qBAAqB,EAAED,SAAS;IAChCE,oBAAoB,EAAEF,SAAS;IAC/BG,aAAa,EAAEH;
|
|
1
|
+
{"version":3,"file":"conversation_filter_context.js","names":["StackActions","useNavigation","useRoute","React","createContext","useState","Platform","useSafeAreaInsets","jsx","_jsx","DEFAULT_LIST_PADDING_BOTTOM","FilterContext","params","chat_group_graph_id","undefined","group_source_app_name","show_direct_messages","show_archived","show_unread","scrollOffset","setScrollOffset","setFormSheetHeaderHeight","resetFilter","setGroupFilter","setAppFilter","applyFilters","platformListPaddingBottom","FilterProvider","t0","$","_c","children","formSheetHeaderHeight","navigation","route","bottom","t1","select","ios","android","t2","t3","t4","t5","dispatch","popTo","setParams","params_0","params_1","t6","filterContextValue","t7","Provider","useFilterContext","useContext"],"sources":["../../../../src/screens/conversation_filters/context/conversation_filter_context.tsx"],"sourcesContent":["import { RouteProp, StackActions, useNavigation, useRoute } from '@react-navigation/native'\nimport React from 'react'\nimport { createContext, PropsWithChildren, useState } from 'react'\nimport { Platform } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { ConversationFiltersParams, ConversationFiltersScreenProps } from '../screen_props'\n\nconst DEFAULT_LIST_PADDING_BOTTOM = 64\n\nexport const FilterContext = createContext<{\n params: ConversationFiltersParams\n scrollOffset: number\n setScrollOffset: (offset: number) => void\n setFormSheetHeaderHeight: (height: number) => void\n resetFilter: () => void\n setGroupFilter: (params: ConversationFiltersParams) => void\n setAppFilter: (params: ConversationFiltersParams) => void\n applyFilters: (params: ConversationFiltersParams) => void\n platformListPaddingBottom: number | undefined\n}>({\n params: {\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n show_unread: undefined,\n },\n scrollOffset: 0,\n setScrollOffset: () => {},\n setFormSheetHeaderHeight: () => {},\n resetFilter: () => {},\n setGroupFilter: () => {},\n setAppFilter: () => {},\n applyFilters: () => {},\n platformListPaddingBottom: DEFAULT_LIST_PADDING_BOTTOM,\n})\n\nexport const FilterProvider = ({ children }: PropsWithChildren) => {\n const [scrollOffset, setScrollOffset] = useState(0)\n const [formSheetHeaderHeight, setFormSheetHeaderHeight] = useState(56)\n const navigation = useNavigation()\n const route = useRoute<RouteProp<ConversationFiltersScreenProps['route']>>()\n const { bottom } = useSafeAreaInsets()\n\n const platformListPaddingBottom = Platform.select({\n ios: bottom + formSheetHeaderHeight,\n android: bottom + 12,\n })\n\n const filterContextValue = {\n params: route.params,\n scrollOffset,\n setScrollOffset,\n platformListPaddingBottom,\n setFormSheetHeaderHeight,\n resetFilter: () => {\n navigation.dispatch(\n StackActions.popTo('Conversations', {\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n show_unread: undefined,\n })\n )\n },\n setGroupFilter: (params: Omit<ConversationFiltersParams, 'group_source_app_name'>) => {\n navigation.setParams({\n chat_group_graph_id: params.chat_group_graph_id,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n show_unread: undefined,\n })\n },\n setAppFilter: (params: Omit<ConversationFiltersParams, 'chat_group_graph_id'>) => {\n navigation.setParams({\n chat_group_graph_id: undefined,\n group_source_app_name: params.group_source_app_name,\n show_direct_messages: params.show_direct_messages,\n show_archived: params.show_archived,\n show_unread: undefined,\n })\n },\n applyFilters: (params: ConversationFiltersParams) => {\n navigation.dispatch(StackActions.popTo('Conversations', params))\n },\n }\n\n return <FilterContext.Provider value={filterContextValue}>{children}</FilterContext.Provider>\n}\n\nexport const useFilterContext = () => {\n return React.useContext(FilterContext)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ export type ConversationFiltersParams = {
|
|
|
5
5
|
group_source_app_name?: string;
|
|
6
6
|
show_direct_messages?: boolean;
|
|
7
7
|
show_archived?: boolean;
|
|
8
|
+
show_unread?: boolean;
|
|
8
9
|
};
|
|
9
10
|
export type ConversationFiltersScreenProps = StaticScreenProps<ConversationFiltersParams>;
|
|
10
11
|
export type ConversationFilterStackParamList = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen_props.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation_filters/screen_props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAE9D,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"screen_props.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation_filters/screen_props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAE9D,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,CAAA;AAEzF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,OAAO,EAAE,yBAAyB,CAAA;IAClC,YAAY,EAAE,yBAAyB,CAAA;IACvC,WAAW,EAAE,yBAAyB,CAAA;CACvC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen_props.js","names":[],"sources":["../../../src/screens/conversation_filters/screen_props.ts"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport { GraphId } from '../../types/resources/group_resource'\n\nexport type ConversationFiltersParams = {\n chat_group_graph_id?: GraphId\n group_source_app_name?: string\n show_direct_messages?: boolean\n show_archived?: boolean\n}\n\nexport type ConversationFiltersScreenProps = StaticScreenProps<ConversationFiltersParams>\n\nexport type ConversationFilterStackParamList = {\n Filters: ConversationFiltersParams\n GroupFilters: ConversationFiltersParams\n TeamFilters: ConversationFiltersParams\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"screen_props.js","names":[],"sources":["../../../src/screens/conversation_filters/screen_props.ts"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport { GraphId } from '../../types/resources/group_resource'\n\nexport type ConversationFiltersParams = {\n chat_group_graph_id?: GraphId\n group_source_app_name?: string\n show_direct_messages?: boolean\n show_archived?: boolean\n show_unread?: boolean\n}\n\nexport type ConversationFiltersScreenProps = StaticScreenProps<ConversationFiltersParams>\n\nexport type ConversationFilterStackParamList = {\n Filters: ConversationFiltersParams\n GroupFilters: ConversationFiltersParams\n TeamFilters: ConversationFiltersParams\n}\n"],"mappings":"","ignoreList":[]}
|
package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter_dropdown_list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filter_dropdown_list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"names":[],"mappings":"AA+CA,eAAO,MAAM,iCAAiC,+CA0N7C,CAAA"}
|