@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.
Files changed (87) hide show
  1. package/build/components/conversation/message_form.d.ts.map +1 -1
  2. package/build/components/conversation/message_form.js +1 -1
  3. package/build/components/conversation/message_form.js.map +1 -1
  4. package/build/contexts/conversation_context.d.ts +3 -1
  5. package/build/contexts/conversation_context.d.ts.map +1 -1
  6. package/build/contexts/conversation_context.js +23 -18
  7. package/build/contexts/conversation_context.js.map +1 -1
  8. package/build/hooks/use_conversation_message_lookup.d.ts +7 -0
  9. package/build/hooks/use_conversation_message_lookup.d.ts.map +1 -0
  10. package/build/hooks/use_conversation_message_lookup.js +52 -0
  11. package/build/hooks/use_conversation_message_lookup.js.map +1 -0
  12. package/build/hooks/use_conversation_messages.d.ts +1 -0
  13. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  14. package/build/hooks/use_conversation_messages.js +8 -1
  15. package/build/hooks/use_conversation_messages.js.map +1 -1
  16. package/build/hooks/use_conversation_messages_jolt_events.d.ts +12 -4
  17. package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
  18. package/build/hooks/use_conversation_messages_jolt_events.js +82 -88
  19. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  20. package/build/hooks/use_fetch_newer_messages.d.ts.map +1 -1
  21. package/build/hooks/use_fetch_newer_messages.js +27 -21
  22. package/build/hooks/use_fetch_newer_messages.js.map +1 -1
  23. package/build/hooks/use_fetch_newer_on_foreground.d.ts +1 -1
  24. package/build/hooks/use_fetch_newer_on_foreground.d.ts.map +1 -1
  25. package/build/hooks/use_fetch_newer_on_foreground.js +2 -1
  26. package/build/hooks/use_fetch_newer_on_foreground.js.map +1 -1
  27. package/build/hooks/use_held_back_messages.d.ts +11 -0
  28. package/build/hooks/use_held_back_messages.d.ts.map +1 -0
  29. package/build/hooks/use_held_back_messages.js +24 -0
  30. package/build/hooks/use_held_back_messages.js.map +1 -0
  31. package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
  32. package/build/hooks/use_message_create_or_update.js +91 -80
  33. package/build/hooks/use_message_create_or_update.js.map +1 -1
  34. package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
  35. package/build/hooks/use_message_reaction_toggle.js +45 -40
  36. package/build/hooks/use_message_reaction_toggle.js.map +1 -1
  37. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  38. package/build/screens/conversation_screen.d.ts.map +1 -1
  39. package/build/screens/conversation_screen.js +485 -156
  40. package/build/screens/conversation_screen.js.map +1 -1
  41. package/build/screens/message_actions_screen.d.ts.map +1 -1
  42. package/build/screens/message_actions_screen.js +21 -26
  43. package/build/screens/message_actions_screen.js.map +1 -1
  44. package/build/screens/message_report_screen.d.ts.map +1 -1
  45. package/build/screens/message_report_screen.js +17 -44
  46. package/build/screens/message_report_screen.js.map +1 -1
  47. package/build/screens/reactions_screen.d.ts.map +1 -1
  48. package/build/screens/reactions_screen.js +70 -88
  49. package/build/screens/reactions_screen.js.map +1 -1
  50. package/build/utils/cache/find_message_in_caches.d.ts +4 -0
  51. package/build/utils/cache/find_message_in_caches.d.ts.map +1 -0
  52. package/build/utils/cache/find_message_in_caches.js +16 -0
  53. package/build/utils/cache/find_message_in_caches.js.map +1 -0
  54. package/build/utils/cache/optimistically_update_message.d.ts +2 -1
  55. package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
  56. package/build/utils/cache/optimistically_update_message.js +4 -4
  57. package/build/utils/cache/optimistically_update_message.js.map +1 -1
  58. package/build/utils/cache/prepend_newer_page.d.ts +1 -1
  59. package/build/utils/cache/prepend_newer_page.d.ts.map +1 -1
  60. package/build/utils/cache/prepend_newer_page.js +10 -9
  61. package/build/utils/cache/prepend_newer_page.js.map +1 -1
  62. package/package.json +3 -3
  63. package/src/__tests__/hooks/use_conversation_messages.test.ts +22 -0
  64. package/src/__tests__/hooks/use_conversation_messages_jolt_events.test.ts +22 -25
  65. package/src/components/conversation/message_form.tsx +1 -2
  66. package/src/contexts/conversation_context.tsx +6 -1
  67. package/src/hooks/__tests__/use_fetch_newer_messages.test.tsx +68 -0
  68. package/src/hooks/__tests__/use_held_back_messages.test.tsx +60 -0
  69. package/src/hooks/__tests__/use_message_reaction_toggle.test.tsx +73 -0
  70. package/src/hooks/use_conversation_message_lookup.ts +29 -0
  71. package/src/hooks/use_conversation_messages.ts +9 -0
  72. package/src/hooks/use_conversation_messages_jolt_events.ts +43 -41
  73. package/src/hooks/use_fetch_newer_messages.ts +19 -12
  74. package/src/hooks/use_fetch_newer_on_foreground.ts +2 -2
  75. package/src/hooks/use_held_back_messages.ts +33 -0
  76. package/src/hooks/use_message_create_or_update.ts +8 -8
  77. package/src/hooks/use_message_reaction_toggle.ts +3 -1
  78. package/src/screens/conversation_new/components/services_form.tsx +1 -1
  79. package/src/screens/conversation_screen.tsx +20 -20
  80. package/src/screens/message_actions_screen.tsx +3 -5
  81. package/src/screens/message_report_screen.tsx +2 -3
  82. package/src/screens/reactions_screen.tsx +2 -4
  83. package/src/utils/cache/__tests__/find_message_in_caches.test.ts +37 -0
  84. package/src/utils/cache/__tests__/prepend_newer_page.test.ts +13 -14
  85. package/src/utils/cache/find_message_in_caches.ts +20 -0
  86. package/src/utils/cache/optimistically_update_message.ts +2 -5
  87. 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&apos;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":";AAAA,SAA4BA,aAAa,EAAEC,YAAY,QAAQ,0BAA0B;AAKzF,OAAOC,KAAK,IAAIC,WAAW,EAAEC,eAAe,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC9E,SAASC,IAAI,EAAEC,UAAU,EAAEC,SAAS,QAAQ,cAAc;AAC1D,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,OAAO,EAAEC,IAAI,EAAEC,kBAAkB,QAAQ,eAAe;AACjE,SACEC,cAAc,EACdC,cAAc,EACdC,aAAa,QACR,qDAAqD;AAC5D,OAAOC,UAAU,MAAM,+CAA+C;AACtE,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,uBAAuB,QAAQ,oCAAoC;AAC5E,SAASC,gBAAgB,QAAQ,6BAA6B;AAG9D,SAASC,sBAAsB,QAAQ,UAAU;AACjD,SAASC,cAAc,QAAQ,6CAA6C;AAC5E,SAASC,gBAAgB,QAAQ,gDAAgD;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjF,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,OAAO,MAAMC,0BAA0B,GAAGA,CAAC;EACzCC,UAAU;EACVC;AAC2B,CAAC,KAAmC;EAC/D,MAAMC,WAAW,GAAGA,CAAA,KAClBF,UAAU,CAACG,QAAQ,CACjBhC,YAAY,CAACiC,KAAK,CAChB,cAAc,EACd;IAAEC,eAAe,EAAEJ,KAAK,CAACK,MAAM,EAAED;EAAgB,CAAC,EAClD;IAAEE,KAAK,EAAE;EAAK,CAChB,CACF,CAAC;EAEH,OAAOvB,cAAc,CACnB;IAAEwB,YAAY,EAAE,OAAO;IAAEC,KAAK,EAAE;EAAiB,CAAC,EAClDvB,aAAa,CAAC;IAAEwB,OAAO,EAAER;EAAY,CAAC,CACxC,CAAC;AACH,CAAC;AAOD,OAAO,SAAAS,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAb;EAAA,IAAAW,EAAmC;EACrE;IAAAP,eAAA;IAAAU;EAAA,IAAwCd,KAAK,CAAAK,MAAO;EAAA,IAAAU,EAAA;EAAA,IAAAH,CAAA,QAAAR,eAAA;IAEPW,EAAA;MAAAX;IAAkB,CAAC;IAAAQ,CAAA,MAAAR,eAAA;IAAAQ,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAJ,CAAA,QAAAK,MAAA,CAAAC,GAAA;IAAEF,EAAA;MAAAG,cAAA,EAAkB;IAAM,CAAC;IAAAP,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAA3F;IAAAQ;EAAA,IAAqBhC,uBAAuB,CAAC2B,EAAmB,EAAEC,EAAyB,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAT,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAQ,QAAA;IAAA,IAAAE,EAAA;IAAA,IAAAV,CAAA,QAAAE,UAAA;MAC9DQ,EAAA,GAAAC,CAAA,IAAKA,CAAC,CAAAC,EAAG,KAAKV,UAAU;MAAAF,CAAA,MAAAE,UAAA;MAAAF,CAAA,MAAAU,EAAA;IAAA;MAAAA,EAAA,GAAAV,CAAA;IAAA;IAAtCS,EAAA,GAAAD,QAAQ,CAAAK,IAAK,CAACH,EAAwB,CAAC;IAAAV,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAQ,QAAA;IAAAR,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAvD,MAAAc,OAAA,GAAgBL,EAAuC;EAEvD,IAAI,CAACK,OAAO;IAAA,OAAS,IAAI;EAAA;EAAA,IAAAJ,EAAA;EAAA,IAAAV,CAAA,QAAAR,eAAA,IAAAQ,CAAA,QAAAc,OAAA;IAElBJ,EAAA,gBAAA5B,IAAA,CAACiC,0BAA0B;MAAUD,OAAO,EAAPA,OAAO;MAAmBtB,eAAe,EAAfA;IAAe,CAAG,CAAC;IAAAQ,CAAA,MAAAR,eAAA;IAAAQ,CAAA,MAAAc,OAAA;IAAAd,CAAA,OAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,OAAlFU,EAAkF;AAAA;AAG3F,SAAAK,2BAAAhB,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAoC;IAAAa,OAAA;IAAAtB;EAAA,IAAAO,EAMnC;EACC,MAAAiB,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B,MAAA9B,UAAA,GAAmB9B,aAAa,CAAC,CAAC;EAClC,OAAA6D,cAAA,EAAAC,iBAAA,IAA4CxD,QAAQ,CAA6B,IAAI,CAAC;EACtF,OAAAyD,YAAA,EAAAC,eAAA,IAAwC1D,QAAQ,CAAC,EAAE,CAAC;EACpD;IAAA2D,MAAA,EAAAC,YAAA;IAAAC;EAAA,IAAyC/C,gBAAgB,CAACe,eAAe,EAAEsB,OAAO,CAAAF,EAAG,CAAC;EAAA,IAAAT,EAAA;EAAA,IAAAH,CAAA,QAAAK,MAAA,CAAAC,GAAA;IAE/CH,EAAA,GAAAsB,MAAA;MACrCN,iBAAiB,CAACM,MAAM,CAAC;MAEzB,IAAIA,MAAM,KAAK,OAAO;QACpBJ,eAAe,CAAC,EAAE,CAAC;MAAA;IACpB,CACF;IAAArB,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAND,MAAA0B,kBAAA,GAA2BvB,EAMrB;EAAA,IAAAC,EAAA;EAAAuB,GAAA;IAGJ,IAAIT,cAAc,KAAK,IAAI;MAAEd,EAAA,GAAO,KAAK;MAAZ,MAAAuB,GAAA;IAAY;IAEzC,IAAIT,cAAc,KAAK,OAA2C,IAAhCE,YAAY,CAAAQ,IAAK,CAAC,CAAC,CAAAC,MAAO,KAAK,CAAC;MAChEzB,EAAA,GAAO,KAAK;MAAZ,MAAAuB,GAAA;IAAY;IAGd,IAAIH,MAAM,KAAK,SAAS;MAAEpB,EAAA,GAAO,KAAK;MAAZ,MAAAuB,GAAA;IAAY;IAEtCvB,EAAA,GAAO,IAAI;EAAA;EATb,MAAA0B,WAAA,GAAoB1B,EAUsB;EAAA,IAAAK,EAAA;EAAA,IAAAT,CAAA,QAAA8B,WAAA,IAAA9B,CAAA,QAAAoB,YAAA,IAAApB,CAAA,QAAAkB,cAAA,IAAAlB,CAAA,QAAAuB,YAAA;IAETd,EAAA,GAAAA,CAAA;MAC/B,IAAI,CAACqB,WAA8B,IAA/B,CAAiBZ,cAAc;QAAA;MAAA;MAEnCK,YAAY,CAAC;QAAAE,MAAA,EACHP,cAAc;QAAAE,YAAA,EACRF,cAAc,KAAK,OAAkC,GAArDE,YAAqD,GAArDW;MAChB,CAAC,CAAC;IAAA,CACH;IAAA/B,CAAA,MAAA8B,WAAA;IAAA9B,CAAA,MAAAoB,YAAA;IAAApB,CAAA,MAAAkB,cAAA;IAAAlB,CAAA,MAAAuB,YAAA;IAAAvB,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAPD,MAAAgC,YAAA,GAAqBvB,EAOwC;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAR,eAAA,IAAAQ,CAAA,QAAAb,UAAA;IAE7BuB,EAAA,GAAAA,CAAA;MAC9BvB,UAAU,CAAAG,QAAS,CAAChC,YAAY,CAAAiC,KAAM,CAAC,cAAc,EAAE;QAAAC;MAAkB,CAAC,EAAE;QAAAE,KAAA,EAAS;MAAK,CAAC,CAAC,CAAC;IAAA,CAC9F;IAAAM,CAAA,MAAAR,eAAA;IAAAQ,CAAA,MAAAb,UAAA;IAAAa,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAFD,MAAAX,WAAA,GAAoBqB,EAEa;EAEjC,MAAAuB,WAAA,GAAoBT,MAAM,KAAK,SAAiC,IAApBA,MAAM,KAAK,SAAS;EAOpD,MAAAU,EAAA,IAACJ,WAAW;EAAA,IAAAK,EAAA;EAAA,IAAAnC,CAAA,QAAAiC,WAAA,IAAAjC,CAAA,SAAAgC,YAAA,IAAAhC,CAAA,SAAAkC,EAAA;IALTC,EAAA;MAAAC,IAAA,EACP,iBAAiB;MAAAC,kBAAA,EACH,QAAQ;MAAAC,SAAA,EACjB,IAAI;MAAAzC,OAAA,EACNmC,YAAY;MAAAO,QAAA,EACXL,EAAY;MAAAM,OAAA,EACbP;IACX,CAAC;IAAAjC,CAAA,MAAAiC,WAAA;IAAAjC,CAAA,OAAAgC,YAAA;IAAAhC,CAAA,OAAAkC,EAAA;IAAAlC,CAAA,OAAAmC,EAAA;EAAA;IAAAA,EAAA,GAAAnC,CAAA;EAAA;EAPD5B,cAAc,CAAC+D,EAOd,CAAC;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA1C,CAAA,SAAAiC,WAAA,IAAAjC,CAAA,SAAAb,UAAA;IAEcsD,EAAA,GAAAA,CAAA;MACd,IAAIR,WAAW;QACb9C,UAAU,CAAAwD,UAAW,CAAC;UAAAC,WAAA,EAAe;QAAiB,CAAC,CAAC;MAAA;IACzD,CACF;IAAEF,EAAA,IAACT,WAAW,EAAE9C,UAAU,CAAC;IAAAa,CAAA,OAAAiC,WAAA;IAAAjC,CAAA,OAAAb,UAAA;IAAAa,CAAA,OAAAyC,EAAA;IAAAzC,CAAA,OAAA0C,EAAA;EAAA;IAAAD,EAAA,GAAAzC,CAAA;IAAA0C,EAAA,GAAA1C,CAAA;EAAA;EAJ5BvC,eAAe,CAACgF,EAIf,EAAEC,EAAyB,CAAC;EAE7B,IAAIlB,MAAM,KAAK,SAAS;IAAA,IAAAqB,EAAA;IAAA,IAAA7C,CAAA,SAAAK,MAAA,CAAAC,GAAA;MAGlBuC,EAAA,gBAAA/D,IAAA,CAACd,OAAO,IAAE,CAAC;MAAAgC,CAAA,OAAA6C,EAAA;IAAA;MAAAA,EAAA,GAAA7C,CAAA;IAAA;IAAA,IAAA8C,GAAA;IAAA,IAAA9C,CAAA,SAAAgB,MAAA,CAAA+B,WAAA;MACXD,GAAA,gBAAAhE,IAAA,CAACb,IAAI;QAAQ+E,KAAkB,EAAlBhC,MAAM,CAAA+B,WAAY;QAAAE,QAAA,EAAE;MAAoB,CAAM,CAAC;MAAAjD,CAAA,OAAAgB,MAAA,CAAA+B,WAAA;MAAA/C,CAAA,OAAA8C,GAAA;IAAA;MAAAA,GAAA,GAAA9C,CAAA;IAAA;IAAA,IAAAkD,GAAA;IAAA,IAAAlD,CAAA,SAAAgB,MAAA,CAAAmC,mBAAA,IAAAnD,CAAA,SAAA8C,GAAA;MAF9DI,GAAA,gBAAAlE,KAAA,CAACpB,IAAI;QAAQoF,KAA0B,EAA1BhC,MAAM,CAAAmC,mBAAoB;QAAAF,QAAA,GACrCJ,EAAW,EACXC,GAA4D;MAAA,CACxD,CAAC;MAAA9C,CAAA,OAAAgB,MAAA,CAAAmC,mBAAA;MAAAnD,CAAA,OAAA8C,GAAA;MAAA9C,CAAA,OAAAkD,GAAA;IAAA;MAAAA,GAAA,GAAAlD,CAAA;IAAA;IAAA,OAHPkD,GAGO;EAAA;EAIX,IAAI1B,MAAM,KAAK,SAAS;IAAA,IAAAqB,EAAA;IAAA,IAAA7C,CAAA,SAAAgB,MAAA,CAAAoC,WAAA;MAIhBP,EAAA,gBAAA/D,IAAA,CAAAR,UAAA,CAAA+E,OAAA;QAAyBC,IAAqB,EAArB,qBAAqB;QAAQN,KAAkB,EAAlBhC,MAAM,CAAAoC;MAAY,CAAG,CAAC;MAAApD,CAAA,OAAAgB,MAAA,CAAAoC,WAAA;MAAApD,CAAA,OAAA6C,EAAA;IAAA;MAAAA,EAAA,GAAA7C,CAAA;IAAA;IAAA,IAAA8C,GAAA;IAAA,IAAA9C,CAAA,SAAAgB,MAAA,CAAAuC,YAAA;MAE1ET,GAAA,gBAAAhE,IAAA,CAAAR,UAAA,CAAAkF,OAAA;QAA2BR,KAAmB,EAAnBhC,MAAM,CAAAuC,YAAa;QAAAN,QAAA,EAAE;MAAgB,CAAoB,CAAC;MAAAjD,CAAA,OAAAgB,MAAA,CAAAuC,YAAA;MAAAvD,CAAA,OAAA8C,GAAA;IAAA;MAAAA,GAAA,GAAA9C,CAAA;IAAA;IAAA,IAAAkD,GAAA;IAAA,IAAAlD,CAAA,SAAAgB,MAAA,CAAAyC,eAAA;MACrFP,GAAA,gBAAApE,IAAA,CAAAR,UAAA,CAAAL,IAAA;QAAwB+E,KAAsB,EAAtBhC,MAAM,CAAAyC,eAAgB;QAAAR,QAAA,EAAE;MAEhD,CAAiB,CAAC;MAAAjD,CAAA,OAAAgB,MAAA,CAAAyC,eAAA;MAAAzD,CAAA,OAAAkD,GAAA;IAAA;MAAAA,GAAA,GAAAlD,CAAA;IAAA;IAAA,IAAA0D,GAAA;IAAA,IAAA1D,CAAA,SAAA8C,GAAA,IAAA9C,CAAA,SAAAkD,GAAA;MAJpBQ,GAAA,gBAAA1E,KAAA,CAAAV,UAAA,CAAAqF,OAAA;QAAAV,QAAA,GACEH,GAAqF,EACrFI,GAEkB;MAAA,CACA,CAAC;MAAAlD,CAAA,OAAA8C,GAAA;MAAA9C,CAAA,OAAAkD,GAAA;MAAAlD,CAAA,OAAA0D,GAAA;IAAA;MAAAA,GAAA,GAAA1D,CAAA;IAAA;IAAA,IAAA4D,GAAA;IAAA,IAAA5D,CAAA,SAAAX,WAAA;MACrBuE,GAAA,gBAAA9E,IAAA,CAAAR,UAAA,CAAAuF,MAAA;QAAyBjE,KAAO,EAAP,OAAO;QAAUP,OAAW,EAAXA,WAAW;QAAOyE,IAAI,EAAJ,IAAI;QAASC,OAAM,EAAN;MAAM,CAAE,CAAC;MAAA/D,CAAA,OAAAX,WAAA;MAAAW,CAAA,OAAA4D,GAAA;IAAA;MAAAA,GAAA,GAAA5D,CAAA;IAAA;IAAA,IAAAgE,GAAA;IAAA,IAAAhE,CAAA,SAAA0D,GAAA,IAAA1D,CAAA,SAAA4D,GAAA,IAAA5D,CAAA,SAAA6C,EAAA;MARpFmB,GAAA,gBAAAhF,KAAA,CAAAV,UAAA,CAAA2F,IAAA;QAAAhB,QAAA,GACEJ,EAA4E,EAC5Ea,GAKqB,EACrBE,GAAkF;MAAA,CACnE,CAAC;MAAA5D,CAAA,OAAA0D,GAAA;MAAA1D,CAAA,OAAA4D,GAAA;MAAA5D,CAAA,OAAA6C,EAAA;MAAA7C,CAAA,OAAAgE,GAAA;IAAA;MAAAA,GAAA,GAAAhE,CAAA;IAAA;IAAA,IAAAkE,GAAA;IAAA,IAAAlE,CAAA,SAAAgB,MAAA,CAAAmC,mBAAA,IAAAnD,CAAA,SAAAgE,GAAA;MAVpBE,GAAA,gBAAApF,IAAA,CAAClB,IAAI;QAAQoF,KAA0B,EAA1BhC,MAAM,CAAAmC,mBAAoB;QAAAF,QAAA,EACrCe;MASkB,CACd,CAAC;MAAAhE,CAAA,OAAAgB,MAAA,CAAAmC,mBAAA;MAAAnD,CAAA,OAAAgE,GAAA;MAAAhE,CAAA,OAAAkE,GAAA;IAAA;MAAAA,GAAA,GAAAlE,CAAA;IAAA;IAAA,OAXPkE,GAWO;EAAA;EAIX,IAAI1C,MAAM,KAAK,OAAO;IAAA,IAAAqB,EAAA;IAAA,IAAA7C,CAAA,SAAAK,MAAA,CAAAC,GAAA;MAGhBuC,EAAA,gBAAA/D,IAAA,CAAAR,UAAA,CAAA+E,OAAA;QAAyBC,IAA6B,EAA7B;MAA6B,CAAE,CAAC;MAAAtD,CAAA,OAAA6C,EAAA;IAAA;MAAAA,EAAA,GAAA7C,CAAA;IAAA;IAAA,IAAA8C,GAAA;IAAA,IAAA9C,CAAA,SAAAK,MAAA,CAAAC,GAAA;MACzDwC,GAAA,gBAAA9D,KAAA,CAAAV,UAAA,CAAAqF,OAAA;QAAAV,QAAA,gBACEnE,IAAA,CAAAR,UAAA,CAAAkF,OAAA;UAAAP,QAAA,EAAoB;QAAuB,CAAoB,CAAC,eAChEnE,IAAA,CAAAR,UAAA,CAAAL,IAAA;UAAAgF,QAAA,EAAiB;QAEjB,CAAiB,CAAC;MAAA,CACA,CAAC;MAAAjD,CAAA,OAAA8C,GAAA;IAAA;MAAAA,GAAA,GAAA9C,CAAA;IAAA;IAAA,IAAAkD,GAAA;IAAA,IAAAlD,CAAA,SAAAX,WAAA;MAPvB6D,GAAA,gBAAAlE,KAAA,CAAAV,UAAA,CAAA2F,IAAA;QAAAhB,QAAA,GACEJ,EAAyD,EACzDC,GAKqB,eACrBhE,IAAA,CAAAR,UAAA,CAAAuF,MAAA;UAAyBjE,KAAO,EAAP,OAAO;UAAUP,OAAW,EAAXA,WAAW;UAAOyE,IAAI,EAAJ,IAAI;UAASC,OAAS,EAAT;QAAS,CAAE,CAAC;MAAA,CACtE,CAAC;MAAA/D,CAAA,OAAAX,WAAA;MAAAW,CAAA,OAAAkD,GAAA;IAAA;MAAAA,GAAA,GAAAlD,CAAA;IAAA;IAAA,OATlBkD,GASkB;EAAA;EAErB,IAAAL,EAAA;EAAA,IAAA7C,CAAA,SAAAgB,MAAA,CAAAmD,WAAA;IAIGtB,EAAA,gBAAA/D,IAAA,CAACb,IAAI;MAAQ+E,KAAkB,EAAlBhC,MAAM,CAAAmD,WAAY;MAAyBC,qBAAG,EAAH,GAAG;MAAAnB,QAAA,EAAE;IAI7D,CAAM,CAAC;IAAAjD,CAAA,OAAAgB,MAAA,CAAAmD,WAAA;IAAAnE,CAAA,OAAA6C,EAAA;EAAA;IAAAA,EAAA,GAAA7C,CAAA;EAAA;EAAA,IAAA8C,GAAA;EAAA,IAAA9C,CAAA,SAAAc,OAAA;IAEPgC,GAAA,gBAAAhE,IAAA,CAACH,cAAc;MAAUmC,OAAO,EAAPA;IAAO,CAAG,CAAC;IAAAd,CAAA,OAAAc,OAAA;IAAAd,CAAA,OAAA8C,GAAA;EAAA;IAAAA,GAAA,GAAA9C,CAAA;EAAA;EAAA,IAAAkD,GAAA;EAAA,IAAAlD,CAAA,SAAAgB,MAAA,CAAAqD,QAAA;IAICnB,GAAA,gBAAApE,IAAA,CAACb,IAAI;MAAQ+E,KAAe,EAAfhC,MAAM,CAAAqD,QAAS;MAAApB,QAAA,EAAE;IAAC,CAAM,CAAC;IAAAjD,CAAA,OAAAgB,MAAA,CAAAqD,QAAA;IAAArE,CAAA,OAAAkD,GAAA;EAAA;IAAAA,GAAA,GAAAlD,CAAA;EAAA;EAAA,IAAA0D,GAAA;EAAA,IAAA1D,CAAA,SAAAgB,MAAA,CAAAsD,UAAA,IAAAtE,CAAA,SAAAkD,GAAA;IADzEQ,GAAA,gBAAA1E,KAAA,CAACf,IAAI;MAAQ+E,KAAiB,EAAjBhC,MAAM,CAAAsD,UAAW;MAAArB,QAAA,GAAE,mCACG,EAAAC,GAAsC;IAAA,CACnE,CAAC;IAAAlD,CAAA,OAAAgB,MAAA,CAAAsD,UAAA;IAAAtE,CAAA,OAAAkD,GAAA;IAAAlD,CAAA,OAAA0D,GAAA;EAAA;IAAAA,GAAA,GAAA1D,CAAA;EAAA;EAAA,IAAA4D,GAAA;EAAA,IAAA5D,CAAA,SAAAkB,cAAA;IAGL0C,GAAA,gBAAA9E,IAAA,CAACF,gBAAgB;MAAiBsC,cAAc,EAAdA,cAAc;MAAkBQ,cAAkB,EAAlBA;IAAkB,CAAG,CAAC;IAAA1B,CAAA,OAAAkB,cAAA;IAAAlB,CAAA,OAAA4D,GAAA;EAAA;IAAAA,GAAA,GAAA5D,CAAA;EAAA;EAAA,IAAAgE,GAAA;EAAA,IAAAhE,CAAA,SAAAgB,MAAA,CAAAuD,mBAAA,IAAAvE,CAAA,SAAA4D,GAAA;IAD1FI,GAAA,gBAAAlF,IAAA,CAAClB,IAAI;MAAQoF,KAA0B,EAA1BhC,MAAM,CAAAuD,mBAAoB;MAAAtB,QAAA,EACrCW;IAAwF,CACpF,CAAC;IAAA5D,CAAA,OAAAgB,MAAA,CAAAuD,mBAAA;IAAAvE,CAAA,OAAA4D,GAAA;IAAA5D,CAAA,OAAAgE,GAAA;EAAA;IAAAA,GAAA,GAAAhE,CAAA;EAAA;EAAA,IAAAkE,GAAA;EAAA,IAAAlE,CAAA,SAAAgB,MAAA,CAAAwD,aAAA,IAAAxE,CAAA,SAAA0D,GAAA,IAAA1D,CAAA,SAAAgE,GAAA;IAPTE,GAAA,gBAAAlF,KAAA,CAACpB,IAAI;MAAQoF,KAAoB,EAApBhC,MAAM,CAAAwD,aAAc;MAAAvB,QAAA,GAC/BS,GAEO,EAEPM,GAEO;IAAA,CACH,CAAC;IAAAhE,CAAA,OAAAgB,MAAA,CAAAwD,aAAA;IAAAxE,CAAA,OAAA0D,GAAA;IAAA1D,CAAA,OAAAgE,GAAA;IAAAhE,CAAA,OAAAkE,GAAA;EAAA;IAAAA,GAAA,GAAAlE,CAAA;EAAA;EAAA,IAAAyE,GAAA;EAAA,IAAAzE,CAAA,SAAAoB,YAAA,IAAApB,CAAA,SAAAkB,cAAA,IAAAlB,CAAA,SAAAgB,MAAA,CAAA0D,aAAA,IAAA1E,CAAA,SAAAgB,MAAA,CAAAsD,UAAA,IAAAtE,CAAA,SAAAgB,MAAA,CAAAqD,QAAA,IAAArE,CAAA,SAAAgB,MAAA,CAAA2D,SAAA;IAENF,GAAA,GAAAvD,cAAc,KAAK,OAqBnB,iBArBAlC,KAAA,CACEpB,IAAI;MAAQoF,KAAoB,EAApBhC,MAAM,CAAA0D,aAAc;MAAAzB,QAAA,gBAC/BjE,KAAA,CAACf,IAAI;QAAQ+E,KAAiB,EAAjBhC,MAAM,CAAAsD,UAAW;QAAArB,QAAA,GAAE,8BACF,eAAAnE,IAAA,CAACb,IAAI;UAAQ+E,KAAe,EAAfhC,MAAM,CAAAqD,QAAS;UAAApB,QAAA,EAAE;QAAC,CAAM,CAAC;MAAA,CAC9D,CAAC,eACPnE,IAAA,CAAChB,SAAS;QACDkF,KAAgB,EAAhBhC,MAAM,CAAA2D,SAAU;QACvBC,SAAS,EAAT,IAAS;QACGC,WAAuB,EAAvB,uBAAuB;QAC5BzD,KAAY,EAAZA,YAAY;QACLC,YAAe,EAAfA,eAAe;QAClBpC,SAAiB,EAAjBA,iBAAiB;QACToD,kBAAoB,EAApB,oBAAoB;QACrByC,iBAAkE,EAAlE;MAAkE,CACrF,CAAC,EACD1D,YAAY,CAAAS,MAAO,IAAI5C,iBAAiB,GAAG,GAI3C,iBAJAD,KAAA,CACEf,IAAI;QAAS8F,OAAU,EAAV,UAAU;QAAAd,QAAA,GACrB7B,YAAY,CAAAS,MAAO,EAAC,GAAC,EAAC5C,iBAAiB;MAAA,CAE5C,CAAC;IAAA,CAEL,CAAC;IAAAe,CAAA,OAAAoB,YAAA;IAAApB,CAAA,OAAAkB,cAAA;IAAAlB,CAAA,OAAAgB,MAAA,CAAA0D,aAAA;IAAA1E,CAAA,OAAAgB,MAAA,CAAAsD,UAAA;IAAAtE,CAAA,OAAAgB,MAAA,CAAAqD,QAAA;IAAArE,CAAA,OAAAgB,MAAA,CAAA2D,SAAA;IAAA3E,CAAA,OAAAyE,GAAA;EAAA;IAAAA,GAAA,GAAAzE,CAAA;EAAA;EAAA,IAAA+E,GAAA;EAAA,IAAA/E,CAAA,SAAAgB,MAAA,CAAAgE,SAAA,IAAAhF,CAAA,SAAA8C,GAAA,IAAA9C,CAAA,SAAAkE,GAAA,IAAAlE,CAAA,SAAAyE,GAAA,IAAAzE,CAAA,SAAA6C,EAAA;IAxCHkC,GAAA,gBAAA/F,KAAA,CAACd,kBAAkB;MAAwB+G,qBAAgB,EAAhBjE,MAAM,CAAAgE,SAAU;MAAA/B,QAAA,GACzDJ,EAIO,EAEPC,GAAoC,EAEpCoB,GAQO,EAENO,GAqBA;IAAA,CACiB,CAAC;IAAAzE,CAAA,OAAAgB,MAAA,CAAAgE,SAAA;IAAAhF,CAAA,OAAA8C,GAAA;IAAA9C,CAAA,OAAAkE,GAAA;IAAAlE,CAAA,OAAAyE,GAAA;IAAAzE,CAAA,OAAA6C,EAAA;IAAA7C,CAAA,OAAA+E,GAAA;EAAA;IAAAA,GAAA,GAAA/E,CAAA;EAAA;EAAA,OAzCrB+E,GAyCqB;AAAA;AAIzB,MAAM9D,SAAS,GAAGA,CAAA;EAAA,MAAAjB,CAAA,GAAAC,EAAA;EAChB;IAAAiF;EAAA,IAAmBnH,iBAAiB,CAAC,CAAC;EACtC;IAAAoH;EAAA,IAAmB5G,QAAQ,CAAC,CAAC;EAAA,IAAAwB,EAAA;EAAA,IAAAC,CAAA,QAAAkF,MAAA,IAAAlF,CAAA,QAAAmF,MAAA,CAAAC,sBAAA,IAAApF,CAAA,QAAAmF,MAAA,CAAAE,eAAA,IAAArF,CAAA,QAAAmF,MAAA,CAAAG,iBAAA,IAAAtF,CAAA,QAAAmF,MAAA,CAAAI,eAAA,IAAAvF,CAAA,QAAAmF,MAAA,CAAAK,uBAAA,IAAAxF,CAAA,QAAAmF,MAAA,CAAAM,yBAAA;IAEtB1F,EAAA,GAAAlC,UAAU,CAAA6H,MAAO,CAAC;MAAAV,SAAA,EACZ;QAAAW,OAAA,EACA,EAAE;QAAAC,aAAA,EACI,EAAE,GAAGV,MAAM;QAAAW,GAAA,EACrB;MACP,CAAC;MAAAC,UAAA,EACW;QAAAC,IAAA,EACJ,CAAC;QAAAC,cAAA,EACS,QAAQ;QAAAC,UAAA,EACZ;MACd,CAAC;MAAA9C,mBAAA,EACoB;QAAA4C,IAAA,EACb,CAAC;QAAAC,cAAA,EACS,QAAQ;QAAAC,UAAA,EACZ,QAAQ;QAAAC,eAAA,EACHf,MAAM,CAAAI;MACzB,CAAC;MAAAxC,WAAA,EACY;QAAAoD,SAAA,EACA,EAAE;QAAAC,QAAA,EACH,EAAE;QAAAC,UAAA,EACA,KAAK;QAAAC,KAAA,EACVnB,MAAM,CAAAK;MACf,CAAC;MAAArB,WAAA,EACY;QAAAiC,QAAA,EACD,EAAE;QAAAG,UAAA,EACA,EAAE;QAAAD,KAAA,EACPnB,MAAM,CAAAM;MACf,CAAC;MAAAjB,aAAA,EACc;QAAAqB,GAAA,EACR;MACP,CAAC;MAAAvB,UAAA,EACW;QAAA8B,QAAA,EACA,EAAE;QAAAC,UAAA,EACA3H,sBAAsB;QAAA4H,KAAA,EAC3BnB,MAAM,CAAAK;MACf,CAAC;MAAAnB,QAAA,EACS;QAAAiC,KAAA,EACDnB,MAAM,CAAAE;MACf,CAAC;MAAAd,mBAAA,EACoB;QAAA2B,eAAA,EACFf,MAAM,CAAAI;MACzB,CAAC;MAAAb,aAAA,EACc;QAAAmB,GAAA,EACR;MACP,CAAC;MAAAlB,SAAA,EACU;QAAA2B,KAAA,EACFnB,MAAM,CAAAK,uBAAwB;QAAAY,QAAA,EAC3B,EAAE;QAAAI,iBAAA,EACO,KAAK;QAAAC,SAAA,EACb,GAAG;QAAAC,SAAA,EACH,GAAG;QAAAC,WAAA,EACD,CAAC;QAAAC,WAAA,EACDzB,MAAM,CAAAC,sBAAuB;QAAAyB,YAAA,EAC5B,CAAC;QAAAC,iBAAA,EACI,EAAE;QAAAC,eAAA,EACJ,EAAE;QAAAb,eAAA,EACFf,MAAM,CAAAI;MACzB,CAAC;MAAAnC,WAAA,EACY;QAAAkD,KAAA,EACJnB,MAAM,CAAAG,iBAAkB;QAAAc,QAAA,EACrB;MACZ,CAAC;MAAA7C,YAAA,EACa;QAAA6C,QAAA,EACF,EAAE;QAAAY,YAAA,EACE;MAChB,CAAC;MAAAvD,eAAA,EACgB;QAAA2C,QAAA,EACL,EAAE;QAAAY,YAAA,EACE;MAChB;IACF,CAAC,CAAC;IAAAhH,CAAA,MAAAkF,MAAA;IAAAlF,CAAA,MAAAmF,MAAA,CAAAC,sBAAA;IAAApF,CAAA,MAAAmF,MAAA,CAAAE,eAAA;IAAArF,CAAA,MAAAmF,MAAA,CAAAG,iBAAA;IAAAtF,CAAA,MAAAmF,MAAA,CAAAI,eAAA;IAAAvF,CAAA,MAAAmF,MAAA,CAAAK,uBAAA;IAAAxF,CAAA,MAAAmF,MAAA,CAAAM,yBAAA;IAAAzF,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OAtEKD,EAsEL;AAAA,CACH","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&apos;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,2CAkE7D"}
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 { useConversationMessages } from '../hooks/use_conversation_messages';
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(28);
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] = t1;
40
+ $[1] = message_id;
41
+ $[2] = t1;
40
42
  } else {
41
- t1 = $[1];
43
+ t1 = $[2];
42
44
  }
43
- let t2;
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 t4;
68
- if ($[5] !== reactionCountValue) {
69
- t4 = r_0 => r_0.value === reactionCountValue;
70
- $[5] = reactionCountValue;
71
- $[6] = t4;
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
- t4 = $[6];
55
+ t2 = $[4];
74
56
  }
75
- const reactionCount = reactionCounts.find(t4);
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 t5;
93
- if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
94
- t5 = /*#__PURE__*/_jsx(Text, {
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
- $[7] = t5;
79
+ $[5] = t3;
98
80
  } else {
99
- t5 = $[7];
81
+ t3 = $[5];
100
82
  }
101
- let t6;
102
- if ($[8] !== styles.errorContainer) {
103
- t6 = /*#__PURE__*/_jsx(View, {
83
+ let t4;
84
+ if ($[6] !== styles.errorContainer) {
85
+ t4 = /*#__PURE__*/_jsx(View, {
104
86
  style: styles.errorContainer,
105
- children: t5
87
+ children: t3
106
88
  });
107
- $[8] = styles.errorContainer;
108
- $[9] = t6;
89
+ $[6] = styles.errorContainer;
90
+ $[7] = t4;
109
91
  } else {
110
- t6 = $[9];
92
+ t4 = $[7];
111
93
  }
112
- return t6;
94
+ return t4;
113
95
  }
114
96
  const authors = members.filter(member => authorIds.includes(member.id));
115
- let t5;
116
- if ($[10] !== setReactionCountValue) {
117
- t5 = item => {
97
+ let t3;
98
+ if ($[8] !== setReactionCountValue) {
99
+ t3 = item => {
118
100
  setReactionCountValue(item.value);
119
101
  };
120
- $[10] = setReactionCountValue;
121
- $[11] = t5;
102
+ $[8] = setReactionCountValue;
103
+ $[9] = t3;
122
104
  } else {
123
- t5 = $[11];
105
+ t3 = $[9];
124
106
  }
125
- let t6;
126
- if ($[12] !== reactionCount.id || $[13] !== setReactionCountValue) {
127
- t6 = t7 => {
107
+ let t4;
108
+ if ($[10] !== reactionCount.id || $[11] !== setReactionCountValue) {
109
+ t4 = t5 => {
128
110
  const {
129
111
  item: item_0
130
- } = t7;
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
- $[12] = reactionCount.id;
138
- $[13] = setReactionCountValue;
139
- $[14] = t6;
119
+ $[10] = reactionCount.id;
120
+ $[11] = setReactionCountValue;
121
+ $[12] = t4;
140
122
  } else {
141
- t6 = $[14];
123
+ t4 = $[12];
142
124
  }
143
- let t7;
144
- if ($[15] !== reactionCount || $[16] !== reactionCounts || $[17] !== styles.actions || $[18] !== t5 || $[19] !== t6) {
145
- t7 = /*#__PURE__*/_jsx(Tabs, {
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: t5,
149
- renderItem: t6,
130
+ onTabPress: t3,
131
+ renderItem: t4,
150
132
  style: styles.actions
151
133
  });
152
- $[15] = reactionCount;
153
- $[16] = reactionCounts;
154
- $[17] = styles.actions;
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
- t7 = $[20];
141
+ t5 = $[18];
160
142
  }
161
- let t8;
162
- if ($[21] !== authors || $[22] !== styles.contentContainer) {
163
- t8 = /*#__PURE__*/_jsx(FlatList, {
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
- $[21] = authors;
170
- $[22] = styles.contentContainer;
171
- $[23] = t8;
151
+ $[19] = authors;
152
+ $[20] = styles.contentContainer;
153
+ $[21] = t6;
172
154
  } else {
173
- t8 = $[23];
155
+ t6 = $[21];
174
156
  }
175
- let t9;
176
- if ($[24] !== styles.formSheetContent || $[25] !== t7 || $[26] !== t8) {
177
- t9 = /*#__PURE__*/_jsxs(FormSheet.Root, {
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: [t7, t8]
161
+ children: [t5, t6]
180
162
  });
181
- $[24] = styles.formSheetContent;
163
+ $[22] = styles.formSheetContent;
164
+ $[23] = t5;
165
+ $[24] = t6;
182
166
  $[25] = t7;
183
- $[26] = t8;
184
- $[27] = t9;
185
167
  } else {
186
- t9 = $[27];
168
+ t7 = $[25];
187
169
  }
188
- return t9;
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,GACZ,EAAE;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,eAAe,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B,mBA0BA"}
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 const queryKey = getMessagesQueryKey({\n conversation_id: conversationId,\n reply_root_id: replyRootId,\n })\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;AAMF,CAAC,EAAE;EAGD,MAAMC,QAAQ,GAAGP,mBAAmB,CAAC;IACnCQ,eAAe,EAAEL,cAAc;IAC/BM,aAAa,EAAEH;EACjB,CAAC,CAAC;EAEF,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":[]}
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, page: ApiCollection<T>, pageParam: Partial<RequestData>): 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,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAW1B"}
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, page, pageParam) {
2
- if (!data) return data;
3
- const knownIds = new Set(data.pages.flatMap(p => p.data.map(record => record.id)));
4
- const fresh = page.data.filter(record => !knownIds.has(record.id));
5
- if (fresh.length === 0 && !page.meta?.next) return data;
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
- ...page,
9
- data: fresh
10
- }, ...data.pages],
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","page","pageParam","knownIds","Set","pages","flatMap","p","map","record","id","fresh","filter","has","length","meta","next","pageParams"],"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 page: ApiCollection<T>,\n pageParam: Partial<RequestData>\n): PagesData<T> | undefined {\n if (!data) return data\n\n const knownIds = new Set(data.pages.flatMap(p => p.data.map(record => record.id)))\n const fresh = page.data.filter(record => !knownIds.has(record.id))\n if (fresh.length === 0 && !page.meta?.next) return data\n\n return {\n pages: [{ ...page, data: fresh }, ...data.pages],\n pageParams: [pageParam, ...data.pageParams],\n }\n}\n"],"mappings":"AAMA,OAAO,SAASA,gBAAgBA,CAC9BC,IAA8B,EAC9BC,IAAsB,EACtBC,SAA+B,EACL;EAC1B,IAAI,CAACF,IAAI,EAAE,OAAOA,IAAI;EAEtB,MAAMG,QAAQ,GAAG,IAAIC,GAAG,CAACJ,IAAI,CAACK,KAAK,CAACC,OAAO,CAACC,CAAC,IAAIA,CAAC,CAACP,IAAI,CAACQ,GAAG,CAACC,MAAM,IAAIA,MAAM,CAACC,EAAE,CAAC,CAAC,CAAC;EAClF,MAAMC,KAAK,GAAGV,IAAI,CAACD,IAAI,CAACY,MAAM,CAACH,MAAM,IAAI,CAACN,QAAQ,CAACU,GAAG,CAACJ,MAAM,CAACC,EAAE,CAAC,CAAC;EAClE,IAAIC,KAAK,CAACG,MAAM,KAAK,CAAC,IAAI,CAACb,IAAI,CAACc,IAAI,EAAEC,IAAI,EAAE,OAAOhB,IAAI;EAEvD,OAAO;IACLK,KAAK,EAAE,CAAC;MAAE,GAAGJ,IAAI;MAAED,IAAI,EAAEW;IAAM,CAAC,EAAE,GAAGX,IAAI,CAACK,KAAK,CAAC;IAChDY,UAAU,EAAE,CAACf,SAAS,EAAE,GAAGF,IAAI,CAACiB,UAAU;EAC5C,CAAC;AACH","ignoreList":[]}
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":[]}