@planningcenter/chat-react-native 4.5.0-rc.3 → 4.5.0-rc.5

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.
@@ -1,3 +1,4 @@
1
+ import { LayoutChangeEvent } from 'react-native';
1
2
  export interface FilterDropdownOption {
2
3
  id: string;
3
4
  label: string;
@@ -16,4 +17,19 @@ export interface FilterDropdownProps {
16
17
  maxWidth?: number;
17
18
  }
18
19
  export declare function FilterDropdown({ options, selectedId, onSelect, onMoreFilters, triggerLabel, showMoreFilters, maxWidth, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
20
+ export interface FilterDropdownTriggerProps {
21
+ label: string;
22
+ maxWidth?: number;
23
+ accessible?: boolean;
24
+ accessibilityRole?: 'button';
25
+ accessibilityHint?: string;
26
+ accessibilityElementsHidden?: boolean;
27
+ importantForAccessibility?: 'no-hide-descendants';
28
+ onLayout?: (event: LayoutChangeEvent) => void;
29
+ }
30
+ /**
31
+ * The label and chevron the dropdown opens from. Exported so a screen can render a hidden copy
32
+ * to measure how wide a label is at the current font scale.
33
+ */
34
+ export declare function FilterDropdownTrigger({ label, maxWidth, ...viewProps }: FilterDropdownTriggerProps): import("react/jsx-runtime").JSX.Element;
19
35
  //# sourceMappingURL=filter_dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/filter_dropdown.tsx"],"names":[],"mappings":"AA0BA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,eAAsB,EACtB,QAAQ,GACT,EAAE,mBAAmB,2CAiDrB"}
1
+ {"version":3,"file":"filter_dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/filter_dropdown.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAA;AAyBlE,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,eAAsB,EACtB,QAAQ,GACT,EAAE,mBAAmB,2CAoCrB;AAMD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,QAAQ,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,yBAAyB,CAAC,EAAE,qBAAqB,CAAA;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;CAC9C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,0BAA0B,2CAoB5B"}
@@ -20,7 +20,7 @@ const MORE_FILTERS_LABEL = 'More filters';
20
20
  // =================================
21
21
 
22
22
  export function FilterDropdown(t0) {
23
- const $ = _c(29);
23
+ const $ = _c(18);
24
24
  const {
25
25
  options,
26
26
  selectedId,
@@ -93,84 +93,130 @@ export function FilterDropdown(t0) {
93
93
  }
94
94
  const handlePressAction = t3;
95
95
  let t4;
96
- if ($[10] !== maxWidth) {
97
- t4 = maxWidth !== undefined && {
98
- maxWidth
99
- };
96
+ if ($[10] !== maxWidth || $[11] !== triggerLabel) {
97
+ t4 = /*#__PURE__*/_jsx(FilterDropdownTrigger, {
98
+ label: triggerLabel,
99
+ maxWidth: maxWidth,
100
+ accessible: true,
101
+ accessibilityRole: "button",
102
+ accessibilityHint: "Opens filter options"
103
+ });
100
104
  $[10] = maxWidth;
101
- $[11] = t4;
105
+ $[11] = triggerLabel;
106
+ $[12] = t4;
102
107
  } else {
103
- t4 = $[11];
108
+ t4 = $[12];
104
109
  }
105
110
  let t5;
106
- if ($[12] !== styles.trigger || $[13] !== t4) {
107
- t5 = [styles.trigger, t4];
108
- $[12] = styles.trigger;
109
- $[13] = t4;
110
- $[14] = t5;
111
+ if ($[13] !== actions || $[14] !== handlePressAction || $[15] !== styles.container || $[16] !== t4) {
112
+ t5 = /*#__PURE__*/_jsx(MenuView, {
113
+ actions: actions,
114
+ onPressAction: handlePressAction,
115
+ style: styles.container,
116
+ children: t4
117
+ });
118
+ $[13] = actions;
119
+ $[14] = handlePressAction;
120
+ $[15] = styles.container;
121
+ $[16] = t4;
122
+ $[17] = t5;
111
123
  } else {
112
- t5 = $[14];
124
+ t5 = $[17];
113
125
  }
114
- let t6;
115
- if ($[15] !== styles.triggerLabel || $[16] !== triggerLabel) {
116
- t6 = /*#__PURE__*/_jsx(Text, {
126
+ return t5;
127
+ }
128
+
129
+ // =================================
130
+ // ====== Trigger ==================
131
+ // =================================
132
+
133
+ /**
134
+ * The label and chevron the dropdown opens from. Exported so a screen can render a hidden copy
135
+ * to measure how wide a label is at the current font scale.
136
+ */
137
+ export function FilterDropdownTrigger(t0) {
138
+ const $ = _c(19);
139
+ let label;
140
+ let maxWidth;
141
+ let viewProps;
142
+ if ($[0] !== t0) {
143
+ ({
144
+ label,
145
+ maxWidth,
146
+ ...viewProps
147
+ } = t0);
148
+ $[0] = t0;
149
+ $[1] = label;
150
+ $[2] = maxWidth;
151
+ $[3] = viewProps;
152
+ } else {
153
+ label = $[1];
154
+ maxWidth = $[2];
155
+ viewProps = $[3];
156
+ }
157
+ const styles = useStyles();
158
+ let t1;
159
+ if ($[4] !== maxWidth) {
160
+ t1 = maxWidth !== undefined && {
161
+ maxWidth
162
+ };
163
+ $[4] = maxWidth;
164
+ $[5] = t1;
165
+ } else {
166
+ t1 = $[5];
167
+ }
168
+ let t2;
169
+ if ($[6] !== styles.trigger || $[7] !== t1) {
170
+ t2 = [styles.trigger, t1];
171
+ $[6] = styles.trigger;
172
+ $[7] = t1;
173
+ $[8] = t2;
174
+ } else {
175
+ t2 = $[8];
176
+ }
177
+ let t3;
178
+ if ($[9] !== label || $[10] !== styles.triggerLabel) {
179
+ t3 = /*#__PURE__*/_jsx(Text, {
117
180
  style: styles.triggerLabel,
118
181
  numberOfLines: 1,
119
182
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
120
- children: triggerLabel
183
+ children: label
121
184
  });
122
- $[15] = styles.triggerLabel;
123
- $[16] = triggerLabel;
124
- $[17] = t6;
185
+ $[9] = label;
186
+ $[10] = styles.triggerLabel;
187
+ $[11] = t3;
125
188
  } else {
126
- t6 = $[17];
189
+ t3 = $[11];
127
190
  }
128
- let t7;
129
- if ($[18] !== styles.triggerIcon) {
130
- t7 = /*#__PURE__*/_jsx(Icon, {
191
+ let t4;
192
+ if ($[12] !== styles.triggerIcon) {
193
+ t4 = /*#__PURE__*/_jsx(Icon, {
131
194
  name: "general.downChevron",
132
195
  style: styles.triggerIcon,
133
196
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
134
197
  accessibilityElementsHidden: true
135
198
  });
136
- $[18] = styles.triggerIcon;
137
- $[19] = t7;
138
- } else {
139
- t7 = $[19];
140
- }
141
- let t8;
142
- if ($[20] !== t5 || $[21] !== t6 || $[22] !== t7) {
143
- t8 = /*#__PURE__*/_jsxs(View, {
144
- style: t5,
145
- accessible: true,
146
- accessibilityRole: "button",
147
- accessibilityHint: "Opens filter options",
148
- children: [t6, t7]
149
- });
150
- $[20] = t5;
151
- $[21] = t6;
152
- $[22] = t7;
153
- $[23] = t8;
199
+ $[12] = styles.triggerIcon;
200
+ $[13] = t4;
154
201
  } else {
155
- t8 = $[23];
202
+ t4 = $[13];
156
203
  }
157
- let t9;
158
- if ($[24] !== actions || $[25] !== handlePressAction || $[26] !== styles.container || $[27] !== t8) {
159
- t9 = /*#__PURE__*/_jsx(MenuView, {
160
- actions: actions,
161
- onPressAction: handlePressAction,
162
- style: styles.container,
163
- children: t8
204
+ let t5;
205
+ if ($[14] !== t2 || $[15] !== t3 || $[16] !== t4 || $[17] !== viewProps) {
206
+ t5 = /*#__PURE__*/_jsxs(View, {
207
+ style: t2,
208
+ ...viewProps,
209
+ children: [t3, t4]
164
210
  });
165
- $[24] = actions;
166
- $[25] = handlePressAction;
167
- $[26] = styles.container;
168
- $[27] = t8;
169
- $[28] = t9;
211
+ $[14] = t2;
212
+ $[15] = t3;
213
+ $[16] = t4;
214
+ $[17] = viewProps;
215
+ $[18] = t5;
170
216
  } else {
171
- t9 = $[28];
217
+ t5 = $[18];
172
218
  }
173
- return t9;
219
+ return t5;
174
220
  }
175
221
 
176
222
  // =================================
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","PopoverMenuView","Text","jsx","_jsx","jsxs","_jsxs","MORE_FILTERS_ID","MORE_FILTERS_LABEL","FilterDropdown","t0","$","_c","options","selectedId","onSelect","onMoreFilters","triggerLabel","showMoreFilters","t1","maxWidth","undefined","styles","useStyles","MenuView","t2","t3","option","id","title","label","state","optionActions","map","t4","Symbol","for","displayInline","subactions","moreFiltersAction","actions","nativeEvent","event","handlePressAction","t5","trigger","t6","style","numberOfLines","children","t7","triggerIcon","name","accessibilityElementsHidden","t8","accessible","accessibilityRole","accessibilityHint","t9","container","colors","iconColorDefaultPrimary","textColorDefaultPrimary","create","alignSelf","flexDirection","alignItems","gap","paddingVertical","flexShrink","fontWeight","color","fontSize","fontSizeSm"],"sources":["../../../src/components/display/filter_dropdown.tsx"],"sourcesContent":["import React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n Menu,\n MenuAction,\n MenuActionEvent,\n platformFontWeightBold,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Icon } from './icon'\nimport { PopoverMenuView } from './popover_menu_view'\nimport { Text } from './text'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst MORE_FILTERS_ID = 'more_filters'\nconst MORE_FILTERS_LABEL = 'More filters'\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface FilterDropdownOption {\n id: string\n label: string\n}\n\nexport interface FilterDropdownProps {\n options: FilterDropdownOption[]\n selectedId: string\n onSelect: (id: string) => void\n onMoreFilters: () => void\n triggerLabel: string\n showMoreFilters?: boolean\n /**\n * Widest the trigger may render, in points. Hosts that measure the trigger at its intrinsic\n * width need this for the label to truncate.\n */\n maxWidth?: number\n}\n\nexport function FilterDropdown({\n options,\n selectedId,\n onSelect,\n onMoreFilters,\n triggerLabel,\n showMoreFilters = true,\n maxWidth,\n}: FilterDropdownProps) {\n const styles = useStyles()\n const MenuView = Menu.View ?? PopoverMenuView\n\n const optionActions: MenuAction[] = options.map(option => ({\n id: option.id,\n title: option.label,\n state: option.id === selectedId ? ('on' as const) : ('off' as const),\n }))\n const moreFiltersAction: MenuAction = {\n id: MORE_FILTERS_ID,\n title: '',\n displayInline: true,\n subactions: [{ id: MORE_FILTERS_ID, title: MORE_FILTERS_LABEL }],\n }\n const actions = showMoreFilters ? [...optionActions, moreFiltersAction] : optionActions\n\n const handlePressAction = ({ nativeEvent }: MenuActionEvent) => {\n if (nativeEvent.event === MORE_FILTERS_ID) {\n onMoreFilters()\n } else {\n onSelect(nativeEvent.event)\n }\n }\n\n return (\n <MenuView actions={actions} onPressAction={handlePressAction} style={styles.container}>\n <View\n style={[styles.trigger, maxWidth !== undefined && { maxWidth }]}\n accessible\n accessibilityRole=\"button\"\n accessibilityHint=\"Opens filter options\"\n >\n <Text\n style={styles.triggerLabel}\n numberOfLines={1}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {triggerLabel}\n </Text>\n <Icon\n name=\"general.downChevron\"\n style={styles.triggerIcon}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityElementsHidden\n />\n </View>\n </MenuView>\n )\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n },\n trigger: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingVertical: 4,\n },\n triggerLabel: {\n flexShrink: 1,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n triggerIcon: {\n fontSize: tokens.fontSizeSm,\n color: colors.iconColorDefaultPrimary,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","PopoverMenuView","Text","jsx","_jsx","jsxs","_jsxs","MORE_FILTERS_ID","MORE_FILTERS_LABEL","FilterDropdown","t0","$","_c","options","selectedId","onSelect","onMoreFilters","triggerLabel","showMoreFilters","t1","maxWidth","undefined","styles","useStyles","MenuView","t2","t3","option","id","title","label","state","optionActions","map","t4","Symbol","for","displayInline","subactions","moreFiltersAction","actions","nativeEvent","event","handlePressAction","FilterDropdownTrigger","accessible","accessibilityRole","accessibilityHint","t5","container","style","children","viewProps","trigger","numberOfLines","triggerIcon","name","accessibilityElementsHidden","colors","iconColorDefaultPrimary","textColorDefaultPrimary","create","alignSelf","flexDirection","alignItems","gap","paddingVertical","flexShrink","fontWeight","color","fontSize","fontSizeSm"],"sources":["../../../src/components/display/filter_dropdown.tsx"],"sourcesContent":["import React from 'react'\nimport { LayoutChangeEvent, StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n Menu,\n MenuAction,\n MenuActionEvent,\n platformFontWeightBold,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Icon } from './icon'\nimport { PopoverMenuView } from './popover_menu_view'\nimport { Text } from './text'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst MORE_FILTERS_ID = 'more_filters'\nconst MORE_FILTERS_LABEL = 'More filters'\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface FilterDropdownOption {\n id: string\n label: string\n}\n\nexport interface FilterDropdownProps {\n options: FilterDropdownOption[]\n selectedId: string\n onSelect: (id: string) => void\n onMoreFilters: () => void\n triggerLabel: string\n showMoreFilters?: boolean\n /**\n * Widest the trigger may render, in points. Hosts that measure the trigger at its intrinsic\n * width need this for the label to truncate.\n */\n maxWidth?: number\n}\n\nexport function FilterDropdown({\n options,\n selectedId,\n onSelect,\n onMoreFilters,\n triggerLabel,\n showMoreFilters = true,\n maxWidth,\n}: FilterDropdownProps) {\n const styles = useStyles()\n const MenuView = Menu.View ?? PopoverMenuView\n\n const optionActions: MenuAction[] = options.map(option => ({\n id: option.id,\n title: option.label,\n state: option.id === selectedId ? ('on' as const) : ('off' as const),\n }))\n const moreFiltersAction: MenuAction = {\n id: MORE_FILTERS_ID,\n title: '',\n displayInline: true,\n subactions: [{ id: MORE_FILTERS_ID, title: MORE_FILTERS_LABEL }],\n }\n const actions = showMoreFilters ? [...optionActions, moreFiltersAction] : optionActions\n\n const handlePressAction = ({ nativeEvent }: MenuActionEvent) => {\n if (nativeEvent.event === MORE_FILTERS_ID) {\n onMoreFilters()\n } else {\n onSelect(nativeEvent.event)\n }\n }\n\n return (\n <MenuView actions={actions} onPressAction={handlePressAction} style={styles.container}>\n <FilterDropdownTrigger\n label={triggerLabel}\n maxWidth={maxWidth}\n accessible\n accessibilityRole=\"button\"\n accessibilityHint=\"Opens filter options\"\n />\n </MenuView>\n )\n}\n\n// =================================\n// ====== Trigger ==================\n// =================================\n\nexport interface FilterDropdownTriggerProps {\n label: string\n maxWidth?: number\n accessible?: boolean\n accessibilityRole?: 'button'\n accessibilityHint?: string\n accessibilityElementsHidden?: boolean\n importantForAccessibility?: 'no-hide-descendants'\n onLayout?: (event: LayoutChangeEvent) => void\n}\n\n/**\n * The label and chevron the dropdown opens from. Exported so a screen can render a hidden copy\n * to measure how wide a label is at the current font scale.\n */\nexport function FilterDropdownTrigger({\n label,\n maxWidth,\n ...viewProps\n}: FilterDropdownTriggerProps) {\n const styles = useStyles()\n\n return (\n <View style={[styles.trigger, maxWidth !== undefined && { maxWidth }]} {...viewProps}>\n <Text\n style={styles.triggerLabel}\n numberOfLines={1}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {label}\n </Text>\n <Icon\n name=\"general.downChevron\"\n style={styles.triggerIcon}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityElementsHidden\n />\n </View>\n )\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n },\n trigger: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingVertical: 4,\n },\n triggerLabel: {\n flexShrink: 1,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n triggerIcon: {\n fontSize: tokens.fontSizeSm,\n color: colors.iconColorDefaultPrimary,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversations_actions.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversations_actions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAO5D,eAAO,MAAM,wBAAwB,GAAI,mBAEtC;IACD,YAAY,EAAE,oBAAoB,CAAA;CACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDA,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,kBAAkB;IAAE,YAAY,EAAE,oBAAoB,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC5F,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB1B,CAAA"}
1
+ {"version":3,"file":"use_conversations_actions.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversations_actions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAO5D,eAAO,MAAM,wBAAwB,GAAI,mBAEtC;IACD,YAAY,EAAE,oBAAoB,CAAA;CACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDA,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,kBAAkB;IAAE,YAAY,EAAE,oBAAoB,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC5F,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB1B,CAAA"}
@@ -19,8 +19,8 @@ export const useConversationsMarkRead = t0 => {
19
19
  } = useConversationsContext();
20
20
  const currentPersonCache = useCurrentPersonCache();
21
21
  const {
22
- update,
23
- invalidate,
22
+ updateInAllLists,
23
+ invalidateAllLists,
24
24
  fetchUpdate
25
25
  } = useConversationsCache(args);
26
26
  let t1;
@@ -53,10 +53,9 @@ export const useConversationsMarkRead = t0 => {
53
53
  }
54
54
  const handlePersonUnreadCount = t2;
55
55
  let t3;
56
- if ($[4] !== conversation || $[5] !== conversationQueryKey || $[6] !== handlePersonUnreadCount || $[7] !== queryClient || $[8] !== update) {
56
+ if ($[4] !== conversation.id || $[5] !== conversationQueryKey || $[6] !== handlePersonUnreadCount || $[7] !== queryClient || $[8] !== updateInAllLists) {
57
57
  t3 = async read_0 => {
58
- update({
59
- ...conversation,
58
+ updateInAllLists(conversation.id, {
60
59
  unreadCount: read_0 ? 0 : 1,
61
60
  ...(read_0 ? {
62
61
  unreadReaction: false
@@ -67,11 +66,11 @@ export const useConversationsMarkRead = t0 => {
67
66
  }
68
67
  handlePersonUnreadCount(read_0);
69
68
  };
70
- $[4] = conversation;
69
+ $[4] = conversation.id;
71
70
  $[5] = conversationQueryKey;
72
71
  $[6] = handlePersonUnreadCount;
73
72
  $[7] = queryClient;
74
- $[8] = update;
73
+ $[8] = updateInAllLists;
75
74
  $[9] = t3;
76
75
  } else {
77
76
  t3 = $[9];
@@ -119,12 +118,12 @@ export const useConversationsMarkRead = t0 => {
119
118
  t6 = $[17];
120
119
  }
121
120
  let t7;
122
- if ($[18] !== invalidate) {
121
+ if ($[18] !== invalidateAllLists) {
123
122
  t7 = () => {
124
123
  Alert.alert("Oops", "Something went wrong updating this conversation, please try again");
125
- invalidate();
124
+ invalidateAllLists();
126
125
  };
127
- $[18] = invalidate;
126
+ $[18] = invalidateAllLists;
128
127
  $[19] = t7;
129
128
  } else {
130
129
  t7 = $[19];
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversations_actions.js","names":["useMutation","useQueryClient","Alert","useConversationsContext","useApiClient","getConversationRequestArgs","useConversationsCache","useCurrentPersonCache","getRequestQueryKey","useConversationsMarkRead","t0","$","_c","conversation","apiClient","queryClient","args","currentPersonCache","update","invalidate","fetchUpdate","t1","id","conversation_id","conversationQueryKey","t2","handlePersonUnreadCount","read","person","currentUnread","unreadCount","updatedUnread","Math","max","t3","read_0","unreadReaction","setQueryData","_temp","t4","t5","read_1","action","chat","post","url","data","type","attributes","fields","Conversation","t6","t7","alert","t8","onMutate","mutationKey","mutationFn","onSuccess","onError","t9","handleMarkRead","mutation","mutate","t10","t11","markRead","useConversationsMute","muted","conversationMembership","Symbol","for","muted_0","response","setMuted","useMarkAllRead","updateAll","onSettled","markAllRead","query","prev"],"sources":["../../src/hooks/use_conversations_actions.ts"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { Alert } from 'react-native'\nimport { useConversationsContext } from '../contexts/conversations_context'\nimport { ApiResource, ConversationResource } from '../types'\nimport { useApiClient } from './use_api_client'\nimport { getConversationRequestArgs } from './use_conversation'\nimport { useConversationsCache } from './use_conversations_cache'\nimport { useCurrentPersonCache } from './use_current_person'\nimport { getRequestQueryKey } from './use_suspense_api'\n\nexport const useConversationsMarkRead = ({\n conversation,\n}: {\n conversation: ConversationResource\n}) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const { args } = useConversationsContext()\n const currentPersonCache = useCurrentPersonCache()\n const { update, invalidate, fetchUpdate } = useConversationsCache(args)\n const conversationQueryKey = getRequestQueryKey(\n getConversationRequestArgs({ conversation_id: conversation.id })\n )\n\n function handlePersonUnreadCount(read: boolean) {\n currentPersonCache.update({}, person => {\n const currentUnread = person.unreadCount\n const updatedUnread = read ? Math.max(currentUnread - 1, 0) : currentUnread + 1\n return { ...person, unreadCount: updatedUnread }\n })\n }\n\n const { mutate: handleMarkRead, ...mutation } = useMutation({\n onMutate: async (read: boolean) => {\n update({\n ...conversation,\n unreadCount: read ? 0 : 1,\n ...(read ? { unreadReaction: false } : {}),\n })\n if (read) {\n queryClient.setQueryData<ApiResource<ConversationResource>>(conversationQueryKey, prev => {\n if (!prev?.data) return prev\n return { ...prev, data: { ...prev.data, unreadReaction: false } }\n })\n }\n handlePersonUnreadCount(read)\n },\n mutationKey: ['markRead', conversation.id],\n mutationFn: async (read: boolean) => {\n const action = read ? 'mark_read' : 'mark_unread'\n\n return apiClient.chat.post({\n url: `/me/conversations/${conversation.id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'unread_count,id' } },\n })\n },\n onSuccess: () => {\n fetchUpdate(conversation)\n },\n onError: () => {\n Alert.alert('Oops', 'Something went wrong updating this conversation, please try again')\n invalidate()\n },\n })\n\n return {\n read: conversation.unreadCount < 1, // prefer cache\n markRead: handleMarkRead,\n ...mutation,\n }\n}\n\nexport const useConversationsMute = ({ conversation }: { conversation: ConversationResource }) => {\n const apiClient = useApiClient()\n const { args } = useConversationsContext()\n const { update, invalidate } = useConversationsCache(args)\n\n const { mutate: setMuted, ...mutation } = useMutation({\n onMutate: async (muted: boolean) => {\n update({\n ...conversation,\n muted,\n conversationMembership: {\n ...conversation?.conversationMembership,\n muted,\n },\n })\n },\n mutationKey: ['muteConversation'],\n mutationFn: async (muted: boolean) => {\n const action = muted ? 'mute' : 'unmute'\n\n return apiClient.chat.post<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation.id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'muted' } },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n update(response.data)\n },\n onError: () => {\n Alert.alert('Oops', 'Something went wrong muting this conversation, please try again')\n invalidate()\n },\n })\n\n return {\n muted: conversation.muted, // prefer cache\n setMuted,\n ...mutation,\n }\n}\n\nexport const useMarkAllRead = () => {\n const apiClient = useApiClient()\n const { args } = useConversationsContext()\n const { invalidate, updateAll } = useConversationsCache(args)\n const { mutate: markAllRead, ...query } = useMutation({\n onMutate: () => {\n updateAll({\n unreadCount: 0,\n unreadReaction: false,\n })\n },\n mutationKey: ['markAllRead', args],\n mutationFn: () =>\n apiClient.chat.post({\n url: '/me/mark_all_read',\n }),\n onSettled: invalidate,\n })\n\n return {\n markAllRead,\n ...query,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"use_conversations_actions.js","names":["useMutation","useQueryClient","Alert","useConversationsContext","useApiClient","getConversationRequestArgs","useConversationsCache","useCurrentPersonCache","getRequestQueryKey","useConversationsMarkRead","t0","$","_c","conversation","apiClient","queryClient","args","currentPersonCache","updateInAllLists","invalidateAllLists","fetchUpdate","t1","id","conversation_id","conversationQueryKey","t2","handlePersonUnreadCount","read","update","person","currentUnread","unreadCount","updatedUnread","Math","max","t3","read_0","unreadReaction","setQueryData","_temp","t4","t5","read_1","action","chat","post","url","data","type","attributes","fields","Conversation","t6","t7","alert","t8","onMutate","mutationKey","mutationFn","onSuccess","onError","t9","handleMarkRead","mutation","mutate","t10","t11","markRead","useConversationsMute","invalidate","muted","conversationMembership","Symbol","for","muted_0","response","setMuted","useMarkAllRead","updateAll","onSettled","markAllRead","query","prev"],"sources":["../../src/hooks/use_conversations_actions.ts"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { Alert } from 'react-native'\nimport { useConversationsContext } from '../contexts/conversations_context'\nimport { ApiResource, ConversationResource } from '../types'\nimport { useApiClient } from './use_api_client'\nimport { getConversationRequestArgs } from './use_conversation'\nimport { useConversationsCache } from './use_conversations_cache'\nimport { useCurrentPersonCache } from './use_current_person'\nimport { getRequestQueryKey } from './use_suspense_api'\n\nexport const useConversationsMarkRead = ({\n conversation,\n}: {\n conversation: ConversationResource\n}) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const { args } = useConversationsContext()\n const currentPersonCache = useCurrentPersonCache()\n const { updateInAllLists, invalidateAllLists, fetchUpdate } = useConversationsCache(args)\n const conversationQueryKey = getRequestQueryKey(\n getConversationRequestArgs({ conversation_id: conversation.id })\n )\n\n function handlePersonUnreadCount(read: boolean) {\n currentPersonCache.update({}, person => {\n const currentUnread = person.unreadCount\n const updatedUnread = read ? Math.max(currentUnread - 1, 0) : currentUnread + 1\n return { ...person, unreadCount: updatedUnread }\n })\n }\n\n const { mutate: handleMarkRead, ...mutation } = useMutation({\n onMutate: async (read: boolean) => {\n updateInAllLists(conversation.id, {\n unreadCount: read ? 0 : 1,\n ...(read ? { unreadReaction: false } : {}),\n })\n if (read) {\n queryClient.setQueryData<ApiResource<ConversationResource>>(conversationQueryKey, prev => {\n if (!prev?.data) return prev\n return { ...prev, data: { ...prev.data, unreadReaction: false } }\n })\n }\n handlePersonUnreadCount(read)\n },\n mutationKey: ['markRead', conversation.id],\n mutationFn: async (read: boolean) => {\n const action = read ? 'mark_read' : 'mark_unread'\n\n return apiClient.chat.post({\n url: `/me/conversations/${conversation.id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'unread_count,id' } },\n })\n },\n onSuccess: () => {\n fetchUpdate(conversation)\n },\n onError: () => {\n Alert.alert('Oops', 'Something went wrong updating this conversation, please try again')\n invalidateAllLists()\n },\n })\n\n return {\n read: conversation.unreadCount < 1, // prefer cache\n markRead: handleMarkRead,\n ...mutation,\n }\n}\n\nexport const useConversationsMute = ({ conversation }: { conversation: ConversationResource }) => {\n const apiClient = useApiClient()\n const { args } = useConversationsContext()\n const { update, invalidate } = useConversationsCache(args)\n\n const { mutate: setMuted, ...mutation } = useMutation({\n onMutate: async (muted: boolean) => {\n update({\n ...conversation,\n muted,\n conversationMembership: {\n ...conversation?.conversationMembership,\n muted,\n },\n })\n },\n mutationKey: ['muteConversation'],\n mutationFn: async (muted: boolean) => {\n const action = muted ? 'mute' : 'unmute'\n\n return apiClient.chat.post<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation.id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'muted' } },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n update(response.data)\n },\n onError: () => {\n Alert.alert('Oops', 'Something went wrong muting this conversation, please try again')\n invalidate()\n },\n })\n\n return {\n muted: conversation.muted, // prefer cache\n setMuted,\n ...mutation,\n }\n}\n\nexport const useMarkAllRead = () => {\n const apiClient = useApiClient()\n const { args } = useConversationsContext()\n const { invalidate, updateAll } = useConversationsCache(args)\n const { mutate: markAllRead, ...query } = useMutation({\n onMutate: () => {\n updateAll({\n unreadCount: 0,\n unreadReaction: false,\n })\n },\n mutationKey: ['markAllRead', args],\n mutationFn: () =>\n apiClient.chat.post({\n url: '/me/mark_all_read',\n }),\n onSettled: invalidate,\n })\n\n return {\n markAllRead,\n ...query,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,9 @@ export declare function useConversationsCache(args?: Partial<ConversationRequest
12
12
  id: number;
13
13
  }) => Promise<void>;
14
14
  invalidate: () => Promise<void>;
15
+ invalidateAllLists: () => Promise<void>;
15
16
  update: (conversation: ConversationResource) => Promise<void>;
16
17
  updateAll: (update: Partial<ConversationResource>) => Promise<void>;
18
+ updateInAllLists: (id: number, update: Partial<ConversationResource>) => void;
17
19
  };
18
20
  //# sourceMappingURL=use_conversations_cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversations_cache.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversations_cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAO9D,OAAO,EAAE,uBAAuB,EAA+B,MAAM,+BAA+B,CAAA;AAMpG,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;2BAkB/B,oBAAoB;sBAqCrB;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;wBAkBrB;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;0BAPZ;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;;2BAhDR,oBAAoB;wBA4B/B,OAAO,CAAC,oBAAoB,CAAC;EAmD/D"}
1
+ {"version":3,"file":"use_conversations_cache.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversations_cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAO9D,OAAO,EAAE,uBAAuB,EAA+B,MAAM,+BAA+B,CAAA;AAMpG,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;2BAkB/B,oBAAoB;sBAmDrB;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;wBAkBrB;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;0BAPZ;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;;;2BA9DR,oBAAoB;wBA4B/B,OAAO,CAAC,oBAAoB,CAAC;2BAShC,MAAM,UAAU,OAAO,CAAC,oBAAoB,CAAC;EA0D5E"}
@@ -5,7 +5,7 @@ import { getConversationsRequestArgs } from '../utils/request/conversation';
5
5
  import { useApiClient } from './use_api_client';
6
6
  import { getRequestQueryKey } from './use_suspense_api';
7
7
  export function useConversationsCache(args) {
8
- const $ = _c(35);
8
+ const $ = _c(43);
9
9
  const apiClient = useApiClient();
10
10
  const queryClient = useQueryClient();
11
11
  let conversationsRequestArgs;
@@ -110,56 +110,93 @@ export function useConversationsCache(args) {
110
110
  }
111
111
  const updateAll = t4;
112
112
  let t5;
113
- if ($[15] !== conversationQueryKey || $[16] !== queryClient) {
114
- t5 = t6 => {
115
- const {
116
- id: id_0
117
- } = t6;
118
- if (!id_0) {
119
- return;
120
- }
121
- queryClient.setQueryData(conversationQueryKey, prev_2 => deleteRecordInPagesData({
122
- data: prev_2,
123
- record: {
124
- id: id_0
113
+ if ($[15] !== conversationsRequestArgs || $[16] !== queryClient) {
114
+ t5 = (id_0, update_0) => {
115
+ queryClient.setQueriesData({
116
+ queryKey: [conversationsRequestArgs.url]
117
+ }, prev_2 => {
118
+ if (!prev_2?.pages) {
119
+ return prev_2;
125
120
  }
126
- }));
121
+ return updateAllRecordsInPagesData({
122
+ data: prev_2,
123
+ processRecord: record_2 => record_2.id === id_0 ? {
124
+ ...record_2,
125
+ ...update_0
126
+ } : record_2
127
+ });
128
+ });
127
129
  };
128
- $[15] = conversationQueryKey;
130
+ $[15] = conversationsRequestArgs;
129
131
  $[16] = queryClient;
130
132
  $[17] = t5;
131
133
  } else {
132
134
  t5 = $[17];
133
135
  }
134
- const handleConversationDestroy = t5;
136
+ const updateInAllLists = t5;
135
137
  let t6;
136
- if ($[18] !== fetchConversation || $[19] !== updateOnly) {
137
- t6 = async t7 => {
138
+ if ($[18] !== conversationsRequestArgs || $[19] !== queryClient) {
139
+ t6 = () => queryClient.invalidateQueries({
140
+ queryKey: [conversationsRequestArgs.url]
141
+ });
142
+ $[18] = conversationsRequestArgs;
143
+ $[19] = queryClient;
144
+ $[20] = t6;
145
+ } else {
146
+ t6 = $[20];
147
+ }
148
+ const invalidateAllLists = t6;
149
+ let t7;
150
+ if ($[21] !== conversationQueryKey || $[22] !== queryClient) {
151
+ t7 = t8 => {
138
152
  const {
139
153
  id: id_1
140
- } = t7;
141
- const conversation_1 = await fetchConversation(id_1).catch(_temp3);
154
+ } = t8;
155
+ if (!id_1) {
156
+ return;
157
+ }
158
+ queryClient.setQueryData(conversationQueryKey, prev_3 => deleteRecordInPagesData({
159
+ data: prev_3,
160
+ record: {
161
+ id: id_1
162
+ }
163
+ }));
164
+ };
165
+ $[21] = conversationQueryKey;
166
+ $[22] = queryClient;
167
+ $[23] = t7;
168
+ } else {
169
+ t7 = $[23];
170
+ }
171
+ const handleConversationDestroy = t7;
172
+ let t8;
173
+ if ($[24] !== fetchConversation || $[25] !== updateOnly) {
174
+ t8 = async t9 => {
175
+ const {
176
+ id: id_2
177
+ } = t9;
178
+ const conversation_1 = await fetchConversation(id_2).catch(_temp3);
142
179
  if (!conversation_1) {
143
180
  return;
144
181
  }
145
182
  updateOnly(conversation_1);
146
183
  };
147
- $[18] = fetchConversation;
148
- $[19] = updateOnly;
149
- $[20] = t6;
184
+ $[24] = fetchConversation;
185
+ $[25] = updateOnly;
186
+ $[26] = t8;
150
187
  } else {
151
- t6 = $[20];
188
+ t8 = $[26];
152
189
  }
153
- const fetchAndUpdate = t6;
154
- let t7;
155
- if ($[21] !== fetchConversation || $[22] !== handleConversationDestroy || $[23] !== updateOrCreate) {
156
- t7 = async t8 => {
190
+ const fetchAndUpdate = t8;
191
+ let t9;
192
+ if ($[27] !== fetchConversation || $[28] !== handleConversationDestroy || $[29] !== updateOrCreate) {
193
+ t9 = async t10 => {
157
194
  const {
158
- id: id_2
159
- } = t8;
195
+ id: id_3
196
+ } = t10;
160
197
  let conversation_2;
161
198
  try {
162
- conversation_2 = await fetchConversation(id_2);
199
+ conversation_2 = await fetchConversation(id_3);
163
200
  } catch {
164
201
  return;
165
202
  }
@@ -167,51 +204,55 @@ export function useConversationsCache(args) {
167
204
  updateOrCreate(conversation_2);
168
205
  } else {
169
206
  handleConversationDestroy({
170
- id: id_2
207
+ id: id_3
171
208
  });
172
209
  }
173
210
  };
174
- $[21] = fetchConversation;
175
- $[22] = handleConversationDestroy;
176
- $[23] = updateOrCreate;
177
- $[24] = t7;
211
+ $[27] = fetchConversation;
212
+ $[28] = handleConversationDestroy;
213
+ $[29] = updateOrCreate;
214
+ $[30] = t9;
178
215
  } else {
179
- t7 = $[24];
216
+ t9 = $[30];
180
217
  }
181
- const fetchAndSync = t7;
182
- let t8;
183
- if ($[25] !== conversationQueryKey || $[26] !== queryClient) {
184
- t8 = () => queryClient.invalidateQueries({
218
+ const fetchAndSync = t9;
219
+ let t10;
220
+ if ($[31] !== conversationQueryKey || $[32] !== queryClient) {
221
+ t10 = () => queryClient.invalidateQueries({
185
222
  queryKey: conversationQueryKey
186
223
  });
187
- $[25] = conversationQueryKey;
188
- $[26] = queryClient;
189
- $[27] = t8;
224
+ $[31] = conversationQueryKey;
225
+ $[32] = queryClient;
226
+ $[33] = t10;
190
227
  } else {
191
- t8 = $[27];
228
+ t10 = $[33];
192
229
  }
193
- let t9;
194
- if ($[28] !== fetchAndSync || $[29] !== fetchAndUpdate || $[30] !== handleConversationDestroy || $[31] !== t8 || $[32] !== updateAll || $[33] !== updateOrCreate) {
195
- t9 = {
230
+ let t11;
231
+ if ($[34] !== fetchAndSync || $[35] !== fetchAndUpdate || $[36] !== handleConversationDestroy || $[37] !== invalidateAllLists || $[38] !== t10 || $[39] !== updateAll || $[40] !== updateInAllLists || $[41] !== updateOrCreate) {
232
+ t11 = {
196
233
  create: updateOrCreate,
197
234
  destroy: handleConversationDestroy,
198
235
  fetchSync: fetchAndSync,
199
236
  fetchUpdate: fetchAndUpdate,
200
- invalidate: t8,
237
+ invalidate: t10,
238
+ invalidateAllLists,
201
239
  update: updateOrCreate,
202
- updateAll
240
+ updateAll,
241
+ updateInAllLists
203
242
  };
204
- $[28] = fetchAndSync;
205
- $[29] = fetchAndUpdate;
206
- $[30] = handleConversationDestroy;
207
- $[31] = t8;
208
- $[32] = updateAll;
209
- $[33] = updateOrCreate;
210
- $[34] = t9;
243
+ $[34] = fetchAndSync;
244
+ $[35] = fetchAndUpdate;
245
+ $[36] = handleConversationDestroy;
246
+ $[37] = invalidateAllLists;
247
+ $[38] = t10;
248
+ $[39] = updateAll;
249
+ $[40] = updateInAllLists;
250
+ $[41] = updateOrCreate;
251
+ $[42] = t11;
211
252
  } else {
212
- t9 = $[34];
253
+ t11 = $[42];
213
254
  }
214
- return t9;
255
+ return t11;
215
256
  }
216
257
  function _temp3() {}
217
258
  function _temp2(record_0, current_0) {