@planningcenter/chat-react-native 4.2.1-qa-staging.2 → 4.2.1-qa-staging.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.
- package/build/components/conversation/message_form.d.ts.map +1 -1
- package/build/components/conversation/message_form.js +1 -1
- package/build/components/conversation/message_form.js.map +1 -1
- package/build/contexts/conversation_context.d.ts +3 -1
- package/build/contexts/conversation_context.d.ts.map +1 -1
- package/build/contexts/conversation_context.js +23 -18
- package/build/contexts/conversation_context.js.map +1 -1
- package/build/hooks/use_conversation_message_lookup.d.ts +7 -0
- package/build/hooks/use_conversation_message_lookup.d.ts.map +1 -0
- package/build/hooks/use_conversation_message_lookup.js +52 -0
- package/build/hooks/use_conversation_message_lookup.js.map +1 -0
- package/build/hooks/use_conversation_messages.d.ts +1 -0
- package/build/hooks/use_conversation_messages.d.ts.map +1 -1
- package/build/hooks/use_conversation_messages.js +8 -1
- package/build/hooks/use_conversation_messages.js.map +1 -1
- package/build/hooks/use_conversation_messages_jolt_events.d.ts +12 -4
- package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
- package/build/hooks/use_conversation_messages_jolt_events.js +82 -88
- package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
- package/build/hooks/use_fetch_newer_messages.d.ts.map +1 -1
- package/build/hooks/use_fetch_newer_messages.js +27 -21
- package/build/hooks/use_fetch_newer_messages.js.map +1 -1
- package/build/hooks/use_fetch_newer_on_foreground.d.ts +1 -1
- package/build/hooks/use_fetch_newer_on_foreground.d.ts.map +1 -1
- package/build/hooks/use_fetch_newer_on_foreground.js +2 -1
- package/build/hooks/use_fetch_newer_on_foreground.js.map +1 -1
- package/build/hooks/use_held_back_messages.d.ts +11 -0
- package/build/hooks/use_held_back_messages.d.ts.map +1 -0
- package/build/hooks/use_held_back_messages.js +24 -0
- package/build/hooks/use_held_back_messages.js.map +1 -0
- package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
- package/build/hooks/use_message_create_or_update.js +91 -80
- package/build/hooks/use_message_create_or_update.js.map +1 -1
- package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
- package/build/hooks/use_message_reaction_toggle.js +45 -40
- package/build/hooks/use_message_reaction_toggle.js.map +1 -1
- package/build/screens/conversation_new/components/services_form.js.map +1 -1
- package/build/screens/conversation_screen.d.ts.map +1 -1
- package/build/screens/conversation_screen.js +485 -156
- package/build/screens/conversation_screen.js.map +1 -1
- package/build/screens/message_actions_screen.d.ts.map +1 -1
- package/build/screens/message_actions_screen.js +21 -26
- package/build/screens/message_actions_screen.js.map +1 -1
- package/build/screens/message_report_screen.d.ts.map +1 -1
- package/build/screens/message_report_screen.js +17 -44
- package/build/screens/message_report_screen.js.map +1 -1
- package/build/screens/reactions_screen.d.ts.map +1 -1
- package/build/screens/reactions_screen.js +70 -88
- package/build/screens/reactions_screen.js.map +1 -1
- package/build/utils/cache/find_message_in_caches.d.ts +4 -0
- package/build/utils/cache/find_message_in_caches.d.ts.map +1 -0
- package/build/utils/cache/find_message_in_caches.js +16 -0
- package/build/utils/cache/find_message_in_caches.js.map +1 -0
- package/build/utils/cache/optimistically_update_message.d.ts +2 -1
- package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
- package/build/utils/cache/optimistically_update_message.js +4 -4
- package/build/utils/cache/optimistically_update_message.js.map +1 -1
- package/build/utils/cache/prepend_newer_page.d.ts +1 -1
- package/build/utils/cache/prepend_newer_page.d.ts.map +1 -1
- package/build/utils/cache/prepend_newer_page.js +10 -9
- package/build/utils/cache/prepend_newer_page.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/hooks/use_conversation_messages.test.ts +22 -0
- package/src/__tests__/hooks/use_conversation_messages_jolt_events.test.ts +22 -25
- package/src/components/conversation/message_form.tsx +1 -2
- package/src/contexts/conversation_context.tsx +6 -1
- package/src/hooks/__tests__/use_fetch_newer_messages.test.tsx +68 -0
- package/src/hooks/__tests__/use_held_back_messages.test.tsx +60 -0
- package/src/hooks/__tests__/use_message_reaction_toggle.test.tsx +73 -0
- package/src/hooks/use_conversation_message_lookup.ts +29 -0
- package/src/hooks/use_conversation_messages.ts +9 -0
- package/src/hooks/use_conversation_messages_jolt_events.ts +43 -41
- package/src/hooks/use_fetch_newer_messages.ts +19 -12
- package/src/hooks/use_fetch_newer_on_foreground.ts +2 -2
- package/src/hooks/use_held_back_messages.ts +33 -0
- package/src/hooks/use_message_create_or_update.ts +8 -8
- package/src/hooks/use_message_reaction_toggle.ts +3 -1
- package/src/screens/conversation_new/components/services_form.tsx +1 -1
- package/src/screens/conversation_screen.tsx +20 -20
- package/src/screens/message_actions_screen.tsx +3 -5
- package/src/screens/message_report_screen.tsx +2 -3
- package/src/screens/reactions_screen.tsx +2 -4
- package/src/utils/cache/__tests__/find_message_in_caches.test.ts +37 -0
- package/src/utils/cache/__tests__/prepend_newer_page.test.ts +13 -14
- package/src/utils/cache/find_message_in_caches.ts +20 -0
- package/src/utils/cache/optimistically_update_message.ts +2 -5
- package/src/utils/cache/prepend_newer_page.ts +7 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_report_screen.js","names":["useNavigation","StackActions","React","useCallback","useLayoutEffect","useMemo","useState","View","StyleSheet","TextInput","useSafeAreaInsets","Spinner","Text","KeyboardScrollView","composeOptions","useHeaderRight","withLeftClose","BlankState","useTheme","useConversationMessages","useReportMessage","platformFontWeightBold","MessagePreview","ReportReasonList","jsx","_jsx","jsxs","_jsxs","MAX_DETAIL_LENGTH","MessageReportScreenOptions","navigation","route","handleClose","dispatch","popTo","conversation_id","params","merge","presentation","title","onPress","MessageReportScreen","t0","$","_c","message_id","t1","t2","Symbol","for","refetchOnMount","messages","t3","t4","m","id","find","message","MessageReportScreenContent","styles","useStyles","selectedReason","setSelectedReason","reasonDetail","setReasonDetail","mutate","submitReport","status","reason","handleReasonChange","bb0","trim","length","isFormValid","undefined","handleSubmit","formVisible","t5","t6","icon","accessibilityLabel","prominent","disabled","enabled","t7","t8","setOptions","headerTitle","t9","t10","loadingText","style","children","t11","fullScreenContainer","successIcon","Imagery","name","successTitle","Heading","successSubtitle","t12","Content","t13","Button","size","variant","t14","Root","t15","warningText","maxFontSizeMultiplier","required","fieldLabel","reasonListContainer","reasonSection","t16","detailSection","textInput","multiline","placeholder","accessibilityHint","t17","container","contentContainerStyle","bottom","colors","borderColorDefaultBase","statusErrorText","statusSuccessIcon","surfaceColor100","textColorDefaultPrimary","textColorDefaultSecondary","create","padding","paddingBottom","gap","fullHeight","flex","justifyContent","alignItems","backgroundColor","marginTop","fontSize","fontWeight","color","lineHeight","textAlignVertical","minHeight","maxHeight","borderWidth","borderColor","borderRadius","paddingHorizontal","paddingVertical","marginBottom"],"sources":["../../src/screens/message_report_screen.tsx"],"sourcesContent":["import { StaticScreenProps, useNavigation, StackActions } from '@react-navigation/native'\nimport type {\n NativeStackNavigationOptions,\n NativeStackScreenProps,\n} from '@react-navigation/native-stack'\nimport React, { useCallback, useLayoutEffect, useMemo, useState } from 'react'\nimport { View, StyleSheet, TextInput } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Spinner, Text, KeyboardScrollView } from '../components'\nimport {\n composeOptions,\n useHeaderRight,\n withLeftClose,\n} from '../components/display/platform_modal_header_buttons'\nimport BlankState from '../components/primitive/blank_state_primitive'\nimport { useTheme } from '../hooks'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { useReportMessage } from '../hooks/use_report_message'\nimport { MessageResource } from '../types'\nimport { MessageReportReason } from '../types/resources/message_report'\nimport { platformFontWeightBold } from '../utils'\nimport { MessagePreview } from './message_report/components/message_preview'\nimport { ReportReasonList } from './message_report/components/report_reason_list'\n\nconst MAX_DETAIL_LENGTH = 500\n\nexport const MessageReportScreenOptions = ({\n navigation,\n route,\n}: NativeStackScreenProps<any>): NativeStackNavigationOptions => {\n const handleClose = () =>\n navigation.dispatch(\n StackActions.popTo(\n 'Conversation',\n { conversation_id: route.params?.conversation_id },\n { merge: true }\n )\n )\n\n return composeOptions(\n { presentation: 'modal', title: 'Report message' },\n withLeftClose({ onPress: handleClose })\n )\n}\n\nexport type MessageReportScreenProps = StaticScreenProps<{\n conversation_id: number\n message_id: string\n}>\n\nexport function MessageReportScreen({ route }: MessageReportScreenProps) {\n const { conversation_id, message_id } = route.params\n\n const { messages } = useConversationMessages({ conversation_id }, { refetchOnMount: false })\n const message = messages.find(m => m.id === message_id)\n\n if (!message) return null\n\n return <MessageReportScreenContent message={message} conversation_id={conversation_id} />\n}\n\nfunction MessageReportScreenContent({\n message,\n conversation_id,\n}: {\n message: MessageResource\n conversation_id: number\n}) {\n const styles = useStyles()\n const navigation = useNavigation()\n const [selectedReason, setSelectedReason] = useState<MessageReportReason | null>(null)\n const [reasonDetail, setReasonDetail] = useState('')\n const { mutate: submitReport, status } = useReportMessage(conversation_id, message.id)\n\n const handleReasonChange = useCallback((reason: MessageReportReason) => {\n setSelectedReason(reason)\n\n if (reason !== 'other') {\n setReasonDetail('')\n }\n }, [])\n\n const isFormValid = useMemo(() => {\n if (selectedReason === null) return false\n\n if (selectedReason === 'other' && reasonDetail.trim().length === 0) {\n return false\n }\n\n if (status === 'pending') return false\n\n return true\n }, [selectedReason, reasonDetail, status])\n\n const handleSubmit = useCallback(() => {\n if (!isFormValid || !selectedReason) return\n\n submitReport({\n reason: selectedReason,\n reasonDetail: selectedReason === 'other' ? reasonDetail : undefined,\n })\n }, [isFormValid, selectedReason, reasonDetail, submitReport])\n\n const handleClose = useCallback(() => {\n navigation.dispatch(StackActions.popTo('Conversation', { conversation_id }, { merge: true }))\n }, [navigation, conversation_id])\n\n const formVisible = status !== 'pending' && status !== 'success'\n\n useHeaderRight({\n icon: 'general.upArrow',\n accessibilityLabel: 'Submit',\n prominent: true,\n onPress: handleSubmit,\n disabled: !isFormValid,\n enabled: formVisible,\n })\n\n useLayoutEffect(() => {\n if (formVisible) {\n navigation.setOptions({ headerTitle: 'Report message' })\n }\n }, [formVisible, navigation])\n\n if (status === 'pending') {\n return (\n <View style={styles.fullScreenContainer}>\n <Spinner />\n <Text style={styles.loadingText}>Submitting report...</Text>\n </View>\n )\n }\n\n if (status === 'success') {\n return (\n <View style={styles.fullScreenContainer}>\n <BlankState.Root>\n <BlankState.Imagery name=\"general.checkCircle\" style={styles.successIcon} />\n <BlankState.Content>\n <BlankState.Heading style={styles.successTitle}>Message reported</BlankState.Heading>\n <BlankState.Text style={styles.successSubtitle}>\n The message has been reported and a church leader will be contacted.\n </BlankState.Text>\n </BlankState.Content>\n <BlankState.Button title=\"Close\" onPress={handleClose} size=\"lg\" variant=\"fill\" />\n </BlankState.Root>\n </View>\n )\n }\n\n if (status === 'error') {\n return (\n <BlankState.Root>\n <BlankState.Imagery name=\"general.exclamationTriangle\" />\n <BlankState.Content>\n <BlankState.Heading>Unable to submit report</BlankState.Heading>\n <BlankState.Text>\n We were unable to report this message. Please try again.\n </BlankState.Text>\n </BlankState.Content>\n <BlankState.Button title=\"Close\" onPress={handleClose} size=\"lg\" variant=\"outline\" />\n </BlankState.Root>\n )\n }\n\n return (\n <KeyboardScrollView contentContainerStyle={styles.container}>\n <Text style={styles.warningText} maxFontSizeMultiplier={1.5}>\n Reporting this message will notify a church leader. The person you are reporting will not\n receive a notification from Church Center. If someone is in immediate danger, call local\n emergency services. Don't wait.\n </Text>\n\n <MessagePreview message={message} />\n\n <View style={styles.reasonSection}>\n <Text style={styles.fieldLabel}>\n What best describes the problem? <Text style={styles.required}>*</Text>\n </Text>\n\n <View style={styles.reasonListContainer}>\n <ReportReasonList selectedReason={selectedReason} onReasonChange={handleReasonChange} />\n </View>\n </View>\n\n {selectedReason === 'other' && (\n <View style={styles.detailSection}>\n <Text style={styles.fieldLabel}>\n Please provide more details <Text style={styles.required}>*</Text>\n </Text>\n <TextInput\n style={styles.textInput}\n multiline\n placeholder=\"Describe the issue...\"\n value={reasonDetail}\n onChangeText={setReasonDetail}\n maxLength={MAX_DETAIL_LENGTH}\n accessibilityLabel=\"Additional details\"\n accessibilityHint=\"Provide more information about why you're reporting this message\"\n />\n {reasonDetail.length >= MAX_DETAIL_LENGTH - 100 && (\n <Text variant=\"footnote\">\n {reasonDetail.length}/{MAX_DETAIL_LENGTH}\n </Text>\n )}\n </View>\n )}\n </KeyboardScrollView>\n )\n}\n\nconst useStyles = () => {\n const { bottom } = useSafeAreaInsets()\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n padding: 16,\n paddingBottom: 16 + bottom,\n gap: 24,\n },\n fullHeight: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n fullScreenContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: colors.surfaceColor100,\n },\n loadingText: {\n marginTop: 16,\n fontSize: 16,\n fontWeight: '600',\n color: colors.textColorDefaultPrimary,\n },\n warningText: {\n fontSize: 14,\n lineHeight: 20,\n color: colors.textColorDefaultSecondary,\n },\n reasonSection: {\n gap: 8,\n },\n fieldLabel: {\n fontSize: 16,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n required: {\n color: colors.statusErrorText,\n },\n reasonListContainer: {\n backgroundColor: colors.surfaceColor100,\n },\n detailSection: {\n gap: 8,\n },\n textInput: {\n color: colors.textColorDefaultPrimary,\n fontSize: 16,\n textAlignVertical: 'top',\n minHeight: 120,\n maxHeight: 200,\n borderWidth: 1,\n borderColor: colors.borderColorDefaultBase,\n borderRadius: 8,\n paddingHorizontal: 16,\n paddingVertical: 12,\n backgroundColor: colors.surfaceColor100,\n },\n successIcon: {\n color: colors.statusSuccessIcon,\n fontSize: 48,\n },\n successTitle: {\n fontSize: 24,\n marginBottom: 4,\n },\n successSubtitle: {\n fontSize: 16,\n marginBottom: 4,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"message_report_screen.js","names":["useNavigation","StackActions","React","useCallback","useLayoutEffect","useMemo","useState","View","StyleSheet","TextInput","useSafeAreaInsets","Spinner","Text","KeyboardScrollView","composeOptions","useHeaderRight","withLeftClose","BlankState","useTheme","useConversationMessageLookup","useReportMessage","platformFontWeightBold","MessagePreview","ReportReasonList","jsx","_jsx","jsxs","_jsxs","MAX_DETAIL_LENGTH","MessageReportScreenOptions","navigation","route","handleClose","dispatch","popTo","conversation_id","params","merge","presentation","title","onPress","MessageReportScreen","t0","$","_c","message_id","t1","message","t2","MessageReportScreenContent","styles","useStyles","selectedReason","setSelectedReason","reasonDetail","setReasonDetail","mutate","submitReport","status","id","Symbol","for","reason","handleReasonChange","bb0","trim","length","isFormValid","t3","undefined","handleSubmit","t4","formVisible","t5","t6","icon","accessibilityLabel","prominent","disabled","enabled","t7","t8","setOptions","headerTitle","t9","t10","loadingText","style","children","t11","fullScreenContainer","successIcon","Imagery","name","successTitle","Heading","successSubtitle","t12","Content","t13","Button","size","variant","t14","Root","t15","warningText","maxFontSizeMultiplier","required","fieldLabel","reasonListContainer","reasonSection","t16","detailSection","textInput","multiline","placeholder","accessibilityHint","t17","container","contentContainerStyle","bottom","colors","borderColorDefaultBase","statusErrorText","statusSuccessIcon","surfaceColor100","textColorDefaultPrimary","textColorDefaultSecondary","create","padding","paddingBottom","gap","fullHeight","flex","justifyContent","alignItems","backgroundColor","marginTop","fontSize","fontWeight","color","lineHeight","textAlignVertical","minHeight","maxHeight","borderWidth","borderColor","borderRadius","paddingHorizontal","paddingVertical","marginBottom"],"sources":["../../src/screens/message_report_screen.tsx"],"sourcesContent":["import { StaticScreenProps, useNavigation, StackActions } from '@react-navigation/native'\nimport type {\n NativeStackNavigationOptions,\n NativeStackScreenProps,\n} from '@react-navigation/native-stack'\nimport React, { useCallback, useLayoutEffect, useMemo, useState } from 'react'\nimport { View, StyleSheet, TextInput } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Spinner, Text, KeyboardScrollView } from '../components'\nimport {\n composeOptions,\n useHeaderRight,\n withLeftClose,\n} from '../components/display/platform_modal_header_buttons'\nimport BlankState from '../components/primitive/blank_state_primitive'\nimport { useTheme } from '../hooks'\nimport { useConversationMessageLookup } from '../hooks/use_conversation_message_lookup'\nimport { useReportMessage } from '../hooks/use_report_message'\nimport { MessageResource } from '../types'\nimport { MessageReportReason } from '../types/resources/message_report'\nimport { platformFontWeightBold } from '../utils'\nimport { MessagePreview } from './message_report/components/message_preview'\nimport { ReportReasonList } from './message_report/components/report_reason_list'\n\nconst MAX_DETAIL_LENGTH = 500\n\nexport const MessageReportScreenOptions = ({\n navigation,\n route,\n}: NativeStackScreenProps<any>): NativeStackNavigationOptions => {\n const handleClose = () =>\n navigation.dispatch(\n StackActions.popTo(\n 'Conversation',\n { conversation_id: route.params?.conversation_id },\n { merge: true }\n )\n )\n\n return composeOptions(\n { presentation: 'modal', title: 'Report message' },\n withLeftClose({ onPress: handleClose })\n )\n}\n\nexport type MessageReportScreenProps = StaticScreenProps<{\n conversation_id: number\n message_id: string\n}>\n\nexport function MessageReportScreen({ route }: MessageReportScreenProps) {\n const { conversation_id, message_id } = route.params\n\n const message = useConversationMessageLookup({ conversation_id, message_id })\n\n if (!message) return null\n\n return <MessageReportScreenContent message={message} conversation_id={conversation_id} />\n}\n\nfunction MessageReportScreenContent({\n message,\n conversation_id,\n}: {\n message: MessageResource\n conversation_id: number\n}) {\n const styles = useStyles()\n const navigation = useNavigation()\n const [selectedReason, setSelectedReason] = useState<MessageReportReason | null>(null)\n const [reasonDetail, setReasonDetail] = useState('')\n const { mutate: submitReport, status } = useReportMessage(conversation_id, message.id)\n\n const handleReasonChange = useCallback((reason: MessageReportReason) => {\n setSelectedReason(reason)\n\n if (reason !== 'other') {\n setReasonDetail('')\n }\n }, [])\n\n const isFormValid = useMemo(() => {\n if (selectedReason === null) return false\n\n if (selectedReason === 'other' && reasonDetail.trim().length === 0) {\n return false\n }\n\n if (status === 'pending') return false\n\n return true\n }, [selectedReason, reasonDetail, status])\n\n const handleSubmit = useCallback(() => {\n if (!isFormValid || !selectedReason) return\n\n submitReport({\n reason: selectedReason,\n reasonDetail: selectedReason === 'other' ? reasonDetail : undefined,\n })\n }, [isFormValid, selectedReason, reasonDetail, submitReport])\n\n const handleClose = useCallback(() => {\n navigation.dispatch(StackActions.popTo('Conversation', { conversation_id }, { merge: true }))\n }, [navigation, conversation_id])\n\n const formVisible = status !== 'pending' && status !== 'success'\n\n useHeaderRight({\n icon: 'general.upArrow',\n accessibilityLabel: 'Submit',\n prominent: true,\n onPress: handleSubmit,\n disabled: !isFormValid,\n enabled: formVisible,\n })\n\n useLayoutEffect(() => {\n if (formVisible) {\n navigation.setOptions({ headerTitle: 'Report message' })\n }\n }, [formVisible, navigation])\n\n if (status === 'pending') {\n return (\n <View style={styles.fullScreenContainer}>\n <Spinner />\n <Text style={styles.loadingText}>Submitting report...</Text>\n </View>\n )\n }\n\n if (status === 'success') {\n return (\n <View style={styles.fullScreenContainer}>\n <BlankState.Root>\n <BlankState.Imagery name=\"general.checkCircle\" style={styles.successIcon} />\n <BlankState.Content>\n <BlankState.Heading style={styles.successTitle}>Message reported</BlankState.Heading>\n <BlankState.Text style={styles.successSubtitle}>\n The message has been reported and a church leader will be contacted.\n </BlankState.Text>\n </BlankState.Content>\n <BlankState.Button title=\"Close\" onPress={handleClose} size=\"lg\" variant=\"fill\" />\n </BlankState.Root>\n </View>\n )\n }\n\n if (status === 'error') {\n return (\n <BlankState.Root>\n <BlankState.Imagery name=\"general.exclamationTriangle\" />\n <BlankState.Content>\n <BlankState.Heading>Unable to submit report</BlankState.Heading>\n <BlankState.Text>\n We were unable to report this message. Please try again.\n </BlankState.Text>\n </BlankState.Content>\n <BlankState.Button title=\"Close\" onPress={handleClose} size=\"lg\" variant=\"outline\" />\n </BlankState.Root>\n )\n }\n\n return (\n <KeyboardScrollView contentContainerStyle={styles.container}>\n <Text style={styles.warningText} maxFontSizeMultiplier={1.5}>\n Reporting this message will notify a church leader. The person you are reporting will not\n receive a notification from Church Center. If someone is in immediate danger, call local\n emergency services. Don't wait.\n </Text>\n\n <MessagePreview message={message} />\n\n <View style={styles.reasonSection}>\n <Text style={styles.fieldLabel}>\n What best describes the problem? <Text style={styles.required}>*</Text>\n </Text>\n\n <View style={styles.reasonListContainer}>\n <ReportReasonList selectedReason={selectedReason} onReasonChange={handleReasonChange} />\n </View>\n </View>\n\n {selectedReason === 'other' && (\n <View style={styles.detailSection}>\n <Text style={styles.fieldLabel}>\n Please provide more details <Text style={styles.required}>*</Text>\n </Text>\n <TextInput\n style={styles.textInput}\n multiline\n placeholder=\"Describe the issue...\"\n value={reasonDetail}\n onChangeText={setReasonDetail}\n maxLength={MAX_DETAIL_LENGTH}\n accessibilityLabel=\"Additional details\"\n accessibilityHint=\"Provide more information about why you're reporting this message\"\n />\n {reasonDetail.length >= MAX_DETAIL_LENGTH - 100 && (\n <Text variant=\"footnote\">\n {reasonDetail.length}/{MAX_DETAIL_LENGTH}\n </Text>\n )}\n </View>\n )}\n </KeyboardScrollView>\n )\n}\n\nconst useStyles = () => {\n const { bottom } = useSafeAreaInsets()\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n padding: 16,\n paddingBottom: 16 + bottom,\n gap: 24,\n },\n fullHeight: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n fullScreenContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: colors.surfaceColor100,\n },\n loadingText: {\n marginTop: 16,\n fontSize: 16,\n fontWeight: '600',\n color: colors.textColorDefaultPrimary,\n },\n warningText: {\n fontSize: 14,\n lineHeight: 20,\n color: colors.textColorDefaultSecondary,\n },\n reasonSection: {\n gap: 8,\n },\n fieldLabel: {\n fontSize: 16,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n required: {\n color: colors.statusErrorText,\n },\n reasonListContainer: {\n backgroundColor: colors.surfaceColor100,\n },\n detailSection: {\n gap: 8,\n },\n textInput: {\n color: colors.textColorDefaultPrimary,\n fontSize: 16,\n textAlignVertical: 'top',\n minHeight: 120,\n maxHeight: 200,\n borderWidth: 1,\n borderColor: colors.borderColorDefaultBase,\n borderRadius: 8,\n paddingHorizontal: 16,\n paddingVertical: 12,\n backgroundColor: colors.surfaceColor100,\n },\n successIcon: {\n color: colors.statusSuccessIcon,\n fontSize: 48,\n },\n successTitle: {\n fontSize: 24,\n marginBottom: 4,\n },\n successSubtitle: {\n fontSize: 16,\n marginBottom: 4,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactions_screen.d.ts","sourceRoot":"","sources":["../../src/screens/reactions_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAe5D,eAAO,MAAM,sBAAsB,6EAMjC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA;AAEF,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"reactions_screen.d.ts","sourceRoot":"","sources":["../../src/screens/reactions_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAe5D,eAAO,MAAM,sBAAsB,6EAMjC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA;AAEF,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAgE7D"}
|
|
@@ -7,7 +7,7 @@ import { Avatar, Text } from '../components';
|
|
|
7
7
|
import { Tabs } from '../components/display/tabs';
|
|
8
8
|
import FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet';
|
|
9
9
|
import { useSuspenseGet, useTheme } from '../hooks';
|
|
10
|
-
import {
|
|
10
|
+
import { useConversationMessageLookup } from '../hooks/use_conversation_message_lookup';
|
|
11
11
|
import { useFontScale } from '../hooks/use_font_scale';
|
|
12
12
|
import { platformFontWeightMedium, REACTION_EMOJIS } from '../utils';
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -20,7 +20,7 @@ export const ReactionsScreenOptions = getFormSheetScreenOptions({
|
|
|
20
20
|
headerTitle: 'Reactions'
|
|
21
21
|
});
|
|
22
22
|
export function ReactionsScreen(t0) {
|
|
23
|
-
const $ = _c(
|
|
23
|
+
const $ = _c(26);
|
|
24
24
|
const {
|
|
25
25
|
route
|
|
26
26
|
} = t0;
|
|
@@ -31,48 +31,30 @@ export function ReactionsScreen(t0) {
|
|
|
31
31
|
} = route.params;
|
|
32
32
|
const styles = useStyles();
|
|
33
33
|
let t1;
|
|
34
|
-
if ($[0] !== conversation_id) {
|
|
34
|
+
if ($[0] !== conversation_id || $[1] !== message_id) {
|
|
35
35
|
t1 = {
|
|
36
|
-
conversation_id
|
|
36
|
+
conversation_id,
|
|
37
|
+
message_id
|
|
37
38
|
};
|
|
38
39
|
$[0] = conversation_id;
|
|
39
|
-
$[1] =
|
|
40
|
+
$[1] = message_id;
|
|
41
|
+
$[2] = t1;
|
|
40
42
|
} else {
|
|
41
|
-
t1 = $[
|
|
43
|
+
t1 = $[2];
|
|
42
44
|
}
|
|
43
|
-
|
|
44
|
-
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
45
|
-
t2 = {
|
|
46
|
-
refetchOnMount: false
|
|
47
|
-
};
|
|
48
|
-
$[2] = t2;
|
|
49
|
-
} else {
|
|
50
|
-
t2 = $[2];
|
|
51
|
-
}
|
|
52
|
-
const {
|
|
53
|
-
messages
|
|
54
|
-
} = useConversationMessages(t1, t2);
|
|
55
|
-
let t3;
|
|
56
|
-
if ($[3] !== message_id) {
|
|
57
|
-
t3 = m => m.id === message_id;
|
|
58
|
-
$[3] = message_id;
|
|
59
|
-
$[4] = t3;
|
|
60
|
-
} else {
|
|
61
|
-
t3 = $[4];
|
|
62
|
-
}
|
|
63
|
-
const message = messages.find(t3);
|
|
45
|
+
const message = useConversationMessageLookup(t1);
|
|
64
46
|
const reactionCounts = message?.reactionCounts || [];
|
|
65
47
|
const initialReactionCount = reactionCounts.find(r => r.value === reaction_value) || reactionCounts[0];
|
|
66
48
|
const [reactionCountValue, setReactionCountValue] = React.useState(initialReactionCount?.value);
|
|
67
|
-
let
|
|
68
|
-
if ($[
|
|
69
|
-
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
49
|
+
let t2;
|
|
50
|
+
if ($[3] !== reactionCountValue) {
|
|
51
|
+
t2 = r_0 => r_0.value === reactionCountValue;
|
|
52
|
+
$[3] = reactionCountValue;
|
|
53
|
+
$[4] = t2;
|
|
72
54
|
} else {
|
|
73
|
-
|
|
55
|
+
t2 = $[4];
|
|
74
56
|
}
|
|
75
|
-
const reactionCount = reactionCounts.find(
|
|
57
|
+
const reactionCount = reactionCounts.find(t2);
|
|
76
58
|
const authorIds = reactionCount?.authorIds || [];
|
|
77
59
|
const {
|
|
78
60
|
data: members
|
|
@@ -89,103 +71,103 @@ export function ReactionsScreen(t0) {
|
|
|
89
71
|
}
|
|
90
72
|
});
|
|
91
73
|
if (!reactionCount) {
|
|
92
|
-
let
|
|
93
|
-
if ($[
|
|
94
|
-
|
|
74
|
+
let t3;
|
|
75
|
+
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
76
|
+
t3 = /*#__PURE__*/_jsx(Text, {
|
|
95
77
|
children: "No reactions found for this message."
|
|
96
78
|
});
|
|
97
|
-
$[
|
|
79
|
+
$[5] = t3;
|
|
98
80
|
} else {
|
|
99
|
-
|
|
81
|
+
t3 = $[5];
|
|
100
82
|
}
|
|
101
|
-
let
|
|
102
|
-
if ($[
|
|
103
|
-
|
|
83
|
+
let t4;
|
|
84
|
+
if ($[6] !== styles.errorContainer) {
|
|
85
|
+
t4 = /*#__PURE__*/_jsx(View, {
|
|
104
86
|
style: styles.errorContainer,
|
|
105
|
-
children:
|
|
87
|
+
children: t3
|
|
106
88
|
});
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
89
|
+
$[6] = styles.errorContainer;
|
|
90
|
+
$[7] = t4;
|
|
109
91
|
} else {
|
|
110
|
-
|
|
92
|
+
t4 = $[7];
|
|
111
93
|
}
|
|
112
|
-
return
|
|
94
|
+
return t4;
|
|
113
95
|
}
|
|
114
96
|
const authors = members.filter(member => authorIds.includes(member.id));
|
|
115
|
-
let
|
|
116
|
-
if ($[
|
|
117
|
-
|
|
97
|
+
let t3;
|
|
98
|
+
if ($[8] !== setReactionCountValue) {
|
|
99
|
+
t3 = item => {
|
|
118
100
|
setReactionCountValue(item.value);
|
|
119
101
|
};
|
|
120
|
-
$[
|
|
121
|
-
$[
|
|
102
|
+
$[8] = setReactionCountValue;
|
|
103
|
+
$[9] = t3;
|
|
122
104
|
} else {
|
|
123
|
-
|
|
105
|
+
t3 = $[9];
|
|
124
106
|
}
|
|
125
|
-
let
|
|
126
|
-
if ($[
|
|
127
|
-
|
|
107
|
+
let t4;
|
|
108
|
+
if ($[10] !== reactionCount.id || $[11] !== setReactionCountValue) {
|
|
109
|
+
t4 = t5 => {
|
|
128
110
|
const {
|
|
129
111
|
item: item_0
|
|
130
|
-
} =
|
|
112
|
+
} = t5;
|
|
131
113
|
return /*#__PURE__*/_jsx(Reaction, {
|
|
132
114
|
active: reactionCount.id === item_0.id,
|
|
133
115
|
reaction: item_0,
|
|
134
116
|
onPress: () => setReactionCountValue(item_0.value)
|
|
135
117
|
});
|
|
136
118
|
};
|
|
137
|
-
$[
|
|
138
|
-
$[
|
|
139
|
-
$[
|
|
119
|
+
$[10] = reactionCount.id;
|
|
120
|
+
$[11] = setReactionCountValue;
|
|
121
|
+
$[12] = t4;
|
|
140
122
|
} else {
|
|
141
|
-
|
|
123
|
+
t4 = $[12];
|
|
142
124
|
}
|
|
143
|
-
let
|
|
144
|
-
if ($[
|
|
145
|
-
|
|
125
|
+
let t5;
|
|
126
|
+
if ($[13] !== reactionCount || $[14] !== reactionCounts || $[15] !== styles.actions || $[16] !== t3 || $[17] !== t4) {
|
|
127
|
+
t5 = /*#__PURE__*/_jsx(Tabs, {
|
|
146
128
|
data: reactionCounts,
|
|
147
129
|
activeTab: reactionCount,
|
|
148
|
-
onTabPress:
|
|
149
|
-
renderItem:
|
|
130
|
+
onTabPress: t3,
|
|
131
|
+
renderItem: t4,
|
|
150
132
|
style: styles.actions
|
|
151
133
|
});
|
|
152
|
-
$[
|
|
153
|
-
$[
|
|
154
|
-
$[
|
|
134
|
+
$[13] = reactionCount;
|
|
135
|
+
$[14] = reactionCounts;
|
|
136
|
+
$[15] = styles.actions;
|
|
137
|
+
$[16] = t3;
|
|
138
|
+
$[17] = t4;
|
|
155
139
|
$[18] = t5;
|
|
156
|
-
$[19] = t6;
|
|
157
|
-
$[20] = t7;
|
|
158
140
|
} else {
|
|
159
|
-
|
|
141
|
+
t5 = $[18];
|
|
160
142
|
}
|
|
161
|
-
let
|
|
162
|
-
if ($[
|
|
163
|
-
|
|
143
|
+
let t6;
|
|
144
|
+
if ($[19] !== authors || $[20] !== styles.contentContainer) {
|
|
145
|
+
t6 = /*#__PURE__*/_jsx(FlatList, {
|
|
164
146
|
data: authors,
|
|
165
147
|
contentContainerStyle: styles.contentContainer,
|
|
166
148
|
keyExtractor: _temp,
|
|
167
149
|
renderItem: _temp2
|
|
168
150
|
});
|
|
169
|
-
$[
|
|
170
|
-
$[
|
|
171
|
-
$[
|
|
151
|
+
$[19] = authors;
|
|
152
|
+
$[20] = styles.contentContainer;
|
|
153
|
+
$[21] = t6;
|
|
172
154
|
} else {
|
|
173
|
-
|
|
155
|
+
t6 = $[21];
|
|
174
156
|
}
|
|
175
|
-
let
|
|
176
|
-
if ($[
|
|
177
|
-
|
|
157
|
+
let t7;
|
|
158
|
+
if ($[22] !== styles.formSheetContent || $[23] !== t5 || $[24] !== t6) {
|
|
159
|
+
t7 = /*#__PURE__*/_jsxs(FormSheet.Root, {
|
|
178
160
|
contentStyle: styles.formSheetContent,
|
|
179
|
-
children: [
|
|
161
|
+
children: [t5, t6]
|
|
180
162
|
});
|
|
181
|
-
$[
|
|
163
|
+
$[22] = styles.formSheetContent;
|
|
164
|
+
$[23] = t5;
|
|
165
|
+
$[24] = t6;
|
|
182
166
|
$[25] = t7;
|
|
183
|
-
$[26] = t8;
|
|
184
|
-
$[27] = t9;
|
|
185
167
|
} else {
|
|
186
|
-
|
|
168
|
+
t7 = $[25];
|
|
187
169
|
}
|
|
188
|
-
return
|
|
170
|
+
return t7;
|
|
189
171
|
}
|
|
190
172
|
function _temp2(t0) {
|
|
191
173
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactions_screen.js","names":["React","memo","Platform","StyleSheet","View","FlatList","useSafeAreaInsets","Avatar","Text","Tabs","FormSheet","getFormSheetScreenOptions","useSuspenseGet","useTheme","useConversationMessages","useFontScale","platformFontWeightMedium","REACTION_EMOJIS","jsx","_jsx","jsxs","_jsxs","ReactionsScreenOptions","sheetAllowedDetents","select","android","default","headerTitle","ReactionsScreen","t0","$","_c","route","conversation_id","message_id","reaction_value","params","styles","useStyles","t1","t2","Symbol","for","refetchOnMount","messages","t3","m","id","message","find","reactionCounts","initialReactionCount","r","value","reactionCountValue","setReactionCountValue","useState","t4","r_0","reactionCount","authorIds","data","members","url","fields","Member","where","limit","length","t5","children","t6","errorContainer","style","authors","filter","member","includes","item","t7","item_0","Reaction","active","onPress","actions","onTabPress","renderItem","t8","contentContainer","contentContainerStyle","keyExtractor","_temp","_temp2","t9","formSheetContent","Root","contentStyle","author","Author","item_1","toString","reaction","reactionContent","count","avatar","sourceUri","size","name","authorName","variant","numberOfLines","authorRow","TABS_HEIGHT","colors","bottom","maxFontSizeMultiplier","fontScale","borderColorDefaultBase","create","paddingTop","paddingBottom","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","flex","fontSize","fontWeight","minHeight","borderBottomColor","borderBottomWidth","justifyContent","padding","marginTop"],"sources":["../../src/screens/reactions_screen.tsx"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React, { memo } from 'react'\nimport { Platform, StyleSheet, View } from 'react-native'\nimport { FlatList } from 'react-native-gesture-handler'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Avatar, Text } from '../components'\nimport { Tabs } from '../components/display/tabs'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useSuspenseGet, useTheme } from '../hooks'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { useFontScale } from '../hooks/use_font_scale'\nimport { MemberResource } from '../types'\nimport { ReactionCountResource } from '../types/resources/reaction'\nimport { platformFontWeightMedium, REACTION_EMOJIS } from '../utils'\n\nexport const ReactionsScreenOptions = getFormSheetScreenOptions({\n sheetAllowedDetents: Platform.select({\n android: [0.5, 0.94], // Going straight to full 0.94 preserves height of screen on Android\n default: [0.5, 1],\n }),\n headerTitle: 'Reactions',\n})\n\nexport type ReactionScreenProps = StaticScreenProps<{\n message_id: string\n conversation_id: number\n reaction_value?: string\n}>\n\nexport function ReactionsScreen({ route }: ReactionScreenProps) {\n const { conversation_id, message_id, reaction_value } = route.params\n const styles = useStyles()\n\n const { messages } = useConversationMessages({ conversation_id }, { refetchOnMount: false })\n\n const message = messages.find(m => m.id === message_id)\n const reactionCounts = message?.reactionCounts || []\n const initialReactionCount =\n reactionCounts.find(r => r.value === reaction_value) || reactionCounts[0]\n const [reactionCountValue, setReactionCountValue] = React.useState<\n ReactionCountResource['value']\n >(initialReactionCount?.value)\n const reactionCount = reactionCounts.find(r => r.value === reactionCountValue)\n\n // Get author IDs for the API call, ensuring we have a valid array\n const authorIds = reactionCount?.authorIds || []\n\n const { data: members } = useSuspenseGet<MemberResource[]>({\n url: `/me/conversations/${conversation_id}/members`,\n data: {\n fields: {\n Member: ['id', 'name', 'avatar', 'badges', 'child', 'role'],\n },\n where: {\n id: authorIds,\n },\n limit: authorIds.length,\n },\n })\n\n if (!reactionCount) {\n return (\n <View style={styles.errorContainer}>\n <Text>No reactions found for this message.</Text>\n </View>\n )\n }\n\n const authors = members.filter(member => authorIds.includes(member.id))\n\n return (\n <FormSheet.Root contentStyle={styles.formSheetContent}>\n <Tabs\n data={reactionCounts}\n activeTab={reactionCount}\n onTabPress={item => {\n setReactionCountValue(item.value)\n }}\n renderItem={({ item }) => (\n <Reaction\n active={reactionCount.id === item.id}\n reaction={item}\n onPress={() => setReactionCountValue(item.value)}\n />\n )}\n style={styles.actions}\n />\n <FlatList\n data={authors}\n contentContainerStyle={styles.contentContainer}\n keyExtractor={item => item.id.toString()}\n renderItem={({ item: author }) => <Author author={author} key={author.id} />}\n />\n </FormSheet.Root>\n )\n}\n\nconst Reaction = ({\n reaction,\n}: {\n active: boolean\n reaction: ReactionCountResource\n onPress: () => void\n}) => {\n const styles = useStyles()\n\n return (\n <View key={reaction.value} style={styles.reaction}>\n <Text style={styles.reactionContent}>{REACTION_EMOJIS[reaction.value]}</Text>\n <Text style={styles.reactionContent}>{reaction.count}</Text>\n </View>\n )\n}\n\ntype AuthorProps = Pick<MemberResource, 'id' | 'name' | 'avatar'>\n\nconst Author = memo(({ author }: { author: AuthorProps }) => {\n const styles = useStyles()\n\n return (\n <View style={styles.authorRow}>\n <Avatar sourceUri={author.avatar} size=\"sm\" />\n <Text variant=\"tertiary\" numberOfLines={2} style={styles.authorName}>\n {author.name}\n </Text>\n </View>\n )\n})\n\nconst TABS_HEIGHT = 67\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const { bottom } = useSafeAreaInsets()\n const fontScale = useFontScale({ maxFontSizeMultiplier: 1.3 })\n\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n contentContainer: {\n paddingTop: 8,\n paddingBottom: bottom + Platform.select({ android: 24, default: TABS_HEIGHT + 24 }),\n },\n authorRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n paddingVertical: 8,\n paddingHorizontal: 16,\n flex: 1,\n },\n authorName: {\n flex: 1,\n },\n reaction: {\n paddingHorizontal: 8,\n paddingVertical: 16,\n flexDirection: 'row',\n gap: 4,\n },\n reactionContent: {\n fontSize: 18,\n fontWeight: platformFontWeightMedium,\n },\n actions: {\n minHeight: 68 * fontScale,\n borderBottomColor: colors.borderColorDefaultBase,\n borderBottomWidth: 1,\n },\n errorContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n padding: 16,\n marginTop: 30,\n },\n })\n}\n"],"mappings":";AACA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACzD,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,MAAM,EAAEC,IAAI,QAAQ,eAAe;AAC5C,SAASC,IAAI,QAAQ,4BAA4B;AACjD,OAAOC,SAAS,IAAIC,yBAAyB,QAAQ,oCAAoC;AACzF,SAASC,cAAc,EAAEC,QAAQ,QAAQ,UAAU;AACnD,SAASC,uBAAuB,QAAQ,oCAAoC;AAC5E,SAASC,YAAY,QAAQ,yBAAyB;AAGtD,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,UAAU;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpE,OAAO,MAAMC,sBAAsB,GAAGX,yBAAyB,CAAC;EAC9DY,mBAAmB,EAAErB,QAAQ,CAACsB,MAAM,CAAC;IACnCC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;IAAE;IACtBC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;EAClB,CAAC,CAAC;EACFC,WAAW,EAAE;AACf,CAAC,CAAC;AAQF,OAAO,SAAAC,gBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAyB;IAAAC;EAAA,IAAAH,EAA8B;EAC5D;IAAAI,eAAA;IAAAC,UAAA;IAAAC;EAAA,IAAwDH,KAAK,CAAAI,MAAO;EACpE,MAAAC,MAAA,GAAeC,SAAS,CAAC,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAT,CAAA,QAAAG,eAAA;IAEmBM,EAAA;MAAAN;IAAkB,CAAC;IAAAH,CAAA,MAAAG,eAAA;IAAAH,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAA,IAAAU,EAAA;EAAA,IAAAV,CAAA,QAAAW,MAAA,CAAAC,GAAA;IAAEF,EAAA;MAAAG,cAAA,EAAkB;IAAM,CAAC;IAAAb,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAA3F;IAAAc;EAAA,IAAqB9B,uBAAuB,CAACyB,EAAmB,EAAEC,EAAyB,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAf,CAAA,QAAAI,UAAA;IAE9DW,EAAA,GAAAC,CAAA,IAAKA,CAAC,CAAAC,EAAG,KAAKb,UAAU;IAAAJ,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAtD,MAAAkB,OAAA,GAAgBJ,QAAQ,CAAAK,IAAK,CAACJ,EAAwB,CAAC;EACvD,MAAAK,cAAA,GAAuBF,OAAO,EAAAE,cAAsB,IAA7B,EAA6B;EACpD,MAAAC,oBAAA,GACED,cAAc,CAAAD,IAAK,CAACG,CAAA,IAAKA,CAAC,CAAAC,KAAM,KAAKlB,cAAmC,CAAC,IAAjBe,cAAc,GAAG;EAC3E,OAAAI,kBAAA,EAAAC,qBAAA,IAAoDvD,KAAK,CAAAwD,QAAS,CAEhEL,oBAAoB,EAAAE,KAAO,CAAC;EAAA,IAAAI,EAAA;EAAA,IAAA3B,CAAA,QAAAwB,kBAAA;IACYG,EAAA,GAAAC,GAAA,IAAKN,GAAC,CAAAC,KAAM,KAAKC,kBAAkB;IAAAxB,CAAA,MAAAwB,kBAAA;IAAAxB,CAAA,MAAA2B,EAAA;EAAA;IAAAA,EAAA,GAAA3B,CAAA;EAAA;EAA7E,MAAA6B,aAAA,GAAsBT,cAAc,CAAAD,IAAK,CAACQ,EAAmC,CAAC;EAG9E,MAAAG,SAAA,GAAkBD,aAAa,EAAAC,SAAiB,IAA9B,EAA8B;EAEhD;IAAAC,IAAA,EAAAC;EAAA,IAA0BlD,cAAc,CAAmB;IAAAmD,GAAA,EACpD,qBAAqB9B,eAAe,UAAU;IAAA4B,IAAA,EAC7C;MAAAG,MAAA,EACI;QAAAC,MAAA,EACE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;MAC5D,CAAC;MAAAC,KAAA,EACM;QAAAnB,EAAA,EACDa;MACN,CAAC;MAAAO,KAAA,EACMP,SAAS,CAAAQ;IAClB;EACF,CAAC,CAAC;EAEF,IAAI,CAACT,aAAa;IAAA,IAAAU,EAAA;IAAA,IAAAvC,CAAA,QAAAW,MAAA,CAAAC,GAAA;MAGZ2B,EAAA,gBAAAlD,IAAA,CAACX,IAAI;QAAA8D,QAAA,EAAC;MAAoC,CAAM,CAAC;MAAAxC,CAAA,MAAAuC,EAAA;IAAA;MAAAA,EAAA,GAAAvC,CAAA;IAAA;IAAA,IAAAyC,EAAA;IAAA,IAAAzC,CAAA,QAAAO,MAAA,CAAAmC,cAAA;MADnDD,EAAA,gBAAApD,IAAA,CAACf,IAAI;QAAQqE,KAAqB,EAArBpC,MAAM,CAAAmC,cAAe;QAAAF,QAAA,EAChCD;MAAiD,CAC7C,CAAC;MAAAvC,CAAA,MAAAO,MAAA,CAAAmC,cAAA;MAAA1C,CAAA,MAAAyC,EAAA;IAAA;MAAAA,EAAA,GAAAzC,CAAA;IAAA;IAAA,OAFPyC,EAEO;EAAA;EAIX,MAAAG,OAAA,GAAgBZ,OAAO,CAAAa,MAAO,CAACC,MAAA,IAAUhB,SAAS,CAAAiB,QAAS,CAACD,MAAM,CAAA7B,EAAG,CAAC,CAAC;EAAA,IAAAsB,EAAA;EAAA,IAAAvC,CAAA,SAAAyB,qBAAA;IAOrDc,EAAA,GAAAS,IAAA;MACVvB,qBAAqB,CAACuB,IAAI,CAAAzB,KAAM,CAAC;IAAA,CAClC;IAAAvB,CAAA,OAAAyB,qBAAA;IAAAzB,CAAA,OAAAuC,EAAA;EAAA;IAAAA,EAAA,GAAAvC,CAAA;EAAA;EAAA,IAAAyC,EAAA;EAAA,IAAAzC,CAAA,SAAA6B,aAAA,CAAAZ,EAAA,IAAAjB,CAAA,SAAAyB,qBAAA;IACWgB,EAAA,GAAAQ,EAAA;MAAC;QAAAD,IAAA,EAAAE;MAAA,IAAAD,EAAQ;MAAA,oBACnB5D,IAAA,CAAC8D,QAAQ;QACCC,MAA4B,EAA5BvB,aAAa,CAAAZ,EAAG,KAAK+B,MAAI,CAAA/B,EAAG;QAC1B+B,QAAI,EAAJA,MAAI;QACLK,OAAuC,EAAvCA,CAAA,KAAM5B,qBAAqB,CAACuB,MAAI,CAAAzB,KAAM;MAAC,CACjD,CAAC;IAAA,CACH;IAAAvB,CAAA,OAAA6B,aAAA,CAAAZ,EAAA;IAAAjB,CAAA,OAAAyB,qBAAA;IAAAzB,CAAA,OAAAyC,EAAA;EAAA;IAAAA,EAAA,GAAAzC,CAAA;EAAA;EAAA,IAAAiD,EAAA;EAAA,IAAAjD,CAAA,SAAA6B,aAAA,IAAA7B,CAAA,SAAAoB,cAAA,IAAApB,CAAA,SAAAO,MAAA,CAAA+C,OAAA,IAAAtD,CAAA,SAAAuC,EAAA,IAAAvC,CAAA,SAAAyC,EAAA;IAZHQ,EAAA,gBAAA5D,IAAA,CAACV,IAAI;MACGyC,IAAc,EAAdA,cAAc;MACTS,SAAa,EAAbA,aAAa;MACZ0B,UAEX,EAFWhB,EAEX;MACWiB,UAMX,EANWf,EAMX;MACME,KAAc,EAAdpC,MAAM,CAAA+C;IAAQ,CACtB,CAAC;IAAAtD,CAAA,OAAA6B,aAAA;IAAA7B,CAAA,OAAAoB,cAAA;IAAApB,CAAA,OAAAO,MAAA,CAAA+C,OAAA;IAAAtD,CAAA,OAAAuC,EAAA;IAAAvC,CAAA,OAAAyC,EAAA;IAAAzC,CAAA,OAAAiD,EAAA;EAAA;IAAAA,EAAA,GAAAjD,CAAA;EAAA;EAAA,IAAAyD,EAAA;EAAA,IAAAzD,CAAA,SAAA4C,OAAA,IAAA5C,CAAA,SAAAO,MAAA,CAAAmD,gBAAA;IACFD,EAAA,gBAAApE,IAAA,CAACd,QAAQ;MACDqE,IAAO,EAAPA,OAAO;MACUe,qBAAuB,EAAvBpD,MAAM,CAAAmD,gBAAiB;MAChCE,YAA0B,EAA1BC,KAA0B;MAC5BL,UAAgE,EAAhEM;IAAgE,CAC7E,CAAC;IAAA9D,CAAA,OAAA4C,OAAA;IAAA5C,CAAA,OAAAO,MAAA,CAAAmD,gBAAA;IAAA1D,CAAA,OAAAyD,EAAA;EAAA;IAAAA,EAAA,GAAAzD,CAAA;EAAA;EAAA,IAAA+D,EAAA;EAAA,IAAA/D,CAAA,SAAAO,MAAA,CAAAyD,gBAAA,IAAAhE,CAAA,SAAAiD,EAAA,IAAAjD,CAAA,SAAAyD,EAAA;IArBJM,EAAA,gBAAAxE,KAAA,CAAAX,SAAA,CAAAqF,IAAA;MAA8BC,YAAuB,EAAvB3D,MAAM,CAAAyD,gBAAiB;MAAAxB,QAAA,GACnDS,EAcE,EACFQ,EAKE;IAAA,CACY,CAAC;IAAAzD,CAAA,OAAAO,MAAA,CAAAyD,gBAAA;IAAAhE,CAAA,OAAAiD,EAAA;IAAAjD,CAAA,OAAAyD,EAAA;IAAAzD,CAAA,OAAA+D,EAAA;EAAA;IAAAA,EAAA,GAAA/D,CAAA;EAAA;EAAA,OAtBjB+D,EAsBiB;AAAA;AAhEd,SAAAD,OAAA/D,EAAA;EA8Dc;IAAAiD,IAAA,EAAAmB;EAAA,IAAApE,EAAgB;EAAA,oBAAKV,IAAA,CAAC+E,MAAM;IAASD,MAAM,EAANA;EAAM,GAAOA,MAAM,CAAAlD,EAAM,CAAC;AAAA;AA9D7E,SAAA4C,MAAAQ,MAAA;EAAA,OA6DuBrB,MAAI,CAAA/B,EAAG,CAAAqD,QAAS,CAAC,CAAC;AAAA;AAOhD,MAAMnB,QAAQ,GAAGpD,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAsE;EAAA,IAAAxE,EAMjB;EACC,MAAAQ,MAAA,GAAeC,SAAS,CAAC,CAAC;EAIgB,MAAAC,EAAA,GAAAtB,eAAe,CAACoF,QAAQ,CAAAhD,KAAM,CAAC;EAAA,IAAAb,EAAA;EAAA,IAAAV,CAAA,QAAAO,MAAA,CAAAiE,eAAA,IAAAxE,CAAA,QAAAS,EAAA;IAArEC,EAAA,gBAAArB,IAAA,CAACX,IAAI;MAAQiE,KAAsB,EAAtBpC,MAAM,CAAAiE,eAAgB;MAAAhC,QAAA,EAAG/B;IAA+B,CAAO,CAAC;IAAAT,CAAA,MAAAO,MAAA,CAAAiE,eAAA;IAAAxE,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAuE,QAAA,CAAAE,KAAA,IAAAzE,CAAA,QAAAO,MAAA,CAAAiE,eAAA;IAC7EzD,EAAA,gBAAA1B,IAAA,CAACX,IAAI;MAAQiE,KAAsB,EAAtBpC,MAAM,CAAAiE,eAAgB;MAAAhC,QAAA,EAAG+B,QAAQ,CAAAE;IAAM,CAAO,CAAC;IAAAzE,CAAA,MAAAuE,QAAA,CAAAE,KAAA;IAAAzE,CAAA,MAAAO,MAAA,CAAAiE,eAAA;IAAAxE,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAA2B,EAAA;EAAA,IAAA3B,CAAA,QAAAuE,QAAA,CAAAhD,KAAA,IAAAvB,CAAA,QAAAO,MAAA,CAAAgE,QAAA,IAAAvE,CAAA,QAAAU,EAAA,IAAAV,CAAA,QAAAe,EAAA;IAF9DY,EAAA,gBAAApC,KAAA,CAACjB,IAAI;MAA6BqE,KAAe,EAAfpC,MAAM,CAAAgE,QAAS;MAAA/B,QAAA,GAC/C9B,EAA6E,EAC7EK,EAA4D;IAAA,GAFnDwD,QAAQ,CAAAhD,KAGb,CAAC;IAAAvB,CAAA,MAAAuE,QAAA,CAAAhD,KAAA;IAAAvB,CAAA,MAAAO,MAAA,CAAAgE,QAAA;IAAAvE,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAe,EAAA;IAAAf,CAAA,OAAA2B,EAAA;EAAA;IAAAA,EAAA,GAAA3B,CAAA;EAAA;EAAA,OAHP2B,EAGO;AAAA,CAEV;AAID,MAAMyC,MAAM,GAAGjG,IAAI,CAAC4B,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAkE;EAAA,IAAApE,EAAmC;EACtD,MAAAQ,MAAA,GAAeC,SAAS,CAAC,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAT,CAAA,QAAAmE,MAAA,CAAAO,MAAA;IAItBjE,EAAA,gBAAApB,IAAA,CAACZ,MAAM;MAAYkG,SAAa,EAAbR,MAAM,CAAAO,MAAO;MAAOE,IAAI,EAAJ;IAAI,CAAE,CAAC;IAAA5E,CAAA,MAAAmE,MAAA,CAAAO,MAAA;IAAA1E,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAA,IAAAU,EAAA;EAAA,IAAAV,CAAA,QAAAmE,MAAA,CAAAU,IAAA,IAAA7E,CAAA,QAAAO,MAAA,CAAAuE,UAAA;IAC9CpE,EAAA,gBAAArB,IAAA,CAACX,IAAI;MAASqG,OAAU,EAAV,UAAU;MAAgBC,aAAC,EAAD,CAAC;MAASrC,KAAiB,EAAjBpC,MAAM,CAAAuE,UAAW;MAAAtC,QAAA,EAChE2B,MAAM,CAAAU;IAAK,CACR,CAAC;IAAA7E,CAAA,MAAAmE,MAAA,CAAAU,IAAA;IAAA7E,CAAA,MAAAO,MAAA,CAAAuE,UAAA;IAAA9E,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAO,MAAA,CAAA0E,SAAA,IAAAjF,CAAA,QAAAS,EAAA,IAAAT,CAAA,QAAAU,EAAA;IAJTK,EAAA,gBAAAxB,KAAA,CAACjB,IAAI;MAAQqE,KAAgB,EAAhBpC,MAAM,CAAA0E,SAAU;MAAAzC,QAAA,GAC3B/B,EAA8C,EAC9CC,EAEO;IAAA,CACH,CAAC;IAAAV,CAAA,MAAAO,MAAA,CAAA0E,SAAA;IAAAjF,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,OALPe,EAKO;AAAA,CAEV,CAAC;AAEF,MAAMmE,WAAW,GAAG,EAAE;AAEtB,MAAM1E,SAAS,GAAGA,CAAA;EAAA,MAAAR,CAAA,GAAAC,EAAA;EAChB;IAAAkF;EAAA,IAAmBpG,QAAQ,CAAC,CAAC;EAC7B;IAAAqG;EAAA,IAAmB5G,iBAAiB,CAAC,CAAC;EAAA,IAAAuB,EAAA;EAAA,IAAAC,CAAA,QAAAW,MAAA,CAAAC,GAAA;IACPb,EAAA;MAAAsF,qBAAA,EAAyB;IAAI,CAAC;IAAArF,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAA7D,MAAAsF,SAAA,GAAkBrG,YAAY,CAACc,EAA8B,CAAC;EAAA,IAAAU,EAAA;EAAA,IAAAT,CAAA,QAAAoF,MAAA,IAAApF,CAAA,QAAAmF,MAAA,CAAAI,sBAAA,IAAAvF,CAAA,QAAAsF,SAAA;IAAA,IAAA5E,EAAA;IAAA,IAAAV,CAAA,QAAAW,MAAA,CAAAC,GAAA;MAQlCF,EAAA,GAAAtC,QAAQ,CAAAsB,MAAO,CAAC;QAAAC,OAAA,EAAW,EAAE;QAAAC,OAAA,EAAWsF,WAAW,GAAG;MAAG,CAAC,CAAC;MAAAlF,CAAA,MAAAU,EAAA;IAAA;MAAAA,EAAA,GAAAV,CAAA;IAAA;IANhFS,EAAA,GAAApC,UAAU,CAAAmH,MAAO,CAAC;MAAAxB,gBAAA,EACL;QAAAyB,UAAA,EACJ;MACd,CAAC;MAAA/B,gBAAA,EACiB;QAAA+B,UAAA,EACJ,CAAC;QAAAC,aAAA,EACEN,MAAM,GAAG1E;MAC1B,CAAC;MAAAuE,SAAA,EACU;QAAAU,aAAA,EACM,KAAK;QAAAC,UAAA,EACR,QAAQ;QAAAC,GAAA,EACf,CAAC;QAAAC,eAAA,EACW,CAAC;QAAAC,iBAAA,EACC,EAAE;QAAAC,IAAA,EACf;MACR,CAAC;MAAAlB,UAAA,EACW;QAAAkB,IAAA,EACJ;MACR,CAAC;MAAAzB,QAAA,EACS;QAAAwB,iBAAA,EACW,CAAC;QAAAD,eAAA,EACH,EAAE;QAAAH,aAAA,EACJ,KAAK;QAAAE,GAAA,EACf;MACP,CAAC;MAAArB,eAAA,EACgB;QAAAyB,QAAA,EACL,EAAE;QAAAC,UAAA,EACAhH;MACd,CAAC;MAAAoE,OAAA,EACQ;QAAA6C,SAAA,EACI,EAAE,GAAGb,SAAS;QAAAc,iBAAA,EACNjB,MAAM,CAAAI,sBAAuB;QAAAc,iBAAA,EAC7B;MACrB,CAAC;MAAA3D,cAAA,EACe;QAAAsD,IAAA,EACR,CAAC;QAAAM,cAAA,EACS,QAAQ;QAAAV,UAAA,EACZ,QAAQ;QAAAW,OAAA,EACX,EAAE;QAAAC,SAAA,EACA;MACb;IACF,CAAC,CAAC;IAAAxG,CAAA,MAAAoF,MAAA;IAAApF,CAAA,MAAAmF,MAAA,CAAAI,sBAAA;IAAAvF,CAAA,MAAAsF,SAAA;IAAAtF,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAA,OAzCKS,EAyCL;AAAA,CACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"reactions_screen.js","names":["React","memo","Platform","StyleSheet","View","FlatList","useSafeAreaInsets","Avatar","Text","Tabs","FormSheet","getFormSheetScreenOptions","useSuspenseGet","useTheme","useConversationMessageLookup","useFontScale","platformFontWeightMedium","REACTION_EMOJIS","jsx","_jsx","jsxs","_jsxs","ReactionsScreenOptions","sheetAllowedDetents","select","android","default","headerTitle","ReactionsScreen","t0","$","_c","route","conversation_id","message_id","reaction_value","params","styles","useStyles","t1","message","reactionCounts","initialReactionCount","find","r","value","reactionCountValue","setReactionCountValue","useState","t2","r_0","reactionCount","authorIds","data","members","url","fields","Member","where","id","limit","length","t3","Symbol","for","children","t4","errorContainer","style","authors","filter","member","includes","item","t5","item_0","Reaction","active","onPress","actions","onTabPress","renderItem","t6","contentContainer","contentContainerStyle","keyExtractor","_temp","_temp2","t7","formSheetContent","Root","contentStyle","author","Author","item_1","toString","reaction","reactionContent","count","avatar","sourceUri","size","name","authorName","variant","numberOfLines","authorRow","TABS_HEIGHT","colors","bottom","maxFontSizeMultiplier","fontScale","borderColorDefaultBase","create","paddingTop","paddingBottom","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","flex","fontSize","fontWeight","minHeight","borderBottomColor","borderBottomWidth","justifyContent","padding","marginTop"],"sources":["../../src/screens/reactions_screen.tsx"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React, { memo } from 'react'\nimport { Platform, StyleSheet, View } from 'react-native'\nimport { FlatList } from 'react-native-gesture-handler'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Avatar, Text } from '../components'\nimport { Tabs } from '../components/display/tabs'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useSuspenseGet, useTheme } from '../hooks'\nimport { useConversationMessageLookup } from '../hooks/use_conversation_message_lookup'\nimport { useFontScale } from '../hooks/use_font_scale'\nimport { MemberResource } from '../types'\nimport { ReactionCountResource } from '../types/resources/reaction'\nimport { platformFontWeightMedium, REACTION_EMOJIS } from '../utils'\n\nexport const ReactionsScreenOptions = getFormSheetScreenOptions({\n sheetAllowedDetents: Platform.select({\n android: [0.5, 0.94], // Going straight to full 0.94 preserves height of screen on Android\n default: [0.5, 1],\n }),\n headerTitle: 'Reactions',\n})\n\nexport type ReactionScreenProps = StaticScreenProps<{\n message_id: string\n conversation_id: number\n reaction_value?: string\n}>\n\nexport function ReactionsScreen({ route }: ReactionScreenProps) {\n const { conversation_id, message_id, reaction_value } = route.params\n const styles = useStyles()\n\n const message = useConversationMessageLookup({ conversation_id, message_id })\n const reactionCounts = message?.reactionCounts || []\n const initialReactionCount =\n reactionCounts.find(r => r.value === reaction_value) || reactionCounts[0]\n const [reactionCountValue, setReactionCountValue] = React.useState<\n ReactionCountResource['value']\n >(initialReactionCount?.value)\n const reactionCount = reactionCounts.find(r => r.value === reactionCountValue)\n\n // Get author IDs for the API call, ensuring we have a valid array\n const authorIds = reactionCount?.authorIds || []\n\n const { data: members } = useSuspenseGet<MemberResource[]>({\n url: `/me/conversations/${conversation_id}/members`,\n data: {\n fields: {\n Member: ['id', 'name', 'avatar', 'badges', 'child', 'role'],\n },\n where: {\n id: authorIds,\n },\n limit: authorIds.length,\n },\n })\n\n if (!reactionCount) {\n return (\n <View style={styles.errorContainer}>\n <Text>No reactions found for this message.</Text>\n </View>\n )\n }\n\n const authors = members.filter(member => authorIds.includes(member.id))\n\n return (\n <FormSheet.Root contentStyle={styles.formSheetContent}>\n <Tabs\n data={reactionCounts}\n activeTab={reactionCount}\n onTabPress={item => {\n setReactionCountValue(item.value)\n }}\n renderItem={({ item }) => (\n <Reaction\n active={reactionCount.id === item.id}\n reaction={item}\n onPress={() => setReactionCountValue(item.value)}\n />\n )}\n style={styles.actions}\n />\n <FlatList\n data={authors}\n contentContainerStyle={styles.contentContainer}\n keyExtractor={item => item.id.toString()}\n renderItem={({ item: author }) => <Author author={author} key={author.id} />}\n />\n </FormSheet.Root>\n )\n}\n\nconst Reaction = ({\n reaction,\n}: {\n active: boolean\n reaction: ReactionCountResource\n onPress: () => void\n}) => {\n const styles = useStyles()\n\n return (\n <View key={reaction.value} style={styles.reaction}>\n <Text style={styles.reactionContent}>{REACTION_EMOJIS[reaction.value]}</Text>\n <Text style={styles.reactionContent}>{reaction.count}</Text>\n </View>\n )\n}\n\ntype AuthorProps = Pick<MemberResource, 'id' | 'name' | 'avatar'>\n\nconst Author = memo(({ author }: { author: AuthorProps }) => {\n const styles = useStyles()\n\n return (\n <View style={styles.authorRow}>\n <Avatar sourceUri={author.avatar} size=\"sm\" />\n <Text variant=\"tertiary\" numberOfLines={2} style={styles.authorName}>\n {author.name}\n </Text>\n </View>\n )\n})\n\nconst TABS_HEIGHT = 67\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const { bottom } = useSafeAreaInsets()\n const fontScale = useFontScale({ maxFontSizeMultiplier: 1.3 })\n\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n contentContainer: {\n paddingTop: 8,\n paddingBottom: bottom + Platform.select({ android: 24, default: TABS_HEIGHT + 24 }),\n },\n authorRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n paddingVertical: 8,\n paddingHorizontal: 16,\n flex: 1,\n },\n authorName: {\n flex: 1,\n },\n reaction: {\n paddingHorizontal: 8,\n paddingVertical: 16,\n flexDirection: 'row',\n gap: 4,\n },\n reactionContent: {\n fontSize: 18,\n fontWeight: platformFontWeightMedium,\n },\n actions: {\n minHeight: 68 * fontScale,\n borderBottomColor: colors.borderColorDefaultBase,\n borderBottomWidth: 1,\n },\n errorContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n padding: 16,\n marginTop: 30,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { MessageResource } from '../../types';
|
|
3
|
+
export declare const findMessageInCaches: (queryClient: QueryClient, conversation_id: number, message_id: string) => MessageResource | undefined;
|
|
4
|
+
//# sourceMappingURL=find_message_in_caches.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find_message_in_caches.d.ts","sourceRoot":"","sources":["../../../src/utils/cache/find_message_in_caches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAiB,eAAe,EAAE,MAAM,aAAa,CAAA;AAK5D,eAAO,MAAM,mBAAmB,GAC9B,aAAa,WAAW,EACxB,iBAAiB,MAAM,EACvB,YAAY,MAAM,KACjB,eAAe,GAAG,SASpB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getMessagesRequestArgs } from '../request/get_messages';
|
|
2
|
+
export const findMessageInCaches = (queryClient, conversation_id, message_id) => {
|
|
3
|
+
const {
|
|
4
|
+
url
|
|
5
|
+
} = getMessagesRequestArgs({
|
|
6
|
+
conversation_id
|
|
7
|
+
});
|
|
8
|
+
for (const [, data] of queryClient.getQueriesData({
|
|
9
|
+
queryKey: [url]
|
|
10
|
+
})) {
|
|
11
|
+
const found = data?.pages.flatMap(page => page.data).find(message => message.id === message_id);
|
|
12
|
+
if (found) return found;
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=find_message_in_caches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find_message_in_caches.js","names":["getMessagesRequestArgs","findMessageInCaches","queryClient","conversation_id","message_id","url","data","getQueriesData","queryKey","found","pages","flatMap","page","find","message","id","undefined"],"sources":["../../../src/utils/cache/find_message_in_caches.ts"],"sourcesContent":["import { InfiniteData, QueryClient } from '@tanstack/react-query'\nimport { ApiCollection, MessageResource } from '../../types'\nimport { getMessagesRequestArgs } from '../request/get_messages'\n\ntype QueryData = InfiniteData<ApiCollection<MessageResource>>\n\nexport const findMessageInCaches = (\n queryClient: QueryClient,\n conversation_id: number,\n message_id: string\n): MessageResource | undefined => {\n const { url } = getMessagesRequestArgs({ conversation_id })\n\n for (const [, data] of queryClient.getQueriesData<QueryData>({ queryKey: [url] })) {\n const found = data?.pages.flatMap(page => page.data).find(message => message.id === message_id)\n if (found) return found\n }\n\n return undefined\n}\n"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ,yBAAyB;AAIhE,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,WAAwB,EACxBC,eAAuB,EACvBC,UAAkB,KACc;EAChC,MAAM;IAAEC;EAAI,CAAC,GAAGL,sBAAsB,CAAC;IAAEG;EAAgB,CAAC,CAAC;EAE3D,KAAK,MAAM,GAAGG,IAAI,CAAC,IAAIJ,WAAW,CAACK,cAAc,CAAY;IAAEC,QAAQ,EAAE,CAACH,GAAG;EAAE,CAAC,CAAC,EAAE;IACjF,MAAMI,KAAK,GAAGH,IAAI,EAAEI,KAAK,CAACC,OAAO,CAACC,IAAI,IAAIA,IAAI,CAACN,IAAI,CAAC,CAACO,IAAI,CAACC,OAAO,IAAIA,OAAO,CAACC,EAAE,KAAKX,UAAU,CAAC;IAC/F,IAAIK,KAAK,EAAE,OAAOA,KAAK;EACzB;EAEA,OAAOO,SAAS;AAClB,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { MessageResource } from '../../types';
|
|
2
|
-
export declare function optimisticallyUpdateMessage({ conversationId, message, text, replyRootId, }: {
|
|
2
|
+
export declare function optimisticallyUpdateMessage({ conversationId, message, text, replyRootId, queryKey, }: {
|
|
3
3
|
conversationId: number;
|
|
4
4
|
message: MessageResource;
|
|
5
5
|
text: string;
|
|
6
6
|
replyRootId?: string | null;
|
|
7
|
+
queryKey?: unknown[];
|
|
7
8
|
}): MessageResource;
|
|
8
9
|
//# sourceMappingURL=optimistically_update_message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistically_update_message.d.ts","sourceRoot":"","sources":["../../../src/utils/cache/optimistically_update_message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,eAAe,EAAE,MAAM,aAAa,CAAA;AAI5D,wBAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,OAAO,EACP,IAAI,EACJ,WAAW,
|
|
1
|
+
{"version":3,"file":"optimistically_update_message.d.ts","sourceRoot":"","sources":["../../../src/utils/cache/optimistically_update_message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,eAAe,EAAE,MAAM,aAAa,CAAA;AAI5D,wBAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,OAAO,EACP,IAAI,EACJ,WAAW,EACX,QAA+F,GAChG,EAAE;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,eAAe,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB,mBAqBA"}
|
|
@@ -5,12 +5,12 @@ export function optimisticallyUpdateMessage({
|
|
|
5
5
|
conversationId,
|
|
6
6
|
message,
|
|
7
7
|
text,
|
|
8
|
-
replyRootId
|
|
9
|
-
|
|
10
|
-
const queryKey = getMessagesQueryKey({
|
|
8
|
+
replyRootId,
|
|
9
|
+
queryKey = getMessagesQueryKey({
|
|
11
10
|
conversation_id: conversationId,
|
|
12
11
|
reply_root_id: replyRootId
|
|
13
|
-
})
|
|
12
|
+
})
|
|
13
|
+
}) {
|
|
14
14
|
let optimisticMessage = message;
|
|
15
15
|
chatQueryClient.setQueryData(queryKey, data => updateOrCreateRecordInPagesData({
|
|
16
16
|
data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistically_update_message.js","names":["chatQueryClient","getMessagesQueryKey","updateOrCreateRecordInPagesData","optimisticallyUpdateMessage","conversationId","message","text","replyRootId","queryKey","conversation_id","reply_root_id","optimisticMessage","setQueryData","data","record","processRecord","next","prev","pending"],"sources":["../../../src/utils/cache/optimistically_update_message.ts"],"sourcesContent":["import { InfiniteData } from '@tanstack/react-query'\nimport { chatQueryClient } from '../../contexts/api_provider'\nimport { ApiCollection, MessageResource } from '../../types'\nimport { getMessagesQueryKey } from '../../utils/request/get_messages'\nimport { updateOrCreateRecordInPagesData } from './page_mutations'\n\nexport function optimisticallyUpdateMessage({\n conversationId,\n message,\n text,\n replyRootId,\n}: {\n conversationId: number\n message: MessageResource\n text: string\n replyRootId?: string | null\n}) {\n type QueryData = InfiniteData<ApiCollection<MessageResource>>\n\n
|
|
1
|
+
{"version":3,"file":"optimistically_update_message.js","names":["chatQueryClient","getMessagesQueryKey","updateOrCreateRecordInPagesData","optimisticallyUpdateMessage","conversationId","message","text","replyRootId","queryKey","conversation_id","reply_root_id","optimisticMessage","setQueryData","data","record","processRecord","next","prev","pending"],"sources":["../../../src/utils/cache/optimistically_update_message.ts"],"sourcesContent":["import { InfiniteData } from '@tanstack/react-query'\nimport { chatQueryClient } from '../../contexts/api_provider'\nimport { ApiCollection, MessageResource } from '../../types'\nimport { getMessagesQueryKey } from '../../utils/request/get_messages'\nimport { updateOrCreateRecordInPagesData } from './page_mutations'\n\nexport function optimisticallyUpdateMessage({\n conversationId,\n message,\n text,\n replyRootId,\n queryKey = getMessagesQueryKey({ conversation_id: conversationId, reply_root_id: replyRootId }),\n}: {\n conversationId: number\n message: MessageResource\n text: string\n replyRootId?: string | null\n queryKey?: unknown[]\n}) {\n type QueryData = InfiniteData<ApiCollection<MessageResource>>\n\n let optimisticMessage = message\n\n chatQueryClient.setQueryData<QueryData>(queryKey, data =>\n updateOrCreateRecordInPagesData({\n data,\n record: message,\n processRecord: (next, prev) => {\n optimisticMessage = {\n ...(prev || next),\n text,\n pending: true,\n }\n return optimisticMessage\n },\n })\n )\n\n return optimisticMessage\n}\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,6BAA6B;AAE7D,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,+BAA+B,QAAQ,kBAAkB;AAElE,OAAO,SAASC,2BAA2BA,CAAC;EAC1CC,cAAc;EACdC,OAAO;EACPC,IAAI;EACJC,WAAW;EACXC,QAAQ,GAAGP,mBAAmB,CAAC;IAAEQ,eAAe,EAAEL,cAAc;IAAEM,aAAa,EAAEH;EAAY,CAAC;AAOhG,CAAC,EAAE;EAGD,IAAII,iBAAiB,GAAGN,OAAO;EAE/BL,eAAe,CAACY,YAAY,CAAYJ,QAAQ,EAAEK,IAAI,IACpDX,+BAA+B,CAAC;IAC9BW,IAAI;IACJC,MAAM,EAAET,OAAO;IACfU,aAAa,EAAEA,CAACC,IAAI,EAAEC,IAAI,KAAK;MAC7BN,iBAAiB,GAAG;QAClB,IAAIM,IAAI,IAAID,IAAI,CAAC;QACjBV,IAAI;QACJY,OAAO,EAAE;MACX,CAAC;MACD,OAAOP,iBAAiB;IAC1B;EACF,CAAC,CACH,CAAC;EAED,OAAOA,iBAAiB;AAC1B","ignoreList":[]}
|
|
@@ -2,6 +2,6 @@ import { InfiniteData } from '@tanstack/react-query';
|
|
|
2
2
|
import { ApiCollection, ResourceObject } from '../../types';
|
|
3
3
|
import { RequestData } from '../client';
|
|
4
4
|
type PagesData<T extends ResourceObject> = InfiniteData<ApiCollection<T>, Partial<RequestData>>;
|
|
5
|
-
export declare function prependNewerPage<T extends ResourceObject>(data: PagesData<T> | undefined,
|
|
5
|
+
export declare function prependNewerPage<T extends ResourceObject>(data: PagesData<T> | undefined, pages: ApiCollection<T>[]): PagesData<T> | undefined;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=prepend_newer_page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepend_newer_page.d.ts","sourceRoot":"","sources":["../../../src/utils/cache/prepend_newer_page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,KAAK,SAAS,CAAC,CAAC,SAAS,cAAc,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;AAE/F,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,cAAc,EACvD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9B,
|
|
1
|
+
{"version":3,"file":"prepend_newer_page.d.ts","sourceRoot":"","sources":["../../../src/utils/cache/prepend_newer_page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,KAAK,SAAS,CAAC,CAAC,SAAS,cAAc,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;AAE/F,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,cAAc,EACvD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,GACxB,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAS1B"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
export function prependNewerPage(data,
|
|
2
|
-
if (!data) return data;
|
|
3
|
-
const knownIds = new Set(data.pages.flatMap(
|
|
4
|
-
const fresh = page.data.filter(record => !knownIds.has(record.id));
|
|
5
|
-
if (fresh.length === 0
|
|
1
|
+
export function prependNewerPage(data, pages) {
|
|
2
|
+
if (!data || data.pages.length === 0) return data;
|
|
3
|
+
const knownIds = new Set(data.pages.flatMap(page => page.data.map(record => record.id)));
|
|
4
|
+
const fresh = pages.flatMap(page => page.data).filter(record => !knownIds.has(record.id));
|
|
5
|
+
if (fresh.length === 0) return data;
|
|
6
|
+
const [first, ...rest] = data.pages;
|
|
6
7
|
return {
|
|
8
|
+
...data,
|
|
7
9
|
pages: [{
|
|
8
|
-
...
|
|
9
|
-
data: fresh
|
|
10
|
-
}, ...
|
|
11
|
-
pageParams: [pageParam, ...data.pageParams]
|
|
10
|
+
...first,
|
|
11
|
+
data: [...fresh, ...first.data]
|
|
12
|
+
}, ...rest]
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=prepend_newer_page.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepend_newer_page.js","names":["prependNewerPage","data","
|
|
1
|
+
{"version":3,"file":"prepend_newer_page.js","names":["prependNewerPage","data","pages","length","knownIds","Set","flatMap","page","map","record","id","fresh","filter","has","first","rest"],"sources":["../../../src/utils/cache/prepend_newer_page.ts"],"sourcesContent":["import { InfiniteData } from '@tanstack/react-query'\nimport { ApiCollection, ResourceObject } from '../../types'\nimport { RequestData } from '../client'\n\ntype PagesData<T extends ResourceObject> = InfiniteData<ApiCollection<T>, Partial<RequestData>>\n\nexport function prependNewerPage<T extends ResourceObject>(\n data: PagesData<T> | undefined,\n pages: ApiCollection<T>[]\n): PagesData<T> | undefined {\n if (!data || data.pages.length === 0) return data\n\n const knownIds = new Set(data.pages.flatMap(page => page.data.map(record => record.id)))\n const fresh = pages.flatMap(page => page.data).filter(record => !knownIds.has(record.id))\n if (fresh.length === 0) return data\n\n const [first, ...rest] = data.pages\n return { ...data, pages: [{ ...first, data: [...fresh, ...first.data] }, ...rest] }\n}\n"],"mappings":"AAMA,OAAO,SAASA,gBAAgBA,CAC9BC,IAA8B,EAC9BC,KAAyB,EACC;EAC1B,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACC,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE,OAAOF,IAAI;EAEjD,MAAMG,QAAQ,GAAG,IAAIC,GAAG,CAACJ,IAAI,CAACC,KAAK,CAACI,OAAO,CAACC,IAAI,IAAIA,IAAI,CAACN,IAAI,CAACO,GAAG,CAACC,MAAM,IAAIA,MAAM,CAACC,EAAE,CAAC,CAAC,CAAC;EACxF,MAAMC,KAAK,GAAGT,KAAK,CAACI,OAAO,CAACC,IAAI,IAAIA,IAAI,CAACN,IAAI,CAAC,CAACW,MAAM,CAACH,MAAM,IAAI,CAACL,QAAQ,CAACS,GAAG,CAACJ,MAAM,CAACC,EAAE,CAAC,CAAC;EACzF,IAAIC,KAAK,CAACR,MAAM,KAAK,CAAC,EAAE,OAAOF,IAAI;EAEnC,MAAM,CAACa,KAAK,EAAE,GAAGC,IAAI,CAAC,GAAGd,IAAI,CAACC,KAAK;EACnC,OAAO;IAAE,GAAGD,IAAI;IAAEC,KAAK,EAAE,CAAC;MAAE,GAAGY,KAAK;MAAEb,IAAI,EAAE,CAAC,GAAGU,KAAK,EAAE,GAAGG,KAAK,CAACb,IAAI;IAAE,CAAC,EAAE,GAAGc,IAAI;EAAE,CAAC;AACrF","ignoreList":[]}
|