@planningcenter/chat-react-native 4.4.0-rc.1 → 4.4.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/build/components/conversation/system_message.js +3 -3
  2. package/build/components/conversation/system_message.js.map +1 -1
  3. package/build/hooks/use_product_analytics.d.ts +9 -0
  4. package/build/hooks/use_product_analytics.d.ts.map +1 -1
  5. package/build/hooks/use_product_analytics.js +4 -2
  6. package/build/hooks/use_product_analytics.js.map +1 -1
  7. package/build/hooks/use_search_enabled.d.ts +2 -0
  8. package/build/hooks/use_search_enabled.d.ts.map +1 -0
  9. package/build/hooks/use_search_enabled.js +18 -0
  10. package/build/hooks/use_search_enabled.js.map +1 -0
  11. package/build/screens/conversations/components/search_list_header_component.js +3 -3
  12. package/build/screens/conversations/components/search_list_header_component.js.map +1 -1
  13. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  14. package/build/screens/conversations/conversations_screen.js +2 -5
  15. package/build/screens/conversations/conversations_screen.js.map +1 -1
  16. package/build/screens/search/components/conversation_results.d.ts +1 -1
  17. package/build/screens/search/components/conversation_results.d.ts.map +1 -1
  18. package/build/screens/search/components/conversation_results.js +2 -2
  19. package/build/screens/search/components/conversation_results.js.map +1 -1
  20. package/build/screens/search/components/search_results_list.d.ts +7 -2
  21. package/build/screens/search/components/search_results_list.d.ts.map +1 -1
  22. package/build/screens/search/components/search_results_list.js +135 -105
  23. package/build/screens/search/components/search_results_list.js.map +1 -1
  24. package/build/screens/search/search_screen.d.ts.map +1 -1
  25. package/build/screens/search/search_screen.js +69 -31
  26. package/build/screens/search/search_screen.js.map +1 -1
  27. package/package.json +2 -2
  28. package/src/components/conversation/system_message.tsx +3 -3
  29. package/src/hooks/use_product_analytics.ts +3 -1
  30. package/src/hooks/use_search_enabled.ts +9 -0
  31. package/src/screens/conversations/__tests__/conversations_screen.test.tsx +71 -0
  32. package/src/screens/conversations/components/search_list_header_component.tsx +1 -1
  33. package/src/screens/conversations/conversations_screen.tsx +2 -3
  34. package/src/screens/search/__tests__/search_screen.test.tsx +56 -2
  35. package/src/screens/search/components/__tests__/conversation_results.test.tsx +2 -2
  36. package/src/screens/search/components/__tests__/search_results_list.test.tsx +47 -2
  37. package/src/screens/search/components/conversation_results.tsx +7 -3
  38. package/src/screens/search/components/search_results_list.tsx +25 -4
  39. package/src/screens/search/search_screen.tsx +24 -4
@@ -40,7 +40,7 @@ export function SystemMessage(t0) {
40
40
  t1 = $[3];
41
41
  }
42
42
  const text = t1;
43
- const hasPeople = personIdsForSystemEvent.length > 0;
43
+ const isTruncated = overflowCount > 0;
44
44
  const hasReactions = reactionCounts.length > 0;
45
45
  const {
46
46
  animatedBackgroundColor,
@@ -99,7 +99,7 @@ export function SystemMessage(t0) {
99
99
  t4 = $[15];
100
100
  }
101
101
  const handleReactionLongPress = t4;
102
- const t5 = hasPeople ? handlePress : undefined;
102
+ const t5 = isTruncated ? handlePress : undefined;
103
103
  let t6;
104
104
  if ($[16] !== colors.androidRippleNeutral) {
105
105
  t6 = {
@@ -112,7 +112,7 @@ export function SystemMessage(t0) {
112
112
  } else {
113
113
  t6 = $[17];
114
114
  }
115
- const t7 = hasPeople ? "Tap to see people. Long press for message actions." : "Long press for message actions.";
115
+ const t7 = isTruncated ? "Tap to see people. Long press for message actions." : "Long press for message actions.";
116
116
  let t8;
117
117
  if ($[18] !== animatedBackgroundColor || $[19] !== styles.container) {
118
118
  t8 = [styles.container, animatedBackgroundColor];
@@ -1 +1 @@
1
- {"version":3,"file":"system_message.js","names":["useNavigation","React","Pressable","StyleSheet","View","Animated","useAnimatedMessageBackgroundColor","useTheme","Haptic","Text","MessageReaction","jsx","_jsx","jsxs","_jsxs","SystemMessage","t0","$","_c","message","conversationId","reactionCounts","systemTextParts","personIdsForSystemEvent","names","overflowCount","action","styles","useStyles","navigation","colors","t1","systemMessageText","text","hasPeople","length","hasReactions","animatedBackgroundColor","handleMessagePressIn","handleMessagePressOut","t2","navigate","conversation_id","person_ids","handlePress","t3","id","impactLight","message_id","isSystemMessage","handleLongPress","t4","reaction","reaction_value","value","handleReactionLongPress","t5","undefined","t6","androidRippleNeutral","color","borderless","foreground","t7","t8","container","t9","variant","style","children","t10","reactions","map","reaction_0","t11","t12","onPress","android_ripple","accessibilityRole","accessibilityHint","overflowLabel","join","textColorDefaultSecondary","create","paddingVertical","paddingHorizontal","alignItems","textAlign","flexDirection","flexWrap","justifyContent","gap","marginTop"],"sources":["../../../src/components/conversation/system_message.tsx"],"sourcesContent":["import { useNavigation } from '@react-navigation/native'\nimport React from 'react'\nimport { Pressable, StyleSheet, View } from 'react-native'\nimport Animated from 'react-native-reanimated'\nimport { useAnimatedMessageBackgroundColor, useTheme } from '../../hooks'\nimport { ReactionCountResource } from '../../types/resources/reaction'\nimport { Haptic } from '../../utils/native_adapters'\nimport { SystemMessageResource } from '../../utils/system_messages'\nimport { Text } from '../display'\nimport { MessageReaction } from './message_reaction'\n\ninterface SystemMessageProps {\n message: SystemMessageResource\n conversationId: number\n}\n\nexport function SystemMessage({ message, conversationId }: SystemMessageProps) {\n const { reactionCounts, systemTextParts, personIdsForSystemEvent } = message\n const { names, overflowCount, action } = systemTextParts\n const styles = useStyles()\n const navigation = useNavigation()\n const { colors } = useTheme()\n const text = systemMessageText(names, overflowCount, action)\n const hasPeople = personIdsForSystemEvent.length > 0\n const hasReactions = reactionCounts.length > 0\n const { animatedBackgroundColor, handleMessagePressIn, handleMessagePressOut } =\n useAnimatedMessageBackgroundColor()\n\n const handlePress = () => {\n navigation.navigate('SystemMessagePeople', {\n conversation_id: conversationId,\n person_ids: personIdsForSystemEvent,\n })\n }\n\n const handleLongPress = () => {\n Haptic.impactLight()\n navigation.navigate('MessageActions', {\n message_id: message.id,\n conversation_id: conversationId,\n isSystemMessage: true,\n })\n }\n\n const handleReactionLongPress = (reaction: ReactionCountResource) => {\n Haptic.impactLight()\n navigation.navigate('Reactions', {\n message_id: message.id,\n conversation_id: conversationId,\n reaction_value: reaction.value,\n })\n }\n\n return (\n <Pressable\n onPress={hasPeople ? handlePress : undefined}\n onLongPress={handleLongPress}\n onPressIn={handleMessagePressIn}\n onPressOut={handleMessagePressOut}\n android_ripple={{ color: colors.androidRippleNeutral, borderless: false, foreground: true }}\n accessibilityRole=\"button\"\n accessibilityHint={\n hasPeople\n ? 'Tap to see people. Long press for message actions.'\n : 'Long press for message actions.'\n }\n >\n <Animated.View style={[styles.container, animatedBackgroundColor]}>\n <Text variant=\"tertiary\" style={styles.text}>\n {text}\n </Text>\n {hasReactions && (\n <View style={styles.reactions}>\n {message.reactionCounts.map(reaction => (\n <MessageReaction\n key={reaction.value}\n reaction={reaction}\n onLongPress={handleReactionLongPress}\n message={message}\n conversationId={conversationId}\n />\n ))}\n </View>\n )}\n </Animated.View>\n </Pressable>\n )\n}\n\nfunction systemMessageText(names: string[], overflowCount: number, action: string): string {\n if (overflowCount > 0) {\n const overflowLabel = `${overflowCount} ${overflowCount === 1 ? 'other' : 'others'}`\n return `${names.join(', ')}, and ${overflowLabel} ${action}`\n }\n\n switch (names.length) {\n case 0:\n return `Someone ${action}`\n case 1:\n return `${names[0]} ${action}`\n case 2:\n return `${names[0]} and ${names[1]} ${action}`\n // Backend guarantees names.length <= 3 when overflowCount is 0;\n // overflow branch handles 4+ people.\n default:\n return `${names[0]}, ${names[1]}, and ${names[2]} ${action}`\n }\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n container: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n text: {\n color: colors.textColorDefaultSecondary,\n textAlign: 'center',\n },\n reactions: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n gap: 4,\n marginTop: 8,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"system_message.js","names":["useNavigation","React","Pressable","StyleSheet","View","Animated","useAnimatedMessageBackgroundColor","useTheme","Haptic","Text","MessageReaction","jsx","_jsx","jsxs","_jsxs","SystemMessage","t0","$","_c","message","conversationId","reactionCounts","systemTextParts","personIdsForSystemEvent","names","overflowCount","action","styles","useStyles","navigation","colors","t1","systemMessageText","text","isTruncated","hasReactions","length","animatedBackgroundColor","handleMessagePressIn","handleMessagePressOut","t2","navigate","conversation_id","person_ids","handlePress","t3","id","impactLight","message_id","isSystemMessage","handleLongPress","t4","reaction","reaction_value","value","handleReactionLongPress","t5","undefined","t6","androidRippleNeutral","color","borderless","foreground","t7","t8","container","t9","variant","style","children","t10","reactions","map","reaction_0","t11","t12","onPress","android_ripple","accessibilityRole","accessibilityHint","overflowLabel","join","textColorDefaultSecondary","create","paddingVertical","paddingHorizontal","alignItems","textAlign","flexDirection","flexWrap","justifyContent","gap","marginTop"],"sources":["../../../src/components/conversation/system_message.tsx"],"sourcesContent":["import { useNavigation } from '@react-navigation/native'\nimport React from 'react'\nimport { Pressable, StyleSheet, View } from 'react-native'\nimport Animated from 'react-native-reanimated'\nimport { useAnimatedMessageBackgroundColor, useTheme } from '../../hooks'\nimport { ReactionCountResource } from '../../types/resources/reaction'\nimport { Haptic } from '../../utils/native_adapters'\nimport { SystemMessageResource } from '../../utils/system_messages'\nimport { Text } from '../display'\nimport { MessageReaction } from './message_reaction'\n\ninterface SystemMessageProps {\n message: SystemMessageResource\n conversationId: number\n}\n\nexport function SystemMessage({ message, conversationId }: SystemMessageProps) {\n const { reactionCounts, systemTextParts, personIdsForSystemEvent } = message\n const { names, overflowCount, action } = systemTextParts\n const styles = useStyles()\n const navigation = useNavigation()\n const { colors } = useTheme()\n const text = systemMessageText(names, overflowCount, action)\n const isTruncated = overflowCount > 0\n const hasReactions = reactionCounts.length > 0\n const { animatedBackgroundColor, handleMessagePressIn, handleMessagePressOut } =\n useAnimatedMessageBackgroundColor()\n\n const handlePress = () => {\n navigation.navigate('SystemMessagePeople', {\n conversation_id: conversationId,\n person_ids: personIdsForSystemEvent,\n })\n }\n\n const handleLongPress = () => {\n Haptic.impactLight()\n navigation.navigate('MessageActions', {\n message_id: message.id,\n conversation_id: conversationId,\n isSystemMessage: true,\n })\n }\n\n const handleReactionLongPress = (reaction: ReactionCountResource) => {\n Haptic.impactLight()\n navigation.navigate('Reactions', {\n message_id: message.id,\n conversation_id: conversationId,\n reaction_value: reaction.value,\n })\n }\n\n return (\n <Pressable\n onPress={isTruncated ? handlePress : undefined}\n onLongPress={handleLongPress}\n onPressIn={handleMessagePressIn}\n onPressOut={handleMessagePressOut}\n android_ripple={{ color: colors.androidRippleNeutral, borderless: false, foreground: true }}\n accessibilityRole=\"button\"\n accessibilityHint={\n isTruncated\n ? 'Tap to see people. Long press for message actions.'\n : 'Long press for message actions.'\n }\n >\n <Animated.View style={[styles.container, animatedBackgroundColor]}>\n <Text variant=\"tertiary\" style={styles.text}>\n {text}\n </Text>\n {hasReactions && (\n <View style={styles.reactions}>\n {message.reactionCounts.map(reaction => (\n <MessageReaction\n key={reaction.value}\n reaction={reaction}\n onLongPress={handleReactionLongPress}\n message={message}\n conversationId={conversationId}\n />\n ))}\n </View>\n )}\n </Animated.View>\n </Pressable>\n )\n}\n\nfunction systemMessageText(names: string[], overflowCount: number, action: string): string {\n if (overflowCount > 0) {\n const overflowLabel = `${overflowCount} ${overflowCount === 1 ? 'other' : 'others'}`\n return `${names.join(', ')}, and ${overflowLabel} ${action}`\n }\n\n switch (names.length) {\n case 0:\n return `Someone ${action}`\n case 1:\n return `${names[0]} ${action}`\n case 2:\n return `${names[0]} and ${names[1]} ${action}`\n // Backend guarantees names.length <= 3 when overflowCount is 0;\n // overflow branch handles 4+ people.\n default:\n return `${names[0]}, ${names[1]}, and ${names[2]} ${action}`\n }\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n return StyleSheet.create({\n container: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n text: {\n color: colors.textColorDefaultSecondary,\n textAlign: 'center',\n },\n reactions: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n gap: 4,\n marginTop: 8,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,8 +5,17 @@ export interface EventMetadata {
5
5
  export declare const analyticsEvents: {
6
6
  readonly conversation_index_opened: "chat.mobile.conversations.index.opened";
7
7
  readonly conversation_show_opened: "chat.mobile.conversations.show.opened";
8
+ readonly search_performed: "chat.mobile.search.performed";
9
+ readonly search_result_opened: "chat.mobile.search.result.opened";
8
10
  };
9
11
  type AnalyticsEventName = (typeof analyticsEvents)[keyof typeof analyticsEvents];
12
+ export declare const useProductAnalytics: () => {
13
+ publishEvent: (name: AnalyticsEventName, meta?: EventMetadata) => Promise<Response[]>;
14
+ publishEvents: (events: Array<{
15
+ name: AnalyticsEventName;
16
+ meta?: EventMetadata;
17
+ }>) => Promise<Response[]>;
18
+ };
10
19
  export declare function usePublishProductAnalyticsEvent(eventName: AnalyticsEventName, meta?: EventMetadata): void;
11
20
  export declare function normalizeAnalyticsMetadata(resource: {
12
21
  analyticsMetadata?: AnalyticsMetadataResource;
@@ -1 +1 @@
1
- {"version":3,"file":"use_product_analytics.d.ts","sourceRoot":"","sources":["../../src/hooks/use_product_analytics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAIjF,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAC5D;AAED,eAAO,MAAM,eAAe;;;CAGgC,CAAA;AAE5D,KAAK,kBAAkB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AAqFhF,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,kBAAkB,EAC7B,IAAI,GAAE,aAAkB,QAYzB;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE;IACnD,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;CAC9C,GACwE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC/F"}
1
+ {"version":3,"file":"use_product_analytics.d.ts","sourceRoot":"","sources":["../../src/hooks/use_product_analytics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAIjF,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;CAC5D;AAED,eAAO,MAAM,eAAe;;;;;CAKgC,CAAA;AAE5D,KAAK,kBAAkB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AAuChF,eAAO,MAAM,mBAAmB;yBASrB,kBAAkB,SAAQ,aAAa,KAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;4BAgBhE,KAAK,CAAC;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,IAAI,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC,KAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAmB3F,CAAA;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,kBAAkB,EAC7B,IAAI,GAAE,aAAkB,QAYzB;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE;IACnD,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;CAC9C,GACwE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC/F"}
@@ -5,7 +5,9 @@ import { keysToSnakeCase } from '../utils/client/utils';
5
5
  import { SHA256, enc } from '../utils/sha_256';
6
6
  export const analyticsEvents = {
7
7
  conversation_index_opened: 'chat.mobile.conversations.index.opened',
8
- conversation_show_opened: 'chat.mobile.conversations.show.opened'
8
+ conversation_show_opened: 'chat.mobile.conversations.show.opened',
9
+ search_performed: 'chat.mobile.search.performed',
10
+ search_result_opened: 'chat.mobile.search.result.opened'
9
11
  };
10
12
  function contentSha256(payload) {
11
13
  return SHA256(payload).toString(enc.Hex);
@@ -36,7 +38,7 @@ function sendEvents(events, config) {
36
38
  return [];
37
39
  });
38
40
  }
39
- const useProductAnalytics = () => {
41
+ export const useProductAnalytics = () => {
40
42
  const $ = _c(13);
41
43
  const {
42
44
  productAnalyticsConfig
@@ -1 +1 @@
1
- {"version":3,"file":"use_product_analytics.js","names":["useCallback","useEffect","useMemo","useRef","useChatContext","keysToSnakeCase","SHA256","enc","analyticsEvents","conversation_index_opened","conversation_show_opened","contentSha256","payload","toString","Hex","sendEvents","events","config","chunks","i","length","push","slice","Promise","all","map","chunk","JSON","stringify","fetch","endpoint","method","headers","token","body","catch","error","__DEV__","console","warn","useProductAnalytics","$","_c","productAnalyticsConfig","metadata","t0","t1","snakeCasedBaseMeta","t2","name","t3","meta","undefined","resolve","mergedMeta","publishEvent","eventsWithMeta","event","publishEvents","t4","usePublishProductAnalyticsEvent","eventName","hasPublishedEventRef","current","normalizeAnalyticsMetadata","resource","analyticsMetadata"],"sources":["../../src/hooks/use_product_analytics.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useChatContext } from '../contexts/chat_context'\nimport { ProductAnalyticsConfig } from '../types/product_analytics'\nimport { AnalyticsMetadataResource } from '../types/resources/analytics_metadata'\nimport { keysToSnakeCase } from '../utils/client/utils'\nimport { SHA256, enc } from '../utils/sha_256'\n\nexport interface EventMetadata {\n [key: string]: string | number | boolean | null | undefined\n}\n\nexport const analyticsEvents = {\n conversation_index_opened: 'chat.mobile.conversations.index.opened',\n conversation_show_opened: 'chat.mobile.conversations.show.opened',\n} as const satisfies Record<string, `chat.mobile.${string}`>\n\ntype AnalyticsEventName = (typeof analyticsEvents)[keyof typeof analyticsEvents]\n\ninterface AnalyticsEvent {\n name: string\n meta: EventMetadata\n}\n\nfunction contentSha256(payload: string): string {\n return SHA256(payload).toString(enc.Hex)\n}\n\nfunction sendEvents(events: AnalyticsEvent[], config: ProductAnalyticsConfig): Promise<Response[]> {\n // Split into chunks of 10 and make parallel requests\n const chunks: AnalyticsEvent[][] = []\n for (let i = 0; i < events.length; i += 10) {\n chunks.push(events.slice(i, i + 10))\n }\n\n return Promise.all(\n chunks.map(async chunk => {\n const payload = JSON.stringify({ events: chunk })\n return fetch(config.endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8',\n 'X-Authorization': `Bearer ${config.token}`,\n 'X-Amz-Content-Sha256': contentSha256(payload),\n },\n body: payload,\n })\n })\n ).catch(error => {\n if (__DEV__) {\n console.warn('Product Analytics request failed:', error)\n }\n return [] as Response[]\n })\n}\n\nconst useProductAnalytics = () => {\n const { productAnalyticsConfig } = useChatContext()\n\n const snakeCasedBaseMeta = useMemo(\n () => keysToSnakeCase(productAnalyticsConfig?.metadata || {}),\n [productAnalyticsConfig?.metadata]\n )\n\n const publishEvent = useCallback(\n (name: AnalyticsEventName, meta: EventMetadata = {}): Promise<Response[]> => {\n if (!productAnalyticsConfig) {\n if (__DEV__) {\n console.warn('Product Analytics not available')\n }\n return Promise.resolve([])\n }\n\n const mergedMeta = { ...snakeCasedBaseMeta, ...meta } as EventMetadata\n\n return sendEvents([{ name, meta: mergedMeta }], productAnalyticsConfig)\n },\n [productAnalyticsConfig, snakeCasedBaseMeta]\n )\n\n const publishEvents = useCallback(\n (events: Array<{ name: AnalyticsEventName; meta?: EventMetadata }>): Promise<Response[]> => {\n if (!productAnalyticsConfig) {\n if (__DEV__) {\n console.warn('Product Analytics not available')\n }\n return Promise.resolve([])\n }\n\n const eventsWithMeta = events.map(event => ({\n name: event.name,\n meta: { ...snakeCasedBaseMeta, ...event.meta } as EventMetadata,\n }))\n\n return sendEvents(eventsWithMeta, productAnalyticsConfig)\n },\n [productAnalyticsConfig, snakeCasedBaseMeta]\n )\n\n return { publishEvent, publishEvents }\n}\n\nexport function usePublishProductAnalyticsEvent(\n eventName: AnalyticsEventName,\n meta: EventMetadata = {}\n) {\n const { publishEvent } = useProductAnalytics()\n const hasPublishedEventRef = useRef(false)\n\n useEffect(() => {\n if (hasPublishedEventRef.current) return\n\n hasPublishedEventRef.current = true\n\n publishEvent(eventName, meta)\n }, [eventName, meta, publishEvent])\n}\n\nexport function normalizeAnalyticsMetadata(resource: {\n analyticsMetadata?: AnalyticsMetadataResource\n}) {\n return keysToSnakeCase(resource?.analyticsMetadata?.metadata || {}) as Record<string, unknown>\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"use_product_analytics.js","names":["useCallback","useEffect","useMemo","useRef","useChatContext","keysToSnakeCase","SHA256","enc","analyticsEvents","conversation_index_opened","conversation_show_opened","search_performed","search_result_opened","contentSha256","payload","toString","Hex","sendEvents","events","config","chunks","i","length","push","slice","Promise","all","map","chunk","JSON","stringify","fetch","endpoint","method","headers","token","body","catch","error","__DEV__","console","warn","useProductAnalytics","$","_c","productAnalyticsConfig","metadata","t0","t1","snakeCasedBaseMeta","t2","name","t3","meta","undefined","resolve","mergedMeta","publishEvent","eventsWithMeta","event","publishEvents","t4","usePublishProductAnalyticsEvent","eventName","hasPublishedEventRef","current","normalizeAnalyticsMetadata","resource","analyticsMetadata"],"sources":["../../src/hooks/use_product_analytics.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useChatContext } from '../contexts/chat_context'\nimport { ProductAnalyticsConfig } from '../types/product_analytics'\nimport { AnalyticsMetadataResource } from '../types/resources/analytics_metadata'\nimport { keysToSnakeCase } from '../utils/client/utils'\nimport { SHA256, enc } from '../utils/sha_256'\n\nexport interface EventMetadata {\n [key: string]: string | number | boolean | null | undefined\n}\n\nexport const analyticsEvents = {\n conversation_index_opened: 'chat.mobile.conversations.index.opened',\n conversation_show_opened: 'chat.mobile.conversations.show.opened',\n search_performed: 'chat.mobile.search.performed',\n search_result_opened: 'chat.mobile.search.result.opened',\n} as const satisfies Record<string, `chat.mobile.${string}`>\n\ntype AnalyticsEventName = (typeof analyticsEvents)[keyof typeof analyticsEvents]\n\ninterface AnalyticsEvent {\n name: string\n meta: EventMetadata\n}\n\nfunction contentSha256(payload: string): string {\n return SHA256(payload).toString(enc.Hex)\n}\n\nfunction sendEvents(events: AnalyticsEvent[], config: ProductAnalyticsConfig): Promise<Response[]> {\n // Split into chunks of 10 and make parallel requests\n const chunks: AnalyticsEvent[][] = []\n for (let i = 0; i < events.length; i += 10) {\n chunks.push(events.slice(i, i + 10))\n }\n\n return Promise.all(\n chunks.map(async chunk => {\n const payload = JSON.stringify({ events: chunk })\n return fetch(config.endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8',\n 'X-Authorization': `Bearer ${config.token}`,\n 'X-Amz-Content-Sha256': contentSha256(payload),\n },\n body: payload,\n })\n })\n ).catch(error => {\n if (__DEV__) {\n console.warn('Product Analytics request failed:', error)\n }\n return [] as Response[]\n })\n}\n\nexport const useProductAnalytics = () => {\n const { productAnalyticsConfig } = useChatContext()\n\n const snakeCasedBaseMeta = useMemo(\n () => keysToSnakeCase(productAnalyticsConfig?.metadata || {}),\n [productAnalyticsConfig?.metadata]\n )\n\n const publishEvent = useCallback(\n (name: AnalyticsEventName, meta: EventMetadata = {}): Promise<Response[]> => {\n if (!productAnalyticsConfig) {\n if (__DEV__) {\n console.warn('Product Analytics not available')\n }\n return Promise.resolve([])\n }\n\n const mergedMeta = { ...snakeCasedBaseMeta, ...meta } as EventMetadata\n\n return sendEvents([{ name, meta: mergedMeta }], productAnalyticsConfig)\n },\n [productAnalyticsConfig, snakeCasedBaseMeta]\n )\n\n const publishEvents = useCallback(\n (events: Array<{ name: AnalyticsEventName; meta?: EventMetadata }>): Promise<Response[]> => {\n if (!productAnalyticsConfig) {\n if (__DEV__) {\n console.warn('Product Analytics not available')\n }\n return Promise.resolve([])\n }\n\n const eventsWithMeta = events.map(event => ({\n name: event.name,\n meta: { ...snakeCasedBaseMeta, ...event.meta } as EventMetadata,\n }))\n\n return sendEvents(eventsWithMeta, productAnalyticsConfig)\n },\n [productAnalyticsConfig, snakeCasedBaseMeta]\n )\n\n return { publishEvent, publishEvents }\n}\n\nexport function usePublishProductAnalyticsEvent(\n eventName: AnalyticsEventName,\n meta: EventMetadata = {}\n) {\n const { publishEvent } = useProductAnalytics()\n const hasPublishedEventRef = useRef(false)\n\n useEffect(() => {\n if (hasPublishedEventRef.current) return\n\n hasPublishedEventRef.current = true\n\n publishEvent(eventName, meta)\n }, [eventName, meta, publishEvent])\n}\n\nexport function normalizeAnalyticsMetadata(resource: {\n analyticsMetadata?: AnalyticsMetadataResource\n}) {\n return keysToSnakeCase(resource?.analyticsMetadata?.metadata || {}) as Record<string, unknown>\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare function useSearchEnabled(): boolean;
2
+ //# sourceMappingURL=use_search_enabled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_search_enabled.d.ts","sourceRoot":"","sources":["../../src/hooks/use_search_enabled.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,YAM/B"}
@@ -0,0 +1,18 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { availableFeatures, useFeatures } from './use_features';
3
+ export function useSearchEnabled() {
4
+ const $ = _c(2);
5
+ const {
6
+ featureEnabled
7
+ } = useFeatures();
8
+ let t0;
9
+ if ($[0] !== featureEnabled) {
10
+ t0 = featureEnabled(availableFeatures.search) || featureEnabled(availableFeatures.search_rollout);
11
+ $[0] = featureEnabled;
12
+ $[1] = t0;
13
+ } else {
14
+ t0 = $[1];
15
+ }
16
+ return t0;
17
+ }
18
+ //# sourceMappingURL=use_search_enabled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_search_enabled.js","names":["availableFeatures","useFeatures","useSearchEnabled","$","_c","featureEnabled","t0","search","search_rollout"],"sources":["../../src/hooks/use_search_enabled.ts"],"sourcesContent":["import { availableFeatures, useFeatures } from './use_features'\n\nexport function useSearchEnabled() {\n const { featureEnabled } = useFeatures()\n\n return (\n featureEnabled(availableFeatures.search) || featureEnabled(availableFeatures.search_rollout)\n )\n}\n"],"mappings":";AAAA,SAASA,iBAAiB,EAAEC,WAAW,QAAQ,gBAAgB;AAE/D,OAAO,SAAAC,iBAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL;IAAAC;EAAA,IAA2BJ,WAAW,CAAC,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAH,CAAA,QAAAE,cAAA;IAGtCC,EAAA,GAAAD,cAAc,CAACL,iBAAiB,CAAAO,MAA2D,CAAC,IAAhDF,cAAc,CAACL,iBAAiB,CAAAQ,cAAe,CAAC;IAAAL,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,OAA5FG,EAA4F;AAAA","ignoreList":[]}
@@ -472,11 +472,11 @@ const useStyles = t0 => {
472
472
  const theme = useTheme();
473
473
  const atFontScaleBreakpoint = useAtFontScaleBreakpoint(shouldShowHeaderFiltersButton ? 1.2 : undefined);
474
474
  let t1;
475
- if ($[0] !== atFontScaleBreakpoint || $[1] !== theme.colors.statusErrorBorder) {
475
+ if ($[0] !== atFontScaleBreakpoint || $[1] !== theme.colors.fillColorNeutral050Base) {
476
476
  t1 = StyleSheet.create({
477
477
  listHeader: {
478
478
  borderBottomWidth: 1,
479
- borderBottomColor: theme.colors.statusErrorBorder,
479
+ borderBottomColor: theme.colors.fillColorNeutral050Base,
480
480
  paddingBottom: 16,
481
481
  gap: 16
482
482
  },
@@ -512,7 +512,7 @@ const useStyles = t0 => {
512
512
  }
513
513
  });
514
514
  $[0] = atFontScaleBreakpoint;
515
- $[1] = theme.colors.statusErrorBorder;
515
+ $[1] = theme.colors.fillColorNeutral050Base;
516
516
  $[2] = t1;
517
517
  } else {
518
518
  t1 = $[2];
@@ -1 +1 @@
1
- {"version":3,"file":"search_list_header_component.js","names":["useNavigation","useRoute","React","useCallback","useMemo","Alert","ScrollView","StyleSheet","View","Heading","TextButton","ToggleButton","useAtFontScaleBreakpoint","useCanCreateConversations","useCurrentPersonCache","useDirectMessagesEligible","useHasDirectMessages","useNewConversationEntry","useTheme","useMarkAllRead","useCanDisplayGroups","useNewConversationFromFilter","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Haptic","ChatGroupBadge","ListHeaderActionButton","jsx","_jsx","jsxs","_jsxs","ROW_PADDING_HORIZONTAL","FilterTypes","SearchListHeaderComponent","$","_c","navigation","t0","Symbol","for","source_app_name","source_type","canFilterByTeams","t1","canFilterByGroups","directMessagesEligible","hasDirectMessages","canFilterByDMs","route","t2","params","chat_group_graph_id","group_source_app_name","t3","show_direct_messages","undefined","currentPersonCache","markAllRead","isPending","canCreateConversations","entryMode","newConversationFromFilter","t4","bb0","More","test","Groups","Teams","DMs","All","active","t5","navigate","screen","handleNewConversationNavigation","t6","setParams","title","handleSetFilter","t7","handleSearch","t8","handleChatSettings","t9","handleOpenConversationFilters","t10","update","unreadCount","notificationSuccess","handleMarkAllRead","t11","alert","text","onPress","alertMarkAllRead","hasSomeSourceFilterCapability","hasMultiSourceFilterCapabilities","showFilterRow","shouldShowHeaderFiltersButton","moreFiltersButtonA11yLabel","t12","t13","iconNameRight","accessibilityLabel","moreFiltersButtonProps","t14","styles","useStyles","t15","numberOfLines","variant","children","t16","accessibilityShowsLargeContentViewer","accessibilityLargeContentTitle","t17","titleContainer","style","t18","name","testID","t19","t20","t21","t22","actionsContainer","t23","headingRow","t24","filterButton","filterRow","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","accessibilityRole","t25","t26","listHeader","theme","atFontScaleBreakpoint","colors","statusErrorBorder","create","borderBottomWidth","borderBottomColor","paddingBottom","gap","flexDirection","alignItems","justifyContent","paddingHorizontal","markAllReadRow","flexGrow","flex","minWidth"],"sources":["../../../../src/screens/conversations/components/search_list_header_component.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useMemo } from 'react'\nimport { Alert, ScrollView, StyleSheet, View } from 'react-native'\nimport { Heading, TextButton, ToggleButton } from '../../../components'\nimport {\n useAtFontScaleBreakpoint,\n useCanCreateConversations,\n useCurrentPersonCache,\n useDirectMessagesEligible,\n useHasDirectMessages,\n useNewConversationEntry,\n useTheme,\n} from '../../../hooks'\nimport { useMarkAllRead } from '../../../hooks/use_conversations_actions'\nimport { useCanDisplayGroups } from '../../../hooks/use_groups'\nimport { useNewConversationFromFilter } from '../../../hooks/use_new_conversation_from_filter'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { ConversationFiltersParams } from '../../conversation_filters/screen_props'\nimport { ConversationsScreenProps } from '../conversations_screen'\nimport { ChatGroupBadge } from './chat_group_badge'\nimport { ListHeaderActionButton } from './list_header_action_button'\n\nconst ROW_PADDING_HORIZONTAL = 16\n\nenum FilterTypes {\n All = 'All',\n Groups = 'Groups',\n Teams = 'Teams',\n DMs = 'DMs',\n More = 'More',\n}\n\nexport const SearchListHeaderComponent = () => {\n const navigation = useNavigation()\n const canFilterByTeams = useCanDisplayGroups({ source_app_name: 'Services', source_type: 'Team' })\n const canFilterByGroups = useCanDisplayGroups({ source_app_name: 'Groups', source_type: 'Group' })\n const directMessagesEligible = useDirectMessagesEligible()\n const hasDirectMessages = useHasDirectMessages()\n const canFilterByDMs = directMessagesEligible && hasDirectMessages\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const {\n chat_group_graph_id,\n group_source_app_name = '',\n show_direct_messages,\n } = route.params || {}\n const currentPersonCache = useCurrentPersonCache()\n const { markAllRead, isPending } = useMarkAllRead()\n const canCreateConversations = useCanCreateConversations()\n const entryMode = useNewConversationEntry()\n const newConversationFromFilter = useNewConversationFromFilter(\n chat_group_graph_id as GraphId | undefined\n )\n\n const active: FilterTypes = useMemo(() => {\n if (chat_group_graph_id) {\n return FilterTypes.More\n } else if (/groups/i.test(group_source_app_name)) {\n return FilterTypes.Groups\n } else if (/services/i.test(group_source_app_name)) {\n return FilterTypes.Teams\n } else if (show_direct_messages) {\n return FilterTypes.DMs\n }\n\n return FilterTypes.All\n }, [chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleNewConversationNavigation = useCallback(() => {\n if (newConversationFromFilter || entryMode === 'select_type') {\n return navigation.navigate('ConversationSelectType', {\n ...route.params,\n newConversationFromFilter,\n })\n }\n\n if (entryMode === 'groups') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectGroupRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'teams') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectTeamsILeadRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'direct_message') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectDirectMessageRecipients',\n params: { ...route.params },\n })\n }\n }, [navigation, route.params, entryMode, newConversationFromFilter])\n\n const handleSetFilter = useCallback(\n (params: ConversationFiltersParams) => {\n navigation.setParams({\n title: undefined,\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n ...params,\n })\n },\n [navigation]\n )\n\n const handleSearch = useCallback(() => {\n navigation.navigate('Search')\n }, [navigation])\n\n const handleChatSettings = useCallback(() => {\n navigation.navigate('ChatSettings', {})\n }, [navigation])\n\n const handleOpenConversationFilters = useCallback(() => {\n navigation.navigate('ConversationFilters', {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n })\n }, [navigation, chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleMarkAllRead = useCallback(() => {\n currentPersonCache.update({ unreadCount: 0 })\n Haptic.notificationSuccess()\n markAllRead()\n }, [currentPersonCache, markAllRead])\n\n const alertMarkAllRead = useCallback(() => {\n if (active === FilterTypes.All) return handleMarkAllRead()\n\n Alert.alert('Mark all read', 'This includes conversations not shown by the current filter.', [\n { text: 'Cancel' },\n { text: 'OK', onPress: () => handleMarkAllRead() },\n ])\n }, [active, handleMarkAllRead])\n\n const hasSomeSourceFilterCapability = canFilterByTeams || canFilterByGroups\n const hasMultiSourceFilterCapabilities = canFilterByTeams && canFilterByGroups\n const showFilterRow = hasMultiSourceFilterCapabilities || canFilterByDMs\n const shouldShowHeaderFiltersButton = hasSomeSourceFilterCapability && !showFilterRow\n const moreFiltersButtonA11yLabel = shouldShowHeaderFiltersButton\n ? 'View filters'\n : 'View more filters'\n\n const moreFiltersButtonProps = {\n onPress: handleOpenConversationFilters,\n active: active === FilterTypes.More,\n iconNameRight: 'general.threeReducingHorizontalBars' as const,\n accessibilityLabel: moreFiltersButtonA11yLabel,\n }\n\n const styles = useStyles({ shouldShowHeaderFiltersButton })\n\n return (\n <View style={styles.listHeader}>\n <View style={styles.headingRow}>\n <View style={styles.titleContainer}>\n <Heading numberOfLines={1} variant=\"h2\">\n Conversations\n </Heading>\n <TextButton\n onPress={alertMarkAllRead}\n disabled={isPending}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityShowsLargeContentViewer\n accessibilityLargeContentTitle=\"Mark all read\"\n >\n Mark all read\n </TextButton>\n </View>\n <View style={styles.actionsContainer}>\n <ListHeaderActionButton\n name=\"general.cog\"\n onPress={handleChatSettings}\n accessibilityLabel=\"Chat settings\"\n testID=\"conversations-chat-settings-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {canCreateConversations && (\n <ListHeaderActionButton\n name=\"churchCenter.signups\"\n onPress={handleNewConversationNavigation}\n accessibilityLabel=\"New conversation\"\n testID=\"conversations-new-conversation-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n <ListHeaderActionButton\n name=\"general.search\"\n onPress={handleSearch}\n accessibilityLabel=\"Search\"\n testID=\"conversations-search-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {shouldShowHeaderFiltersButton && <ToggleButton {...moreFiltersButtonProps} />}\n </View>\n </View>\n {showFilterRow && (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.filterRow}\n accessibilityRole=\"toolbar\"\n >\n <ToggleButton\n title={FilterTypes.All}\n active={active === FilterTypes.All}\n onPress={() => handleSetFilter({})}\n accessibilityLabel=\"Show all conversations\"\n style={styles.filterButton}\n />\n {canFilterByGroups && (\n <ToggleButton\n title={FilterTypes.Groups}\n active={active === FilterTypes.Groups}\n onPress={() => handleSetFilter({ group_source_app_name: 'Groups' })}\n accessibilityLabel=\"Filter to group conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByTeams && (\n <ToggleButton\n title={FilterTypes.Teams}\n active={active === FilterTypes.Teams}\n onPress={() => handleSetFilter({ group_source_app_name: 'Services' })}\n accessibilityLabel=\"Filter to team conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByDMs && (\n <ToggleButton\n title={FilterTypes.DMs}\n active={active === FilterTypes.DMs}\n onPress={() => handleSetFilter({ show_direct_messages: true })}\n accessibilityLabel=\"Filter to direct message conversations\"\n style={styles.filterButton}\n />\n )}\n <ToggleButton {...moreFiltersButtonProps} />\n </ScrollView>\n )}\n <ChatGroupBadge rowPaddingHorizontal={ROW_PADDING_HORIZONTAL} />\n </View>\n )\n}\n\nconst useStyles = ({\n shouldShowHeaderFiltersButton,\n}: {\n shouldShowHeaderFiltersButton: boolean\n}) => {\n const theme = useTheme()\n const atFontScaleBreakpoint = useAtFontScaleBreakpoint(\n shouldShowHeaderFiltersButton ? 1.2 : undefined\n )\n\n return StyleSheet.create({\n listHeader: {\n borderBottomWidth: 1,\n borderBottomColor: theme.colors.statusErrorBorder,\n paddingBottom: 16,\n gap: 16,\n },\n headingRow: {\n gap: 12,\n flexDirection: atFontScaleBreakpoint ? 'column' : 'row',\n alignItems: atFontScaleBreakpoint ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n paddingBottom: atFontScaleBreakpoint ? 4 : 0,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n titleContainer: {\n gap: 8,\n },\n actionsContainer: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'center',\n },\n markAllReadRow: {\n paddingBottom: 4,\n },\n filterRow: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n gap: 8,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n flexGrow: 1,\n },\n filterButton: {\n flex: 1,\n minWidth: 65,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"search_list_header_component.js","names":["useNavigation","useRoute","React","useCallback","useMemo","Alert","ScrollView","StyleSheet","View","Heading","TextButton","ToggleButton","useAtFontScaleBreakpoint","useCanCreateConversations","useCurrentPersonCache","useDirectMessagesEligible","useHasDirectMessages","useNewConversationEntry","useTheme","useMarkAllRead","useCanDisplayGroups","useNewConversationFromFilter","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Haptic","ChatGroupBadge","ListHeaderActionButton","jsx","_jsx","jsxs","_jsxs","ROW_PADDING_HORIZONTAL","FilterTypes","SearchListHeaderComponent","$","_c","navigation","t0","Symbol","for","source_app_name","source_type","canFilterByTeams","t1","canFilterByGroups","directMessagesEligible","hasDirectMessages","canFilterByDMs","route","t2","params","chat_group_graph_id","group_source_app_name","t3","show_direct_messages","undefined","currentPersonCache","markAllRead","isPending","canCreateConversations","entryMode","newConversationFromFilter","t4","bb0","More","test","Groups","Teams","DMs","All","active","t5","navigate","screen","handleNewConversationNavigation","t6","setParams","title","handleSetFilter","t7","handleSearch","t8","handleChatSettings","t9","handleOpenConversationFilters","t10","update","unreadCount","notificationSuccess","handleMarkAllRead","t11","alert","text","onPress","alertMarkAllRead","hasSomeSourceFilterCapability","hasMultiSourceFilterCapabilities","showFilterRow","shouldShowHeaderFiltersButton","moreFiltersButtonA11yLabel","t12","t13","iconNameRight","accessibilityLabel","moreFiltersButtonProps","t14","styles","useStyles","t15","numberOfLines","variant","children","t16","accessibilityShowsLargeContentViewer","accessibilityLargeContentTitle","t17","titleContainer","style","t18","name","testID","t19","t20","t21","t22","actionsContainer","t23","headingRow","t24","filterButton","filterRow","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","accessibilityRole","t25","t26","listHeader","theme","atFontScaleBreakpoint","colors","fillColorNeutral050Base","create","borderBottomWidth","borderBottomColor","paddingBottom","gap","flexDirection","alignItems","justifyContent","paddingHorizontal","markAllReadRow","flexGrow","flex","minWidth"],"sources":["../../../../src/screens/conversations/components/search_list_header_component.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useMemo } from 'react'\nimport { Alert, ScrollView, StyleSheet, View } from 'react-native'\nimport { Heading, TextButton, ToggleButton } from '../../../components'\nimport {\n useAtFontScaleBreakpoint,\n useCanCreateConversations,\n useCurrentPersonCache,\n useDirectMessagesEligible,\n useHasDirectMessages,\n useNewConversationEntry,\n useTheme,\n} from '../../../hooks'\nimport { useMarkAllRead } from '../../../hooks/use_conversations_actions'\nimport { useCanDisplayGroups } from '../../../hooks/use_groups'\nimport { useNewConversationFromFilter } from '../../../hooks/use_new_conversation_from_filter'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { ConversationFiltersParams } from '../../conversation_filters/screen_props'\nimport { ConversationsScreenProps } from '../conversations_screen'\nimport { ChatGroupBadge } from './chat_group_badge'\nimport { ListHeaderActionButton } from './list_header_action_button'\n\nconst ROW_PADDING_HORIZONTAL = 16\n\nenum FilterTypes {\n All = 'All',\n Groups = 'Groups',\n Teams = 'Teams',\n DMs = 'DMs',\n More = 'More',\n}\n\nexport const SearchListHeaderComponent = () => {\n const navigation = useNavigation()\n const canFilterByTeams = useCanDisplayGroups({ source_app_name: 'Services', source_type: 'Team' })\n const canFilterByGroups = useCanDisplayGroups({ source_app_name: 'Groups', source_type: 'Group' })\n const directMessagesEligible = useDirectMessagesEligible()\n const hasDirectMessages = useHasDirectMessages()\n const canFilterByDMs = directMessagesEligible && hasDirectMessages\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const {\n chat_group_graph_id,\n group_source_app_name = '',\n show_direct_messages,\n } = route.params || {}\n const currentPersonCache = useCurrentPersonCache()\n const { markAllRead, isPending } = useMarkAllRead()\n const canCreateConversations = useCanCreateConversations()\n const entryMode = useNewConversationEntry()\n const newConversationFromFilter = useNewConversationFromFilter(\n chat_group_graph_id as GraphId | undefined\n )\n\n const active: FilterTypes = useMemo(() => {\n if (chat_group_graph_id) {\n return FilterTypes.More\n } else if (/groups/i.test(group_source_app_name)) {\n return FilterTypes.Groups\n } else if (/services/i.test(group_source_app_name)) {\n return FilterTypes.Teams\n } else if (show_direct_messages) {\n return FilterTypes.DMs\n }\n\n return FilterTypes.All\n }, [chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleNewConversationNavigation = useCallback(() => {\n if (newConversationFromFilter || entryMode === 'select_type') {\n return navigation.navigate('ConversationSelectType', {\n ...route.params,\n newConversationFromFilter,\n })\n }\n\n if (entryMode === 'groups') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectGroupRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'teams') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectTeamsILeadRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'direct_message') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectDirectMessageRecipients',\n params: { ...route.params },\n })\n }\n }, [navigation, route.params, entryMode, newConversationFromFilter])\n\n const handleSetFilter = useCallback(\n (params: ConversationFiltersParams) => {\n navigation.setParams({\n title: undefined,\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n ...params,\n })\n },\n [navigation]\n )\n\n const handleSearch = useCallback(() => {\n navigation.navigate('Search')\n }, [navigation])\n\n const handleChatSettings = useCallback(() => {\n navigation.navigate('ChatSettings', {})\n }, [navigation])\n\n const handleOpenConversationFilters = useCallback(() => {\n navigation.navigate('ConversationFilters', {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n })\n }, [navigation, chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleMarkAllRead = useCallback(() => {\n currentPersonCache.update({ unreadCount: 0 })\n Haptic.notificationSuccess()\n markAllRead()\n }, [currentPersonCache, markAllRead])\n\n const alertMarkAllRead = useCallback(() => {\n if (active === FilterTypes.All) return handleMarkAllRead()\n\n Alert.alert('Mark all read', 'This includes conversations not shown by the current filter.', [\n { text: 'Cancel' },\n { text: 'OK', onPress: () => handleMarkAllRead() },\n ])\n }, [active, handleMarkAllRead])\n\n const hasSomeSourceFilterCapability = canFilterByTeams || canFilterByGroups\n const hasMultiSourceFilterCapabilities = canFilterByTeams && canFilterByGroups\n const showFilterRow = hasMultiSourceFilterCapabilities || canFilterByDMs\n const shouldShowHeaderFiltersButton = hasSomeSourceFilterCapability && !showFilterRow\n const moreFiltersButtonA11yLabel = shouldShowHeaderFiltersButton\n ? 'View filters'\n : 'View more filters'\n\n const moreFiltersButtonProps = {\n onPress: handleOpenConversationFilters,\n active: active === FilterTypes.More,\n iconNameRight: 'general.threeReducingHorizontalBars' as const,\n accessibilityLabel: moreFiltersButtonA11yLabel,\n }\n\n const styles = useStyles({ shouldShowHeaderFiltersButton })\n\n return (\n <View style={styles.listHeader}>\n <View style={styles.headingRow}>\n <View style={styles.titleContainer}>\n <Heading numberOfLines={1} variant=\"h2\">\n Conversations\n </Heading>\n <TextButton\n onPress={alertMarkAllRead}\n disabled={isPending}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityShowsLargeContentViewer\n accessibilityLargeContentTitle=\"Mark all read\"\n >\n Mark all read\n </TextButton>\n </View>\n <View style={styles.actionsContainer}>\n <ListHeaderActionButton\n name=\"general.cog\"\n onPress={handleChatSettings}\n accessibilityLabel=\"Chat settings\"\n testID=\"conversations-chat-settings-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {canCreateConversations && (\n <ListHeaderActionButton\n name=\"churchCenter.signups\"\n onPress={handleNewConversationNavigation}\n accessibilityLabel=\"New conversation\"\n testID=\"conversations-new-conversation-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n <ListHeaderActionButton\n name=\"general.search\"\n onPress={handleSearch}\n accessibilityLabel=\"Search\"\n testID=\"conversations-search-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {shouldShowHeaderFiltersButton && <ToggleButton {...moreFiltersButtonProps} />}\n </View>\n </View>\n {showFilterRow && (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.filterRow}\n accessibilityRole=\"toolbar\"\n >\n <ToggleButton\n title={FilterTypes.All}\n active={active === FilterTypes.All}\n onPress={() => handleSetFilter({})}\n accessibilityLabel=\"Show all conversations\"\n style={styles.filterButton}\n />\n {canFilterByGroups && (\n <ToggleButton\n title={FilterTypes.Groups}\n active={active === FilterTypes.Groups}\n onPress={() => handleSetFilter({ group_source_app_name: 'Groups' })}\n accessibilityLabel=\"Filter to group conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByTeams && (\n <ToggleButton\n title={FilterTypes.Teams}\n active={active === FilterTypes.Teams}\n onPress={() => handleSetFilter({ group_source_app_name: 'Services' })}\n accessibilityLabel=\"Filter to team conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByDMs && (\n <ToggleButton\n title={FilterTypes.DMs}\n active={active === FilterTypes.DMs}\n onPress={() => handleSetFilter({ show_direct_messages: true })}\n accessibilityLabel=\"Filter to direct message conversations\"\n style={styles.filterButton}\n />\n )}\n <ToggleButton {...moreFiltersButtonProps} />\n </ScrollView>\n )}\n <ChatGroupBadge rowPaddingHorizontal={ROW_PADDING_HORIZONTAL} />\n </View>\n )\n}\n\nconst useStyles = ({\n shouldShowHeaderFiltersButton,\n}: {\n shouldShowHeaderFiltersButton: boolean\n}) => {\n const theme = useTheme()\n const atFontScaleBreakpoint = useAtFontScaleBreakpoint(\n shouldShowHeaderFiltersButton ? 1.2 : undefined\n )\n\n return StyleSheet.create({\n listHeader: {\n borderBottomWidth: 1,\n borderBottomColor: theme.colors.fillColorNeutral050Base,\n paddingBottom: 16,\n gap: 16,\n },\n headingRow: {\n gap: 12,\n flexDirection: atFontScaleBreakpoint ? 'column' : 'row',\n alignItems: atFontScaleBreakpoint ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n paddingBottom: atFontScaleBreakpoint ? 4 : 0,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n titleContainer: {\n gap: 8,\n },\n actionsContainer: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'center',\n },\n markAllReadRow: {\n paddingBottom: 4,\n },\n filterRow: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n gap: 8,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n flexGrow: 1,\n },\n filterButton: {\n flex: 1,\n minWidth: 65,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"conversations_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversations/conversations_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAI9D,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAC,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,2CAetE"}
1
+ {"version":3,"file":"conversations_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversations/conversations_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAI9D,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAC,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,2CActE"}
@@ -3,8 +3,8 @@ import React from 'react';
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import { Conversations } from '../../components';
5
5
  import { ConversationsContextProvider } from '../../contexts/conversations_context';
6
- import { availableFeatures, useFeatures } from '../../hooks/use_features';
7
6
  import { analyticsEvents, usePublishProductAnalyticsEvent } from '../../hooks/use_product_analytics';
7
+ import { useSearchEnabled } from '../../hooks/use_search_enabled';
8
8
  import { ListHeaderComponent } from './components/list_header_component';
9
9
  import { SearchListHeaderComponent } from './components/search_list_header_component';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -14,10 +14,7 @@ export function ConversationsScreen(t0) {
14
14
  route
15
15
  } = t0;
16
16
  const styles = useStyles();
17
- const {
18
- featureEnabled
19
- } = useFeatures();
20
- const searchEnabled = featureEnabled(availableFeatures.search);
17
+ const searchEnabled = useSearchEnabled();
21
18
  const Header = searchEnabled ? SearchListHeaderComponent : ListHeaderComponent;
22
19
  usePublishProductAnalyticsEvent(analyticsEvents.conversation_index_opened);
23
20
  let t1;
@@ -1 +1 @@
1
- {"version":3,"file":"conversations_screen.js","names":["React","StyleSheet","View","Conversations","ConversationsContextProvider","availableFeatures","useFeatures","analyticsEvents","usePublishProductAnalyticsEvent","ListHeaderComponent","SearchListHeaderComponent","jsx","_jsx","ConversationsScreen","t0","$","_c","route","styles","useStyles","featureEnabled","searchEnabled","search","Header","conversation_index_opened","t1","Symbol","for","throwOnError","t2","t3","params","args","opts","children","t4","container","style","create","flex","justifyContent"],"sources":["../../../src/screens/conversations/conversations_screen.tsx"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Conversations } from '../../components'\nimport { ConversationsContextProvider } from '../../contexts/conversations_context'\nimport { availableFeatures, useFeatures } from '../../hooks/use_features'\nimport { analyticsEvents, usePublishProductAnalyticsEvent } from '../../hooks/use_product_analytics'\nimport { AppName } from '../../types/resources/app_name'\nimport { GraphId } from '../../types/resources/group_resource'\nimport { ListHeaderComponent } from './components/list_header_component'\nimport { SearchListHeaderComponent } from './components/search_list_header_component'\n\nexport type ConversationsScreenProps = StaticScreenProps<{\n title?: string\n chat_group_graph_id?: GraphId\n group_source_app_name?: AppName\n show_direct_messages?: boolean\n}>\n\nexport function ConversationsScreen({ route }: ConversationsScreenProps) {\n const styles = useStyles()\n const { featureEnabled } = useFeatures()\n const searchEnabled = featureEnabled(availableFeatures.search)\n const Header = searchEnabled ? SearchListHeaderComponent : ListHeaderComponent\n\n usePublishProductAnalyticsEvent(analyticsEvents.conversation_index_opened)\n\n return (\n <View style={styles.container}>\n <ConversationsContextProvider args={route.params} opts={{ throwOnError: true }}>\n <Conversations ListHeaderComponent={Header} />\n </ConversationsContextProvider>\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n },\n })\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,4BAA4B,QAAQ,sCAAsC;AACnF,SAASC,iBAAiB,EAAEC,WAAW,QAAQ,0BAA0B;AACzE,SAASC,eAAe,EAAEC,+BAA+B,QAAQ,mCAAmC;AAGpG,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,yBAAyB,QAAQ,2CAA2C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASrF,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAC;EAAA,IAAAH,EAAmC;EACrE,MAAAI,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B;IAAAC;EAAA,IAA2Bd,WAAW,CAAC,CAAC;EACxC,MAAAe,aAAA,GAAsBD,cAAc,CAACf,iBAAiB,CAAAiB,MAAO,CAAC;EAC9D,MAAAC,MAAA,GAAeF,aAAa,GAAbX,yBAA+D,GAA/DD,mBAA+D;EAE9ED,+BAA+B,CAACD,eAAe,CAAAiB,yBAA0B,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAW,MAAA,CAAAC,GAAA;IAIdF,EAAA;MAAAG,YAAA,EAAgB;IAAK,CAAC;IAAAb,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAc,EAAA;EAAA,IAAAd,CAAA,QAAAQ,MAAA;IAC5EM,EAAA,gBAAAjB,IAAA,CAACT,aAAa;MAAsBoB,mBAAM,EAANA;IAAM,CAAG,CAAC;IAAAR,CAAA,MAAAQ,MAAA;IAAAR,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAE,KAAA,CAAAc,MAAA,IAAAhB,CAAA,QAAAc,EAAA;IADhDC,EAAA,gBAAAlB,IAAA,CAACR,4BAA4B;MAAO4B,IAAY,EAAZf,KAAK,CAAAc,MAAO;MAAQE,IAAsB,EAAtBR,EAAsB;MAAAS,QAAA,EAC5EL;IAA8C,CAClB,CAAC;IAAAd,CAAA,MAAAE,KAAA,CAAAc,MAAA;IAAAhB,CAAA,MAAAc,EAAA;IAAAd,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAAoB,EAAA;EAAA,IAAApB,CAAA,QAAAG,MAAA,CAAAkB,SAAA,IAAArB,CAAA,QAAAe,EAAA;IAHjCK,EAAA,gBAAAvB,IAAA,CAACV,IAAI;MAAQmC,KAAgB,EAAhBnB,MAAM,CAAAkB,SAAU;MAAAF,QAAA,EAC3BJ;IAE+B,CAC3B,CAAC;IAAAf,CAAA,MAAAG,MAAA,CAAAkB,SAAA;IAAArB,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAAA,OAJPoB,EAIO;AAAA;AAIX,MAAMhB,SAAS,GAAGA,CAAA,KAAM;EACtB,OAAOlB,UAAU,CAACqC,MAAM,CAAC;IACvBF,SAAS,EAAE;MACTG,IAAI,EAAE,CAAC;MACPC,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"conversations_screen.js","names":["React","StyleSheet","View","Conversations","ConversationsContextProvider","analyticsEvents","usePublishProductAnalyticsEvent","useSearchEnabled","ListHeaderComponent","SearchListHeaderComponent","jsx","_jsx","ConversationsScreen","t0","$","_c","route","styles","useStyles","searchEnabled","Header","conversation_index_opened","t1","Symbol","for","throwOnError","t2","t3","params","args","opts","children","t4","container","style","create","flex","justifyContent"],"sources":["../../../src/screens/conversations/conversations_screen.tsx"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Conversations } from '../../components'\nimport { ConversationsContextProvider } from '../../contexts/conversations_context'\nimport { analyticsEvents, usePublishProductAnalyticsEvent } from '../../hooks/use_product_analytics'\nimport { useSearchEnabled } from '../../hooks/use_search_enabled'\nimport { AppName } from '../../types/resources/app_name'\nimport { GraphId } from '../../types/resources/group_resource'\nimport { ListHeaderComponent } from './components/list_header_component'\nimport { SearchListHeaderComponent } from './components/search_list_header_component'\n\nexport type ConversationsScreenProps = StaticScreenProps<{\n title?: string\n chat_group_graph_id?: GraphId\n group_source_app_name?: AppName\n show_direct_messages?: boolean\n}>\n\nexport function ConversationsScreen({ route }: ConversationsScreenProps) {\n const styles = useStyles()\n const searchEnabled = useSearchEnabled()\n const Header = searchEnabled ? SearchListHeaderComponent : ListHeaderComponent\n\n usePublishProductAnalyticsEvent(analyticsEvents.conversation_index_opened)\n\n return (\n <View style={styles.container}>\n <ConversationsContextProvider args={route.params} opts={{ throwOnError: true }}>\n <Conversations ListHeaderComponent={Header} />\n </ConversationsContextProvider>\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n },\n })\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,4BAA4B,QAAQ,sCAAsC;AACnF,SAASC,eAAe,EAAEC,+BAA+B,QAAQ,mCAAmC;AACpG,SAASC,gBAAgB,QAAQ,gCAAgC;AAGjE,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,yBAAyB,QAAQ,2CAA2C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASrF,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAC;EAAA,IAAAH,EAAmC;EACrE,MAAAI,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B,MAAAC,aAAA,GAAsBZ,gBAAgB,CAAC,CAAC;EACxC,MAAAa,MAAA,GAAeD,aAAa,GAAbV,yBAA+D,GAA/DD,mBAA+D;EAE9EF,+BAA+B,CAACD,eAAe,CAAAgB,yBAA0B,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAS,MAAA,CAAAC,GAAA;IAIdF,EAAA;MAAAG,YAAA,EAAgB;IAAK,CAAC;IAAAX,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,IAAAY,EAAA;EAAA,IAAAZ,CAAA,QAAAM,MAAA;IAC5EM,EAAA,gBAAAf,IAAA,CAACR,aAAa;MAAsBiB,mBAAM,EAANA;IAAM,CAAG,CAAC;IAAAN,CAAA,MAAAM,MAAA;IAAAN,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,IAAAa,EAAA;EAAA,IAAAb,CAAA,QAAAE,KAAA,CAAAY,MAAA,IAAAd,CAAA,QAAAY,EAAA;IADhDC,EAAA,gBAAAhB,IAAA,CAACP,4BAA4B;MAAOyB,IAAY,EAAZb,KAAK,CAAAY,MAAO;MAAQE,IAAsB,EAAtBR,EAAsB;MAAAS,QAAA,EAC5EL;IAA8C,CAClB,CAAC;IAAAZ,CAAA,MAAAE,KAAA,CAAAY,MAAA;IAAAd,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAAA,IAAAkB,EAAA;EAAA,IAAAlB,CAAA,QAAAG,MAAA,CAAAgB,SAAA,IAAAnB,CAAA,QAAAa,EAAA;IAHjCK,EAAA,gBAAArB,IAAA,CAACT,IAAI;MAAQgC,KAAgB,EAAhBjB,MAAM,CAAAgB,SAAU;MAAAF,QAAA,EAC3BJ;IAE+B,CAC3B,CAAC;IAAAb,CAAA,MAAAG,MAAA,CAAAgB,SAAA;IAAAnB,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAAA,OAJPkB,EAIO;AAAA;AAIX,MAAMd,SAAS,GAAGA,CAAA,KAAM;EACtB,OAAOjB,UAAU,CAACkC,MAAM,CAAC;IACvBF,SAAS,EAAE;MACTG,IAAI,EAAE,CAAC;MACPC,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import type { ConversationSearchResultResource } from '../../../types';
2
2
  interface ConversationResultsProps {
3
3
  results: ConversationSearchResultResource[];
4
- onSelect: (result: ConversationSearchResultResource) => void;
4
+ onSelect: (result: ConversationSearchResultResource, position: number) => void;
5
5
  }
6
6
  export declare function ConversationResults({ results, onSelect }: ConversationResultsProps): import("react/jsx-runtime").JSX.Element | null;
7
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_results.d.ts","sourceRoot":"","sources":["../../../../src/screens/search/components/conversation_results.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAA;AAOtE,UAAU,wBAAwB;IAChC,OAAO,EAAE,gCAAgC,EAAE,CAAA;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,gCAAgC,KAAK,IAAI,CAAA;CAC7D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,wBAAwB,kDAyBlF"}
1
+ {"version":3,"file":"conversation_results.d.ts","sourceRoot":"","sources":["../../../../src/screens/search/components/conversation_results.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAA;AAOtE,UAAU,wBAAwB;IAChC,OAAO,EAAE,gCAAgC,EAAE,CAAA;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,gCAAgC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/E;AAED,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,wBAAwB,kDA6BlF"}
@@ -43,9 +43,9 @@ export function ConversationResults(t0) {
43
43
  if ($[6] !== onSelect || $[7] !== visible) {
44
44
  let t4;
45
45
  if ($[9] !== onSelect) {
46
- t4 = result => /*#__PURE__*/_jsx(ConversationResultRow, {
46
+ t4 = (result, index) => /*#__PURE__*/_jsx(ConversationResultRow, {
47
47
  result: result,
48
- onPress: () => onSelect(result)
48
+ onPress: () => onSelect(result, index)
49
49
  }, result.id);
50
50
  $[9] = onSelect;
51
51
  $[10] = t4;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_results.js","names":["useState","ViewMoreLinkRow","ConversationResultRow","ResultsSection","jsx","_jsx","COLLAPSED_COUNT","ConversationResults","t0","$","_c","results","onSelect","expanded","setExpanded","t1","slice","visible","length","t2","onPress","accessibilityHint","footer","t3","t4","result","id","map","title","children"],"sources":["../../../../src/screens/search/components/conversation_results.tsx"],"sourcesContent":["import { useState } from 'react'\nimport type { ConversationSearchResultResource } from '../../../types'\nimport { ViewMoreLinkRow } from '../../conversation_select_recipients/components/view_more_link_row'\nimport { ConversationResultRow } from './conversation_result_row'\nimport { ResultsSection } from './results_section'\n\nconst COLLAPSED_COUNT = 5\n\ninterface ConversationResultsProps {\n results: ConversationSearchResultResource[]\n onSelect: (result: ConversationSearchResultResource) => void\n}\n\nexport function ConversationResults({ results, onSelect }: ConversationResultsProps) {\n const [expanded, setExpanded] = useState(false)\n const visible = expanded ? results : results.slice(0, COLLAPSED_COUNT)\n\n if (results.length === 0) return null\n\n const footer = results.length > COLLAPSED_COUNT && (\n <ViewMoreLinkRow\n expanded={expanded}\n onPress={() => setExpanded(!expanded)}\n accessibilityHint={\n expanded\n ? `Shows the first ${COLLAPSED_COUNT} conversation results`\n : `Shows all ${results.length} conversation results`\n }\n />\n )\n\n return (\n <ResultsSection title=\"Conversations\" footer={footer}>\n {visible.map(result => (\n <ConversationResultRow key={result.id} result={result} onPress={() => onSelect(result)} />\n ))}\n </ResultsSection>\n )\n}\n"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,eAAe,QAAQ,oEAAoE;AACpG,SAASC,qBAAqB,QAAQ,2BAA2B;AACjE,SAASC,cAAc,QAAQ,mBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElD,MAAMC,eAAe,GAAG,CAAC;AAOzB,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAC,OAAA;IAAAC;EAAA,IAAAJ,EAA+C;EACjF,OAAAK,QAAA,EAAAC,WAAA,IAAgCd,QAAQ,CAAC,KAAK,CAAC;EAAA,IAAAe,EAAA;EAAA,IAAAN,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAE,OAAA;IAC/BI,EAAA,GAAAF,QAAQ,GAARF,OAAsD,GAAjCA,OAAO,CAAAK,KAAM,CAAC,CAAC,EAAEV,eAAe,CAAC;IAAAG,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAtE,MAAAQ,OAAA,GAAgBF,EAAsD;EAEtE,IAAIJ,OAAO,CAAAO,MAAO,KAAK,CAAC;IAAA,OAAS,IAAI;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAE,OAAA,CAAAO,MAAA;IAEtBC,EAAA,GAAAR,OAAO,CAAAO,MAAO,GAAGZ,eAU/B,iBAVcD,IAAA,CACZJ,eAAe;MACJY,QAAQ,EAARA,QAAQ;MACTO,OAA4B,EAA5BA,CAAA,KAAMN,WAAW,CAAC,CAACD,QAAQ,CAAC;MAEnCQ,iBAEsD,EAFtDR,QAAQ,GAAR,mBACuBP,eAAe,uBACgB,GAFtD,aAEiBK,OAAO,CAAAO,MAAO;IAAuB,CAG5D,CAAC;IAAAT,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAE,OAAA,CAAAO,MAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAVD,MAAAa,MAAA,GAAeH,EAUd;EAAA,IAAAI,EAAA;EAAA,IAAAd,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAQ,OAAA;IAAA,IAAAO,EAAA;IAAA,IAAAf,CAAA,QAAAG,QAAA;MAIgBY,EAAA,GAAAC,MAAA,iBACXpB,IAAA,CAACH,qBAAqB;QAAyBuB,MAAM,EAANA,MAAM;QAAWL,OAAsB,EAAtBA,CAAA,KAAMR,QAAQ,CAACa,MAAM;MAAC,GAA1DA,MAAM,CAAAC,EAAuD,CAC1F;MAAAjB,CAAA,MAAAG,QAAA;MAAAH,CAAA,OAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IAFAc,EAAA,GAAAN,OAAO,CAAAU,GAAI,CAACH,EAEZ,CAAC;IAAAf,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAQ,OAAA;IAAAR,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,SAAAa,MAAA,IAAAb,CAAA,SAAAc,EAAA;IAHJC,EAAA,gBAAAnB,IAAA,CAACF,cAAc;MAAOyB,KAAe,EAAf,eAAe;MAASN,MAAM,EAANA,MAAM;MAAAO,QAAA,EACjDN;IAEC,CACY,CAAC;IAAAd,CAAA,OAAAa,MAAA;IAAAb,CAAA,OAAAc,EAAA;IAAAd,CAAA,OAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,OAJjBe,EAIiB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"conversation_results.js","names":["useState","ViewMoreLinkRow","ConversationResultRow","ResultsSection","jsx","_jsx","COLLAPSED_COUNT","ConversationResults","t0","$","_c","results","onSelect","expanded","setExpanded","t1","slice","visible","length","t2","onPress","accessibilityHint","footer","t3","t4","result","index","id","map","title","children"],"sources":["../../../../src/screens/search/components/conversation_results.tsx"],"sourcesContent":["import { useState } from 'react'\nimport type { ConversationSearchResultResource } from '../../../types'\nimport { ViewMoreLinkRow } from '../../conversation_select_recipients/components/view_more_link_row'\nimport { ConversationResultRow } from './conversation_result_row'\nimport { ResultsSection } from './results_section'\n\nconst COLLAPSED_COUNT = 5\n\ninterface ConversationResultsProps {\n results: ConversationSearchResultResource[]\n onSelect: (result: ConversationSearchResultResource, position: number) => void\n}\n\nexport function ConversationResults({ results, onSelect }: ConversationResultsProps) {\n const [expanded, setExpanded] = useState(false)\n const visible = expanded ? results : results.slice(0, COLLAPSED_COUNT)\n\n if (results.length === 0) return null\n\n const footer = results.length > COLLAPSED_COUNT && (\n <ViewMoreLinkRow\n expanded={expanded}\n onPress={() => setExpanded(!expanded)}\n accessibilityHint={\n expanded\n ? `Shows the first ${COLLAPSED_COUNT} conversation results`\n : `Shows all ${results.length} conversation results`\n }\n />\n )\n\n return (\n <ResultsSection title=\"Conversations\" footer={footer}>\n {visible.map((result, index) => (\n <ConversationResultRow\n key={result.id}\n result={result}\n onPress={() => onSelect(result, index)}\n />\n ))}\n </ResultsSection>\n )\n}\n"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,eAAe,QAAQ,oEAAoE;AACpG,SAASC,qBAAqB,QAAQ,2BAA2B;AACjE,SAASC,cAAc,QAAQ,mBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElD,MAAMC,eAAe,GAAG,CAAC;AAOzB,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAC,OAAA;IAAAC;EAAA,IAAAJ,EAA+C;EACjF,OAAAK,QAAA,EAAAC,WAAA,IAAgCd,QAAQ,CAAC,KAAK,CAAC;EAAA,IAAAe,EAAA;EAAA,IAAAN,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAE,OAAA;IAC/BI,EAAA,GAAAF,QAAQ,GAARF,OAAsD,GAAjCA,OAAO,CAAAK,KAAM,CAAC,CAAC,EAAEV,eAAe,CAAC;IAAAG,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAtE,MAAAQ,OAAA,GAAgBF,EAAsD;EAEtE,IAAIJ,OAAO,CAAAO,MAAO,KAAK,CAAC;IAAA,OAAS,IAAI;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAE,OAAA,CAAAO,MAAA;IAEtBC,EAAA,GAAAR,OAAO,CAAAO,MAAO,GAAGZ,eAU/B,iBAVcD,IAAA,CACZJ,eAAe;MACJY,QAAQ,EAARA,QAAQ;MACTO,OAA4B,EAA5BA,CAAA,KAAMN,WAAW,CAAC,CAACD,QAAQ,CAAC;MAEnCQ,iBAEsD,EAFtDR,QAAQ,GAAR,mBACuBP,eAAe,uBACgB,GAFtD,aAEiBK,OAAO,CAAAO,MAAO;IAAuB,CAG5D,CAAC;IAAAT,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAE,OAAA,CAAAO,MAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAVD,MAAAa,MAAA,GAAeH,EAUd;EAAA,IAAAI,EAAA;EAAA,IAAAd,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAQ,OAAA;IAAA,IAAAO,EAAA;IAAA,IAAAf,CAAA,QAAAG,QAAA;MAIgBY,EAAA,GAAAA,CAAAC,MAAA,EAAAC,KAAA,kBACXrB,IAAA,CAACH,qBAAqB;QAEZuB,MAAM,EAANA,MAAM;QACLL,OAA6B,EAA7BA,CAAA,KAAMR,QAAQ,CAACa,MAAM,EAAEC,KAAK;MAAC,GAFjCD,MAAM,CAAAE,EAGZ,CACF;MAAAlB,CAAA,MAAAG,QAAA;MAAAH,CAAA,OAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IANAc,EAAA,GAAAN,OAAO,CAAAW,GAAI,CAACJ,EAMZ,CAAC;IAAAf,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAQ,OAAA;IAAAR,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,SAAAa,MAAA,IAAAb,CAAA,SAAAc,EAAA;IAPJC,EAAA,gBAAAnB,IAAA,CAACF,cAAc;MAAO0B,KAAe,EAAf,eAAe;MAASP,MAAM,EAANA,MAAM;MAAAQ,QAAA,EACjDP;IAMC,CACY,CAAC;IAAAd,CAAA,OAAAa,MAAA;IAAAb,CAAA,OAAAc,EAAA;IAAAd,CAAA,OAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,OARjBe,EAQiB;AAAA","ignoreList":[]}
@@ -1,8 +1,13 @@
1
1
  import type { SearchResultResource } from '../../../types/resources/search_result';
2
+ export interface SearchResultCounts {
3
+ conversationResultCount: number;
4
+ messageResultCount: number;
5
+ }
2
6
  interface SearchResultsListProps {
3
7
  term: string;
4
- onSelect: (result: SearchResultResource) => void;
8
+ onSelect: (result: SearchResultResource, position: number) => void;
9
+ onSettled: (term: string, counts: SearchResultCounts) => void;
5
10
  }
6
- export declare function SearchResultsList({ term, onSelect }: SearchResultsListProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function SearchResultsList({ term, onSelect, onSettled }: SearchResultsListProps): import("react/jsx-runtime").JSX.Element;
7
12
  export {};
8
13
  //# sourceMappingURL=search_results_list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search_results_list.d.ts","sourceRoot":"","sources":["../../../../src/screens/search/components/search_results_list.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,wCAAwC,CAAA;AAQ/C,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAA;CACjD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CA4D3E"}
1
+ {"version":3,"file":"search_results_list.d.ts","sourceRoot":"","sources":["../../../../src/screens/search/components/search_results_list.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,wCAAwC,CAAA;AAQ/C,MAAM,WAAW,kBAAkB;IACjC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAC9D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,sBAAsB,2CA2EtF"}