@planningcenter/chat-react-native 4.4.1-qa-staging.25 → 4.4.1-qa-staging.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/display/filter_dropdown.d.ts +6 -1
- package/build/components/display/filter_dropdown.d.ts.map +1 -1
- package/build/components/display/filter_dropdown.js +55 -35
- package/build/components/display/filter_dropdown.js.map +1 -1
- package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map +1 -1
- package/build/screens/conversations/components/filter_dropdown_list_header_component.js +137 -94
- package/build/screens/conversations/components/filter_dropdown_list_header_component.js.map +1 -1
- package/package.json +3 -3
- package/src/components/display/filter_dropdown.tsx +7 -1
- package/src/screens/conversations/components/__tests__/filter_dropdown_list_header_component.test.tsx +19 -4
- package/src/screens/conversations/components/filter_dropdown_list_header_component.tsx +38 -12
|
@@ -9,6 +9,11 @@ export interface FilterDropdownProps {
|
|
|
9
9
|
onMoreFilters: () => void;
|
|
10
10
|
triggerLabel: string;
|
|
11
11
|
showMoreFilters?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Widest the trigger may render, in points. Hosts that measure the trigger at its intrinsic
|
|
14
|
+
* width need this for the label to truncate.
|
|
15
|
+
*/
|
|
16
|
+
maxWidth?: number;
|
|
12
17
|
}
|
|
13
|
-
export declare function FilterDropdown({ options, selectedId, onSelect, onMoreFilters, triggerLabel, showMoreFilters, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function FilterDropdown({ options, selectedId, onSelect, onMoreFilters, triggerLabel, showMoreFilters, maxWidth, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
14
19
|
//# 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":"AAyBA,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;
|
|
1
|
+
{"version":3,"file":"filter_dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/filter_dropdown.tsx"],"names":[],"mappings":"AAyBA,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,2CAgDrB"}
|
|
@@ -19,14 +19,15 @@ const MORE_FILTERS_LABEL = 'More filters';
|
|
|
19
19
|
// =================================
|
|
20
20
|
|
|
21
21
|
export function FilterDropdown(t0) {
|
|
22
|
-
const $ = _c(
|
|
22
|
+
const $ = _c(29);
|
|
23
23
|
const {
|
|
24
24
|
options,
|
|
25
25
|
selectedId,
|
|
26
26
|
onSelect,
|
|
27
27
|
onMoreFilters,
|
|
28
28
|
triggerLabel,
|
|
29
|
-
showMoreFilters: t1
|
|
29
|
+
showMoreFilters: t1,
|
|
30
|
+
maxWidth
|
|
30
31
|
} = t0;
|
|
31
32
|
const showMoreFilters = t1 === undefined ? true : t1;
|
|
32
33
|
const styles = useStyles();
|
|
@@ -90,65 +91,84 @@ export function FilterDropdown(t0) {
|
|
|
90
91
|
}
|
|
91
92
|
const handlePressAction = t3;
|
|
92
93
|
let t4;
|
|
93
|
-
if ($[10] !==
|
|
94
|
-
t4 =
|
|
94
|
+
if ($[10] !== maxWidth) {
|
|
95
|
+
t4 = maxWidth !== undefined && {
|
|
96
|
+
maxWidth
|
|
97
|
+
};
|
|
98
|
+
$[10] = maxWidth;
|
|
99
|
+
$[11] = t4;
|
|
100
|
+
} else {
|
|
101
|
+
t4 = $[11];
|
|
102
|
+
}
|
|
103
|
+
let t5;
|
|
104
|
+
if ($[12] !== styles.trigger || $[13] !== t4) {
|
|
105
|
+
t5 = [styles.trigger, t4];
|
|
106
|
+
$[12] = styles.trigger;
|
|
107
|
+
$[13] = t4;
|
|
108
|
+
$[14] = t5;
|
|
109
|
+
} else {
|
|
110
|
+
t5 = $[14];
|
|
111
|
+
}
|
|
112
|
+
let t6;
|
|
113
|
+
if ($[15] !== styles.triggerLabel || $[16] !== triggerLabel) {
|
|
114
|
+
t6 = /*#__PURE__*/_jsx(Text, {
|
|
95
115
|
style: styles.triggerLabel,
|
|
96
116
|
numberOfLines: 1,
|
|
97
117
|
maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
|
|
98
118
|
children: triggerLabel
|
|
99
119
|
});
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
120
|
+
$[15] = styles.triggerLabel;
|
|
121
|
+
$[16] = triggerLabel;
|
|
122
|
+
$[17] = t6;
|
|
103
123
|
} else {
|
|
104
|
-
|
|
124
|
+
t6 = $[17];
|
|
105
125
|
}
|
|
106
|
-
let
|
|
107
|
-
if ($[
|
|
108
|
-
|
|
126
|
+
let t7;
|
|
127
|
+
if ($[18] !== styles.triggerIcon) {
|
|
128
|
+
t7 = /*#__PURE__*/_jsx(Icon, {
|
|
109
129
|
name: "general.downChevron",
|
|
110
130
|
style: styles.triggerIcon,
|
|
111
131
|
maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
|
|
112
132
|
accessibilityElementsHidden: true
|
|
113
133
|
});
|
|
114
|
-
$[
|
|
115
|
-
$[
|
|
134
|
+
$[18] = styles.triggerIcon;
|
|
135
|
+
$[19] = t7;
|
|
116
136
|
} else {
|
|
117
|
-
|
|
137
|
+
t7 = $[19];
|
|
118
138
|
}
|
|
119
|
-
let
|
|
120
|
-
if ($[
|
|
121
|
-
|
|
122
|
-
style:
|
|
139
|
+
let t8;
|
|
140
|
+
if ($[20] !== t5 || $[21] !== t6 || $[22] !== t7) {
|
|
141
|
+
t8 = /*#__PURE__*/_jsxs(View, {
|
|
142
|
+
style: t5,
|
|
123
143
|
accessible: true,
|
|
124
144
|
accessibilityRole: "button",
|
|
125
145
|
accessibilityHint: "Opens filter options",
|
|
126
|
-
children: [
|
|
146
|
+
children: [t6, t7]
|
|
127
147
|
});
|
|
128
|
-
$[
|
|
129
|
-
$[
|
|
130
|
-
$[
|
|
131
|
-
$[
|
|
148
|
+
$[20] = t5;
|
|
149
|
+
$[21] = t6;
|
|
150
|
+
$[22] = t7;
|
|
151
|
+
$[23] = t8;
|
|
132
152
|
} else {
|
|
133
|
-
|
|
153
|
+
t8 = $[23];
|
|
134
154
|
}
|
|
135
|
-
let
|
|
136
|
-
if ($[
|
|
137
|
-
|
|
155
|
+
let t9;
|
|
156
|
+
if ($[24] !== actions || $[25] !== handlePressAction || $[26] !== styles.container || $[27] !== t8) {
|
|
157
|
+
t9 = /*#__PURE__*/_jsx(Menu.View, {
|
|
138
158
|
actions: actions,
|
|
139
159
|
onPressAction: handlePressAction,
|
|
140
160
|
style: styles.container,
|
|
141
|
-
children:
|
|
161
|
+
children: t8
|
|
142
162
|
});
|
|
143
|
-
$[
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
146
|
-
$[
|
|
147
|
-
$[
|
|
163
|
+
$[24] = actions;
|
|
164
|
+
$[25] = handlePressAction;
|
|
165
|
+
$[26] = styles.container;
|
|
166
|
+
$[27] = t8;
|
|
167
|
+
$[28] = t9;
|
|
148
168
|
} else {
|
|
149
|
-
|
|
169
|
+
t9 = $[28];
|
|
150
170
|
}
|
|
151
|
-
return
|
|
171
|
+
return t9;
|
|
152
172
|
}
|
|
153
173
|
|
|
154
174
|
// =================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","Text","jsx","_jsx","jsxs","_jsxs","MORE_FILTERS_ID","MORE_FILTERS_LABEL","FilterDropdown","t0","$","_c","options","selectedId","onSelect","onMoreFilters","triggerLabel","showMoreFilters","t1","undefined","styles","useStyles","t2","t3","option","id","title","label","state","optionActions","map","t4","Symbol","for","displayInline","subactions","moreFiltersAction","actions","nativeEvent","event","handlePressAction","style","numberOfLines","children","
|
|
1
|
+
{"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","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","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 { 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\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 <Menu.View 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 </Menu.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":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SACEC,iCAAiC,EACjCC,IAAI,EAGJC,sBAAsB,QACjB,aAAa;AACpB,SAASC,MAAM,QAAQ,8BAA8B;AACrD,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,IAAI,QAAQ,QAAQ;;AAE7B;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEA,MAAMC,eAAe,GAAG,cAAc;AACtC,MAAMC,kBAAkB,GAAG,cAAc;;AAEzC;AACA;AACA;;AAqBA,OAAO,SAAAC,eAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAwB;IAAAC,OAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,aAAA;IAAAC,YAAA;IAAAC,eAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAV,EAQT;EAFpB,MAAAQ,eAAA,GAAAC,EAAsB,KAAtBE,SAAsB,GAAtB,IAAsB,GAAtBF,EAAsB;EAGtB,MAAAG,MAAA,GAAeC,SAAS,CAAC,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAE,OAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAO,eAAA;IAAA,IAAAO,EAAA;IAAA,IAAAd,CAAA,QAAAG,UAAA;MAEsBW,EAAA,GAAAC,MAAA,KAAW;QAAAC,EAAA,EACrDD,MAAM,CAAAC,EAAG;QAAAC,KAAA,EACNF,MAAM,CAAAG,KAAM;QAAAC,KAAA,EACZJ,MAAM,CAAAC,EAAG,KAAKb,UAA+C,GAAjC,IAAI,GAAc;MACvD,CAAC,CAAC;MAAAH,CAAA,MAAAG,UAAA;MAAAH,CAAA,MAAAc,EAAA;IAAA;MAAAA,EAAA,GAAAd,CAAA;IAAA;IAJF,MAAAoB,aAAA,GAAoClB,OAAO,CAAAmB,GAAI,CAACP,EAI9C,CAAC;IAAA,IAAAQ,EAAA;IAAA,IAAAtB,CAAA,QAAAuB,MAAA,CAAAC,GAAA;MACmCF,EAAA;QAAAN,EAAA,EAChCpB,eAAe;QAAAqB,KAAA,EACZ,EAAE;QAAAQ,aAAA,EACM,IAAI;QAAAC,UAAA,EACP,CAAC;UAAAV,EAAA,EAAMpB,eAAe;UAAAqB,KAAA,EAASpB;QAAmB,CAAC;MACjE,CAAC;MAAAG,CAAA,MAAAsB,EAAA;IAAA;MAAAA,EAAA,GAAAtB,CAAA;IAAA;IALD,MAAA2B,iBAAA,GAAsCL,EAKrC;IACeT,EAAA,GAAAN,eAAe,GAAf,IAAsBa,aAAa,EAAEO,iBAAiB,CAAiB,GAAvEP,aAAuE;IAAApB,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAO,eAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAAvF,MAAA4B,OAAA,GAAgBf,EAAuE;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAK,aAAA,IAAAL,CAAA,QAAAI,QAAA;IAE7DU,EAAA,GAAAQ,EAAA;MAAC;QAAAO;MAAA,IAAAP,EAAgC;MACzD,IAAIO,WAAW,CAAAC,KAAM,KAAKlC,eAAe;QACvCS,aAAa,CAAC,CAAC;MAAA;QAEfD,QAAQ,CAACyB,WAAW,CAAAC,KAAM,CAAC;MAAA;IAC5B,CACF;IAAA9B,CAAA,MAAAK,aAAA;IAAAL,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAND,MAAA+B,iBAAA,GAA0BjB,EAMzB;EAAA,IAAAQ,EAAA;EAAA,IAAAtB,CAAA,SAAAS,QAAA;IAK6Ba,EAAA,GAAAb,QAAQ,KAAKC,SAAyB,IAAtC;MAAAD;IAAqC,CAAC;IAAAT,CAAA,OAAAS,QAAA;IAAAT,CAAA,OAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAAA,IAAAgC,EAAA;EAAA,IAAAhC,CAAA,SAAAW,MAAA,CAAAsB,OAAA,IAAAjC,CAAA,SAAAsB,EAAA;IAAvDU,EAAA,IAACrB,MAAM,CAAAsB,OAAQ,EAAEX,EAAsC,CAAC;IAAAtB,CAAA,OAAAW,MAAA,CAAAsB,OAAA;IAAAjC,CAAA,OAAAsB,EAAA;IAAAtB,CAAA,OAAAgC,EAAA;EAAA;IAAAA,EAAA,GAAAhC,CAAA;EAAA;EAAA,IAAAkC,EAAA;EAAA,IAAAlC,CAAA,SAAAW,MAAA,CAAAL,YAAA,IAAAN,CAAA,SAAAM,YAAA;IAK/D4B,EAAA,gBAAAzC,IAAA,CAACF,IAAI;MACI4C,KAAmB,EAAnBxB,MAAM,CAAAL,YAAa;MACX8B,aAAC,EAAD,CAAC;MACOlD,qBAAiC,EAAjCA,iCAAiC;MAAAmD,QAAA,EAEvD/B;IAAY,CACT,CAAC;IAAAN,CAAA,OAAAW,MAAA,CAAAL,YAAA;IAAAN,CAAA,OAAAM,YAAA;IAAAN,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,IAAAsC,EAAA;EAAA,IAAAtC,CAAA,SAAAW,MAAA,CAAA4B,WAAA;IACPD,EAAA,gBAAA7C,IAAA,CAACH,IAAI;MACEkD,IAAqB,EAArB,qBAAqB;MACnBL,KAAkB,EAAlBxB,MAAM,CAAA4B,WAAY;MACFrD,qBAAiC,EAAjCA,iCAAiC;MACxDuD,2BAA2B,EAA3B;IAA2B,CAC5B,CAAC;IAAAzC,CAAA,OAAAW,MAAA,CAAA4B,WAAA;IAAAvC,CAAA,OAAAsC,EAAA;EAAA;IAAAA,EAAA,GAAAtC,CAAA;EAAA;EAAA,IAAA0C,EAAA;EAAA,IAAA1C,CAAA,SAAAgC,EAAA,IAAAhC,CAAA,SAAAkC,EAAA,IAAAlC,CAAA,SAAAsC,EAAA;IAlBJI,EAAA,gBAAA/C,KAAA,CAACX,IAAI;MACImD,KAAwD,EAAxDH,EAAwD;MAC/DW,UAAU,EAAV,IAAU;MACQC,iBAAQ,EAAR,QAAQ;MACRC,iBAAsB,EAAtB,sBAAsB;MAAAR,QAAA,GAExCH,EAMO,EACPI,EAKE;IAAA,CACE,CAAC;IAAAtC,CAAA,OAAAgC,EAAA;IAAAhC,CAAA,OAAAkC,EAAA;IAAAlC,CAAA,OAAAsC,EAAA;IAAAtC,CAAA,OAAA0C,EAAA;EAAA;IAAAA,EAAA,GAAA1C,CAAA;EAAA;EAAA,IAAA8C,EAAA;EAAA,IAAA9C,CAAA,SAAA4B,OAAA,IAAA5B,CAAA,SAAA+B,iBAAA,IAAA/B,CAAA,SAAAW,MAAA,CAAAoC,SAAA,IAAA/C,CAAA,SAAA0C,EAAA;IApBTI,EAAA,gBAAArD,IAAA,CAAAN,IAAA,CAAAH,IAAA;MAAoB4C,OAAO,EAAPA,OAAO;MAAiBG,aAAiB,EAAjBA,iBAAiB;MAASI,KAAgB,EAAhBxB,MAAM,CAAAoC,SAAU;MAAAV,QAAA,EACpFK;IAmBO,CACE,CAAC;IAAA1C,CAAA,OAAA4B,OAAA;IAAA5B,CAAA,OAAA+B,iBAAA;IAAA/B,CAAA,OAAAW,MAAA,CAAAoC,SAAA;IAAA/C,CAAA,OAAA0C,EAAA;IAAA1C,CAAA,OAAA8C,EAAA;EAAA;IAAAA,EAAA,GAAA9C,CAAA;EAAA;EAAA,OArBZ8C,EAqBY;AAAA;;AAIhB;AACA;AACA;;AAEA,MAAMlC,SAAS,GAAGA,CAAA;EAAA,MAAAZ,CAAA,GAAAC,EAAA;EAChB;IAAA+C;EAAA,IAAmB/D,QAAQ,CAAC,CAAC;EAAA,IAAAc,EAAA;EAAA,IAAAC,CAAA,QAAAgD,MAAA,CAAAC,uBAAA,IAAAjD,CAAA,QAAAgD,MAAA,CAAAE,uBAAA;IAEtBnD,EAAA,GAAAhB,UAAU,CAAAoE,MAAO,CAAC;MAAAJ,SAAA,EACZ;QAAAK,SAAA,EACE;MACb,CAAC;MAAAnB,OAAA,EACQ;QAAAoB,aAAA,EACQ,KAAK;QAAAC,UAAA,EACR,QAAQ;QAAAC,GAAA,EACf,CAAC;QAAAC,eAAA,EACW;MACnB,CAAC;MAAAlD,YAAA,EACa;QAAAmD,UAAA,EACA,CAAC;QAAAC,UAAA,EACDtE,sBAAsB;QAAAuE,KAAA,EAC3BX,MAAM,CAAAE;MACf,CAAC;MAAAX,WAAA,EACY;QAAAqB,QAAA,EACDvE,MAAM,CAAAwE,UAAW;QAAAF,KAAA,EACpBX,MAAM,CAAAC;MACf;IACF,CAAC,CAAC;IAAAjD,CAAA,MAAAgD,MAAA,CAAAC,uBAAA;IAAAjD,CAAA,MAAAgD,MAAA,CAAAE,uBAAA;IAAAlD,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OAnBKD,EAmBL;AAAA,CACH","ignoreList":[]}
|
package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter_dropdown_list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filter_dropdown_list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"names":[],"mappings":"AA+CA,eAAO,MAAM,iCAAiC,+CAsO7C,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { c as _c } from "react/compiler-runtime";
|
|
2
2
|
import { useNavigation, useRoute } from '@react-navigation/native';
|
|
3
|
-
import React, { useCallback, useMemo } from 'react';
|
|
3
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
4
4
|
import { Alert, StyleSheet, View } from 'react-native';
|
|
5
5
|
import { FilterDropdown, TextButton } from '../../../components';
|
|
6
|
-
import {
|
|
6
|
+
import { useCanBrowseArchivedConversations, useCanCreateConversations, useCurrentPersonCache, useDirectMessagesEligible, useFontScale, useHasDirectMessages, useNewConversationEntry, useTheme } from '../../../hooks';
|
|
7
7
|
import { useApiGet } from '../../../hooks/use_api';
|
|
8
8
|
import { useMarkAllRead } from '../../../hooks/use_conversations_actions';
|
|
9
9
|
import { useCanDisplayGroups } from '../../../hooks/use_groups';
|
|
@@ -14,6 +14,8 @@ import { Haptic } from '../../../utils/native_adapters';
|
|
|
14
14
|
import { ListHeaderActionButton } from './list_header_action_button';
|
|
15
15
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
16
|
const ROW_PADDING_HORIZONTAL = 16;
|
|
17
|
+
const HEADING_ROW_GAP = 12;
|
|
18
|
+
const DEFAULT_FONT_SCALE = 1;
|
|
17
19
|
const ALL_CONVERSATIONS_LABEL = 'All conversations';
|
|
18
20
|
const ARCHIVED_LABEL = 'Archived';
|
|
19
21
|
var FilterTypes = /*#__PURE__*/function (FilterTypes) {
|
|
@@ -37,7 +39,7 @@ const FILTER_PARAMS = {
|
|
|
37
39
|
}
|
|
38
40
|
};
|
|
39
41
|
export const FilterDropdownListHeaderComponent = () => {
|
|
40
|
-
const $ = _c(
|
|
42
|
+
const $ = _c(94);
|
|
41
43
|
const navigation = useNavigation();
|
|
42
44
|
let t0;
|
|
43
45
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
@@ -394,114 +396,153 @@ export const FilterDropdownListHeaderComponent = () => {
|
|
|
394
396
|
}
|
|
395
397
|
const alertMarkAllRead = t24;
|
|
396
398
|
const showMoreFilters = canFilterByGroups || canFilterByTeams || canBrowseArchived;
|
|
397
|
-
const
|
|
399
|
+
const stacked = useFontScale() > DEFAULT_FONT_SCALE;
|
|
398
400
|
let t25;
|
|
399
|
-
if ($[53] !==
|
|
400
|
-
t25 =
|
|
401
|
+
if ($[53] !== stacked) {
|
|
402
|
+
t25 = {
|
|
403
|
+
stacked
|
|
404
|
+
};
|
|
405
|
+
$[53] = stacked;
|
|
406
|
+
$[54] = t25;
|
|
407
|
+
} else {
|
|
408
|
+
t25 = $[54];
|
|
409
|
+
}
|
|
410
|
+
const styles = useStyles(t25);
|
|
411
|
+
const [rowWidth, setRowWidth] = useState();
|
|
412
|
+
const [actionsWidth, setActionsWidth] = useState();
|
|
413
|
+
let t26;
|
|
414
|
+
if ($[55] === Symbol.for("react.memo_cache_sentinel")) {
|
|
415
|
+
t26 = event => {
|
|
416
|
+
setRowWidth(event.nativeEvent.layout.width);
|
|
417
|
+
};
|
|
418
|
+
$[55] = t26;
|
|
419
|
+
} else {
|
|
420
|
+
t26 = $[55];
|
|
421
|
+
}
|
|
422
|
+
const handleRowLayout = t26;
|
|
423
|
+
let t27;
|
|
424
|
+
if ($[56] === Symbol.for("react.memo_cache_sentinel")) {
|
|
425
|
+
t27 = event_0 => {
|
|
426
|
+
setActionsWidth(event_0.nativeEvent.layout.width);
|
|
427
|
+
};
|
|
428
|
+
$[56] = t27;
|
|
429
|
+
} else {
|
|
430
|
+
t27 = $[56];
|
|
431
|
+
}
|
|
432
|
+
const handleActionsLayout = t27;
|
|
433
|
+
const triggerMaxWidth = !stacked && rowWidth !== undefined && actionsWidth !== undefined ? rowWidth - ROW_PADDING_HORIZONTAL * 2 - actionsWidth - HEADING_ROW_GAP : undefined;
|
|
434
|
+
let t28;
|
|
435
|
+
if ($[57] !== active || $[58] !== handleOpenConversationFilters || $[59] !== handleSelectFilter || $[60] !== options || $[61] !== showMoreFilters || $[62] !== triggerLabel || $[63] !== triggerMaxWidth) {
|
|
436
|
+
t28 = /*#__PURE__*/_jsx(FilterDropdown, {
|
|
401
437
|
options: options,
|
|
402
438
|
selectedId: active,
|
|
403
439
|
onSelect: handleSelectFilter,
|
|
404
440
|
onMoreFilters: handleOpenConversationFilters,
|
|
405
441
|
showMoreFilters: showMoreFilters,
|
|
406
|
-
triggerLabel: triggerLabel
|
|
442
|
+
triggerLabel: triggerLabel,
|
|
443
|
+
maxWidth: triggerMaxWidth
|
|
407
444
|
});
|
|
408
|
-
$[
|
|
409
|
-
$[
|
|
410
|
-
$[
|
|
411
|
-
$[
|
|
412
|
-
$[
|
|
413
|
-
$[
|
|
414
|
-
$[
|
|
445
|
+
$[57] = active;
|
|
446
|
+
$[58] = handleOpenConversationFilters;
|
|
447
|
+
$[59] = handleSelectFilter;
|
|
448
|
+
$[60] = options;
|
|
449
|
+
$[61] = showMoreFilters;
|
|
450
|
+
$[62] = triggerLabel;
|
|
451
|
+
$[63] = triggerMaxWidth;
|
|
452
|
+
$[64] = t28;
|
|
415
453
|
} else {
|
|
416
|
-
|
|
454
|
+
t28 = $[64];
|
|
417
455
|
}
|
|
418
|
-
let
|
|
419
|
-
if ($[
|
|
420
|
-
|
|
456
|
+
let t29;
|
|
457
|
+
if ($[65] !== styles.titleContainer || $[66] !== t28) {
|
|
458
|
+
t29 = /*#__PURE__*/_jsx(View, {
|
|
421
459
|
style: styles.titleContainer,
|
|
422
|
-
children:
|
|
460
|
+
children: t28
|
|
423
461
|
});
|
|
424
|
-
$[
|
|
425
|
-
$[
|
|
426
|
-
$[
|
|
462
|
+
$[65] = styles.titleContainer;
|
|
463
|
+
$[66] = t28;
|
|
464
|
+
$[67] = t29;
|
|
427
465
|
} else {
|
|
428
|
-
|
|
466
|
+
t29 = $[67];
|
|
429
467
|
}
|
|
430
|
-
let
|
|
431
|
-
if ($[
|
|
432
|
-
|
|
468
|
+
let t30;
|
|
469
|
+
if ($[68] !== handleChatSettings) {
|
|
470
|
+
t30 = /*#__PURE__*/_jsx(ListHeaderActionButton, {
|
|
433
471
|
name: "general.cog",
|
|
434
472
|
onPress: handleChatSettings,
|
|
435
473
|
accessibilityLabel: "Chat settings",
|
|
436
474
|
testID: "conversations-chat-settings-button",
|
|
437
475
|
maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK
|
|
438
476
|
});
|
|
439
|
-
$[
|
|
440
|
-
$[
|
|
477
|
+
$[68] = handleChatSettings;
|
|
478
|
+
$[69] = t30;
|
|
441
479
|
} else {
|
|
442
|
-
|
|
480
|
+
t30 = $[69];
|
|
443
481
|
}
|
|
444
|
-
let
|
|
445
|
-
if ($[
|
|
446
|
-
|
|
482
|
+
let t31;
|
|
483
|
+
if ($[70] !== canCreateConversations || $[71] !== handleNewConversationNavigation) {
|
|
484
|
+
t31 = canCreateConversations && /*#__PURE__*/_jsx(ListHeaderActionButton, {
|
|
447
485
|
name: "churchCenter.signups",
|
|
448
486
|
onPress: handleNewConversationNavigation,
|
|
449
487
|
accessibilityLabel: "New conversation",
|
|
450
488
|
testID: "conversations-new-conversation-button",
|
|
451
489
|
maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK
|
|
452
490
|
});
|
|
453
|
-
$[
|
|
454
|
-
$[
|
|
455
|
-
$[
|
|
491
|
+
$[70] = canCreateConversations;
|
|
492
|
+
$[71] = handleNewConversationNavigation;
|
|
493
|
+
$[72] = t31;
|
|
456
494
|
} else {
|
|
457
|
-
|
|
495
|
+
t31 = $[72];
|
|
458
496
|
}
|
|
459
|
-
let
|
|
460
|
-
if ($[
|
|
461
|
-
|
|
497
|
+
let t32;
|
|
498
|
+
if ($[73] !== handleSearch || $[74] !== searchEnabled) {
|
|
499
|
+
t32 = searchEnabled && /*#__PURE__*/_jsx(ListHeaderActionButton, {
|
|
462
500
|
name: "general.search",
|
|
463
501
|
onPress: handleSearch,
|
|
464
502
|
accessibilityLabel: "Search",
|
|
465
503
|
testID: "conversations-search-button",
|
|
466
504
|
maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK
|
|
467
505
|
});
|
|
468
|
-
$[
|
|
469
|
-
$[
|
|
470
|
-
$[
|
|
506
|
+
$[73] = handleSearch;
|
|
507
|
+
$[74] = searchEnabled;
|
|
508
|
+
$[75] = t32;
|
|
471
509
|
} else {
|
|
472
|
-
|
|
510
|
+
t32 = $[75];
|
|
473
511
|
}
|
|
474
|
-
let
|
|
475
|
-
if ($[
|
|
476
|
-
|
|
512
|
+
let t33;
|
|
513
|
+
if ($[76] !== styles.actionsContainer || $[77] !== t30 || $[78] !== t31 || $[79] !== t32) {
|
|
514
|
+
t33 = /*#__PURE__*/_jsxs(View, {
|
|
477
515
|
style: styles.actionsContainer,
|
|
478
|
-
|
|
516
|
+
onLayout: handleActionsLayout,
|
|
517
|
+
testID: "conversations-filter-actions",
|
|
518
|
+
children: [t30, t31, t32]
|
|
479
519
|
});
|
|
480
|
-
$[
|
|
481
|
-
$[
|
|
482
|
-
$[
|
|
483
|
-
$[
|
|
484
|
-
$[
|
|
520
|
+
$[76] = styles.actionsContainer;
|
|
521
|
+
$[77] = t30;
|
|
522
|
+
$[78] = t31;
|
|
523
|
+
$[79] = t32;
|
|
524
|
+
$[80] = t33;
|
|
485
525
|
} else {
|
|
486
|
-
|
|
526
|
+
t33 = $[80];
|
|
487
527
|
}
|
|
488
|
-
let
|
|
489
|
-
if ($[
|
|
490
|
-
|
|
528
|
+
let t34;
|
|
529
|
+
if ($[81] !== styles.headingRow || $[82] !== t29 || $[83] !== t33) {
|
|
530
|
+
t34 = /*#__PURE__*/_jsxs(View, {
|
|
491
531
|
style: styles.headingRow,
|
|
532
|
+
onLayout: handleRowLayout,
|
|
492
533
|
testID: "conversations-filter-heading-row",
|
|
493
|
-
children: [
|
|
534
|
+
children: [t29, t33]
|
|
494
535
|
});
|
|
495
|
-
$[
|
|
496
|
-
$[
|
|
497
|
-
$[
|
|
498
|
-
$[
|
|
536
|
+
$[81] = styles.headingRow;
|
|
537
|
+
$[82] = t29;
|
|
538
|
+
$[83] = t33;
|
|
539
|
+
$[84] = t34;
|
|
499
540
|
} else {
|
|
500
|
-
|
|
541
|
+
t34 = $[84];
|
|
501
542
|
}
|
|
502
|
-
let
|
|
503
|
-
if ($[
|
|
504
|
-
|
|
543
|
+
let t35;
|
|
544
|
+
if ($[85] !== alertMarkAllRead || $[86] !== isPending || $[87] !== show_archived || $[88] !== styles.markAllReadRow) {
|
|
545
|
+
t35 = !show_archived && /*#__PURE__*/_jsx(View, {
|
|
505
546
|
style: styles.markAllReadRow,
|
|
506
547
|
children: /*#__PURE__*/_jsx(TextButton, {
|
|
507
548
|
onPress: alertMarkAllRead,
|
|
@@ -512,36 +553,38 @@ export const FilterDropdownListHeaderComponent = () => {
|
|
|
512
553
|
children: "Mark all read"
|
|
513
554
|
})
|
|
514
555
|
});
|
|
515
|
-
$[
|
|
516
|
-
$[
|
|
517
|
-
$[
|
|
518
|
-
$[
|
|
519
|
-
$[
|
|
556
|
+
$[85] = alertMarkAllRead;
|
|
557
|
+
$[86] = isPending;
|
|
558
|
+
$[87] = show_archived;
|
|
559
|
+
$[88] = styles.markAllReadRow;
|
|
560
|
+
$[89] = t35;
|
|
520
561
|
} else {
|
|
521
|
-
|
|
562
|
+
t35 = $[89];
|
|
522
563
|
}
|
|
523
|
-
let
|
|
524
|
-
if ($[
|
|
525
|
-
|
|
564
|
+
let t36;
|
|
565
|
+
if ($[90] !== styles.listHeader || $[91] !== t34 || $[92] !== t35) {
|
|
566
|
+
t36 = /*#__PURE__*/_jsxs(View, {
|
|
526
567
|
style: styles.listHeader,
|
|
527
|
-
children: [
|
|
568
|
+
children: [t34, t35]
|
|
528
569
|
});
|
|
529
|
-
$[
|
|
530
|
-
$[
|
|
531
|
-
$[
|
|
532
|
-
$[
|
|
570
|
+
$[90] = styles.listHeader;
|
|
571
|
+
$[91] = t34;
|
|
572
|
+
$[92] = t35;
|
|
573
|
+
$[93] = t36;
|
|
533
574
|
} else {
|
|
534
|
-
|
|
575
|
+
t36 = $[93];
|
|
535
576
|
}
|
|
536
|
-
return
|
|
577
|
+
return t36;
|
|
537
578
|
};
|
|
538
|
-
const useStyles =
|
|
579
|
+
const useStyles = t0 => {
|
|
539
580
|
const $ = _c(3);
|
|
581
|
+
const {
|
|
582
|
+
stacked
|
|
583
|
+
} = t0;
|
|
540
584
|
const theme = useTheme();
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
t0 = StyleSheet.create({
|
|
585
|
+
let t1;
|
|
586
|
+
if ($[0] !== stacked || $[1] !== theme.colors.fillColorNeutral050Base) {
|
|
587
|
+
t1 = StyleSheet.create({
|
|
545
588
|
listHeader: {
|
|
546
589
|
borderBottomWidth: 1,
|
|
547
590
|
borderBottomColor: theme.colors.fillColorNeutral050Base,
|
|
@@ -549,11 +592,11 @@ const useStyles = () => {
|
|
|
549
592
|
gap: 8
|
|
550
593
|
},
|
|
551
594
|
headingRow: {
|
|
552
|
-
gap:
|
|
553
|
-
flexDirection:
|
|
554
|
-
alignItems:
|
|
595
|
+
gap: HEADING_ROW_GAP,
|
|
596
|
+
flexDirection: stacked ? "column" : "row",
|
|
597
|
+
alignItems: stacked ? "flex-start" : "center",
|
|
555
598
|
justifyContent: "space-between",
|
|
556
|
-
paddingBottom:
|
|
599
|
+
paddingBottom: stacked ? 4 : 0,
|
|
557
600
|
paddingHorizontal: ROW_PADDING_HORIZONTAL
|
|
558
601
|
},
|
|
559
602
|
titleContainer: {
|
|
@@ -570,12 +613,12 @@ const useStyles = () => {
|
|
|
570
613
|
paddingHorizontal: ROW_PADDING_HORIZONTAL
|
|
571
614
|
}
|
|
572
615
|
});
|
|
573
|
-
$[0] =
|
|
616
|
+
$[0] = stacked;
|
|
574
617
|
$[1] = theme.colors.fillColorNeutral050Base;
|
|
575
|
-
$[2] =
|
|
618
|
+
$[2] = t1;
|
|
576
619
|
} else {
|
|
577
|
-
|
|
620
|
+
t1 = $[2];
|
|
578
621
|
}
|
|
579
|
-
return
|
|
622
|
+
return t1;
|
|
580
623
|
};
|
|
581
624
|
//# sourceMappingURL=filter_dropdown_list_header_component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter_dropdown_list_header_component.js","names":["useNavigation","useRoute","React","useCallback","useMemo","Alert","StyleSheet","View","FilterDropdown","TextButton","useAtFontScaleBreakpoint","useCanBrowseArchivedConversations","useCanCreateConversations","useCurrentPersonCache","useDirectMessagesEligible","useHasDirectMessages","useNewConversationEntry","useTheme","useApiGet","useMarkAllRead","useCanDisplayGroups","useNewConversationFromFilter","useSearchEnabled","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Haptic","ListHeaderActionButton","jsx","_jsx","jsxs","_jsxs","ROW_PADDING_HORIZONTAL","ALL_CONVERSATIONS_LABEL","ARCHIVED_LABEL","FilterTypes","FILTER_PARAMS","All","Groups","group_source_app_name","Teams","DMs","show_direct_messages","FilterDropdownListHeaderComponent","$","_c","navigation","t0","Symbol","for","source_app_name","source_type","canFilterByTeams","t1","canFilterByGroups","directMessagesEligible","hasDirectMessages","canFilterByDMs","canBrowseArchived","searchEnabled","route","t2","params","title","chat_group_graph_id","t3","show_archived","undefined","currentPersonCache","markAllRead","isPending","canCreateConversations","entryMode","newConversationFromFilter","t4","t5","fields","Group","t6","url","data","app","t7","t8","enabled","group","t9","bb0","More","test","active","t10","id","label","t11","t12","t13","t14","options","t15","name","t16","triggerLabel","t17","navigate","screen","handleNewConversationNavigation","t18","setParams","handleSetFilter","t19","params_0","handleSelectFilter","t20","handleSearch","t21","handleChatSettings","t22","handleOpenConversationFilters","t23","update","unreadCount","notificationSuccess","handleMarkAllRead","t24","alert","text","onPress","alertMarkAllRead","showMoreFilters","styles","useStyles","t25","t26","titleContainer","style","children","t27","accessibilityLabel","testID","t28","t29","t30","actionsContainer","t31","headingRow","t32","markAllReadRow","accessibilityShowsLargeContentViewer","accessibilityLargeContentTitle","t33","listHeader","theme","atFontScaleBreakpoint","colors","fillColorNeutral050Base","create","borderBottomWidth","borderBottomColor","paddingBottom","gap","flexDirection","alignItems","justifyContent","paddingHorizontal","flexShrink","minWidth"],"sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useMemo } from 'react'\nimport { Alert, StyleSheet, View } from 'react-native'\nimport { FilterDropdown, FilterDropdownOption, TextButton } from '../../../components'\nimport {\n useAtFontScaleBreakpoint,\n useCanBrowseArchivedConversations,\n useCanCreateConversations,\n useCurrentPersonCache,\n useDirectMessagesEligible,\n useHasDirectMessages,\n useNewConversationEntry,\n useTheme,\n} from '../../../hooks'\nimport { useApiGet } from '../../../hooks/use_api'\nimport { useMarkAllRead } from '../../../hooks/use_conversations_actions'\nimport { useCanDisplayGroups } from '../../../hooks/use_groups'\nimport { useNewConversationFromFilter } from '../../../hooks/use_new_conversation_from_filter'\nimport { useSearchEnabled } from '../../../hooks/use_search_enabled'\nimport { GraphId, GroupResource } from '../../../types/resources/group_resource'\nimport { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { ConversationFiltersParams } from '../../conversation_filters/screen_props'\nimport { ConversationsScreenProps } from '../conversations_screen'\nimport { ListHeaderActionButton } from './list_header_action_button'\n\nconst ROW_PADDING_HORIZONTAL = 16\nconst ALL_CONVERSATIONS_LABEL = 'All conversations'\nconst ARCHIVED_LABEL = 'Archived'\n\nenum FilterTypes {\n All = 'All',\n Groups = 'Groups',\n Teams = 'Teams',\n DMs = 'DMs',\n More = 'More',\n}\n\nconst FILTER_PARAMS: Record<Exclude<FilterTypes, FilterTypes.More>, ConversationFiltersParams> = {\n [FilterTypes.All]: {},\n [FilterTypes.Groups]: { group_source_app_name: 'Groups' },\n [FilterTypes.Teams]: { group_source_app_name: 'Services' },\n [FilterTypes.DMs]: { show_direct_messages: true },\n}\n\nexport const FilterDropdownListHeaderComponent = () => {\n const navigation = useNavigation()\n const canFilterByTeams = useCanDisplayGroups({ source_app_name: 'Services', source_type: 'Team' })\n const canFilterByGroups = useCanDisplayGroups({ source_app_name: 'Groups', source_type: 'Group' })\n const directMessagesEligible = useDirectMessagesEligible()\n const hasDirectMessages = useHasDirectMessages()\n const canFilterByDMs = directMessagesEligible && hasDirectMessages\n const canBrowseArchived = useCanBrowseArchivedConversations()\n const searchEnabled = useSearchEnabled()\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const {\n title,\n chat_group_graph_id,\n group_source_app_name = '',\n show_direct_messages,\n show_archived,\n } = route.params || {}\n const currentPersonCache = useCurrentPersonCache()\n const { markAllRead, isPending } = useMarkAllRead()\n const canCreateConversations = useCanCreateConversations()\n const entryMode = useNewConversationEntry()\n const newConversationFromFilter = useNewConversationFromFilter(\n chat_group_graph_id as GraphId | undefined\n )\n const { data: group } = useApiGet<GroupResource>(\n { url: `/me/groups/${chat_group_graph_id}`, data: { fields: { Group: [] } }, app: 'chat' },\n { enabled: !!chat_group_graph_id }\n )\n\n const active: FilterTypes = useMemo(() => {\n if (chat_group_graph_id || show_archived) {\n return FilterTypes.More\n } else if (/groups/i.test(group_source_app_name)) {\n return FilterTypes.Groups\n } else if (/services/i.test(group_source_app_name)) {\n return FilterTypes.Teams\n } else if (show_direct_messages) {\n return FilterTypes.DMs\n }\n\n return FilterTypes.All\n }, [chat_group_graph_id, group_source_app_name, show_direct_messages, show_archived])\n\n const options: FilterDropdownOption[] = useMemo(\n () => [\n { id: FilterTypes.All, label: FilterTypes.All },\n ...(canFilterByGroups ? [{ id: FilterTypes.Groups, label: FilterTypes.Groups }] : []),\n ...(canFilterByTeams ? [{ id: FilterTypes.Teams, label: FilterTypes.Teams }] : []),\n ...(canFilterByDMs ? [{ id: FilterTypes.DMs, label: FilterTypes.DMs }] : []),\n ],\n [canFilterByGroups, canFilterByTeams, canFilterByDMs]\n )\n\n const triggerLabel = useMemo(() => {\n if (chat_group_graph_id) return group?.name || title || ALL_CONVERSATIONS_LABEL\n if (show_archived) return ARCHIVED_LABEL\n if (active === FilterTypes.All) return ALL_CONVERSATIONS_LABEL\n\n return active\n }, [chat_group_graph_id, group?.name, title, show_archived, active])\n\n const handleNewConversationNavigation = useCallback(() => {\n if (newConversationFromFilter || entryMode === 'select_type') {\n return navigation.navigate('ConversationSelectType', {\n ...route.params,\n newConversationFromFilter,\n })\n }\n\n if (entryMode === 'groups') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectGroupRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'teams') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectTeamsILeadRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'direct_message') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectDirectMessageRecipients',\n params: { ...route.params },\n })\n }\n }, [navigation, route.params, entryMode, newConversationFromFilter])\n\n const handleSetFilter = useCallback(\n (params: ConversationFiltersParams) => {\n navigation.setParams({\n title: undefined,\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n ...params,\n })\n },\n [navigation]\n )\n\n const handleSelectFilter = useCallback(\n (id: string) => {\n const params = FILTER_PARAMS[id as keyof typeof FILTER_PARAMS]\n if (params) handleSetFilter(params)\n },\n [handleSetFilter]\n )\n\n const handleSearch = useCallback(() => {\n navigation.navigate('Search')\n }, [navigation])\n\n const handleChatSettings = useCallback(() => {\n navigation.navigate('ChatSettings', {})\n }, [navigation])\n\n const handleOpenConversationFilters = useCallback(() => {\n navigation.navigate('ConversationFilters', {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n show_archived,\n })\n }, [navigation, chat_group_graph_id, group_source_app_name, show_direct_messages, show_archived])\n\n const handleMarkAllRead = useCallback(() => {\n currentPersonCache.update({ unreadCount: 0 })\n Haptic.notificationSuccess()\n markAllRead()\n }, [currentPersonCache, markAllRead])\n\n const alertMarkAllRead = useCallback(() => {\n if (active === FilterTypes.All) return handleMarkAllRead()\n\n Alert.alert('Mark all read', 'This includes conversations not shown by the current filter.', [\n { text: 'Cancel' },\n { text: 'OK', onPress: () => handleMarkAllRead() },\n ])\n }, [active, handleMarkAllRead])\n\n const showMoreFilters = canFilterByGroups || canFilterByTeams || canBrowseArchived\n\n const styles = useStyles()\n\n return (\n <View style={styles.listHeader}>\n <View style={styles.headingRow} testID=\"conversations-filter-heading-row\">\n <View style={styles.titleContainer}>\n <FilterDropdown\n options={options}\n selectedId={active}\n onSelect={handleSelectFilter}\n onMoreFilters={handleOpenConversationFilters}\n showMoreFilters={showMoreFilters}\n triggerLabel={triggerLabel}\n />\n </View>\n <View style={styles.actionsContainer}>\n <ListHeaderActionButton\n name=\"general.cog\"\n onPress={handleChatSettings}\n accessibilityLabel=\"Chat settings\"\n testID=\"conversations-chat-settings-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {canCreateConversations && (\n <ListHeaderActionButton\n name=\"churchCenter.signups\"\n onPress={handleNewConversationNavigation}\n accessibilityLabel=\"New conversation\"\n testID=\"conversations-new-conversation-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n {searchEnabled && (\n <ListHeaderActionButton\n name=\"general.search\"\n onPress={handleSearch}\n accessibilityLabel=\"Search\"\n testID=\"conversations-search-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n </View>\n </View>\n {!show_archived && (\n <View style={styles.markAllReadRow}>\n <TextButton\n onPress={alertMarkAllRead}\n disabled={isPending}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityShowsLargeContentViewer\n accessibilityLargeContentTitle=\"Mark all read\"\n >\n Mark all read\n </TextButton>\n </View>\n )}\n </View>\n )\n}\n\nconst useStyles = () => {\n const theme = useTheme()\n const atFontScaleBreakpoint = useAtFontScaleBreakpoint(MAX_FONT_SIZE_MULTIPLIER_LANDMARK)\n\n return StyleSheet.create({\n listHeader: {\n borderBottomWidth: 1,\n borderBottomColor: theme.colors.fillColorNeutral050Base,\n paddingBottom: 16,\n gap: 8,\n },\n headingRow: {\n gap: 12,\n flexDirection: atFontScaleBreakpoint ? 'column' : 'row',\n alignItems: atFontScaleBreakpoint ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n paddingBottom: atFontScaleBreakpoint ? 4 : 0,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n titleContainer: {\n flexShrink: 1,\n minWidth: 0,\n },\n actionsContainer: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'center',\n },\n markAllReadRow: {\n alignItems: 'flex-start',\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"filter_dropdown_list_header_component.js","names":["useNavigation","useRoute","React","useCallback","useMemo","useState","Alert","StyleSheet","View","FilterDropdown","TextButton","useCanBrowseArchivedConversations","useCanCreateConversations","useCurrentPersonCache","useDirectMessagesEligible","useFontScale","useHasDirectMessages","useNewConversationEntry","useTheme","useApiGet","useMarkAllRead","useCanDisplayGroups","useNewConversationFromFilter","useSearchEnabled","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Haptic","ListHeaderActionButton","jsx","_jsx","jsxs","_jsxs","ROW_PADDING_HORIZONTAL","HEADING_ROW_GAP","DEFAULT_FONT_SCALE","ALL_CONVERSATIONS_LABEL","ARCHIVED_LABEL","FilterTypes","FILTER_PARAMS","All","Groups","group_source_app_name","Teams","DMs","show_direct_messages","FilterDropdownListHeaderComponent","$","_c","navigation","t0","Symbol","for","source_app_name","source_type","canFilterByTeams","t1","canFilterByGroups","directMessagesEligible","hasDirectMessages","canFilterByDMs","canBrowseArchived","searchEnabled","route","t2","params","title","chat_group_graph_id","t3","show_archived","undefined","currentPersonCache","markAllRead","isPending","canCreateConversations","entryMode","newConversationFromFilter","t4","t5","fields","Group","t6","url","data","app","t7","t8","enabled","group","t9","bb0","More","test","active","t10","id","label","t11","t12","t13","t14","options","t15","name","t16","triggerLabel","t17","navigate","screen","handleNewConversationNavigation","t18","setParams","handleSetFilter","t19","params_0","handleSelectFilter","t20","handleSearch","t21","handleChatSettings","t22","handleOpenConversationFilters","t23","update","unreadCount","notificationSuccess","handleMarkAllRead","t24","alert","text","onPress","alertMarkAllRead","showMoreFilters","stacked","t25","styles","useStyles","rowWidth","setRowWidth","actionsWidth","setActionsWidth","t26","event","nativeEvent","layout","width","handleRowLayout","t27","event_0","handleActionsLayout","triggerMaxWidth","t28","t29","titleContainer","style","children","t30","accessibilityLabel","testID","t31","t32","t33","actionsContainer","t34","headingRow","t35","markAllReadRow","accessibilityShowsLargeContentViewer","accessibilityLargeContentTitle","t36","listHeader","theme","colors","fillColorNeutral050Base","create","borderBottomWidth","borderBottomColor","paddingBottom","gap","flexDirection","alignItems","justifyContent","paddingHorizontal","flexShrink","minWidth"],"sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { Alert, LayoutChangeEvent, StyleSheet, View } from 'react-native'\nimport { FilterDropdown, FilterDropdownOption, TextButton } from '../../../components'\nimport {\n useCanBrowseArchivedConversations,\n useCanCreateConversations,\n useCurrentPersonCache,\n useDirectMessagesEligible,\n useFontScale,\n useHasDirectMessages,\n useNewConversationEntry,\n useTheme,\n} from '../../../hooks'\nimport { useApiGet } from '../../../hooks/use_api'\nimport { useMarkAllRead } from '../../../hooks/use_conversations_actions'\nimport { useCanDisplayGroups } from '../../../hooks/use_groups'\nimport { useNewConversationFromFilter } from '../../../hooks/use_new_conversation_from_filter'\nimport { useSearchEnabled } from '../../../hooks/use_search_enabled'\nimport { GraphId, GroupResource } from '../../../types/resources/group_resource'\nimport { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { ConversationFiltersParams } from '../../conversation_filters/screen_props'\nimport { ConversationsScreenProps } from '../conversations_screen'\nimport { ListHeaderActionButton } from './list_header_action_button'\n\nconst ROW_PADDING_HORIZONTAL = 16\nconst HEADING_ROW_GAP = 12\nconst DEFAULT_FONT_SCALE = 1\nconst ALL_CONVERSATIONS_LABEL = 'All conversations'\nconst ARCHIVED_LABEL = 'Archived'\n\nenum FilterTypes {\n All = 'All',\n Groups = 'Groups',\n Teams = 'Teams',\n DMs = 'DMs',\n More = 'More',\n}\n\nconst FILTER_PARAMS: Record<Exclude<FilterTypes, FilterTypes.More>, ConversationFiltersParams> = {\n [FilterTypes.All]: {},\n [FilterTypes.Groups]: { group_source_app_name: 'Groups' },\n [FilterTypes.Teams]: { group_source_app_name: 'Services' },\n [FilterTypes.DMs]: { show_direct_messages: true },\n}\n\nexport const FilterDropdownListHeaderComponent = () => {\n const navigation = useNavigation()\n const canFilterByTeams = useCanDisplayGroups({ source_app_name: 'Services', source_type: 'Team' })\n const canFilterByGroups = useCanDisplayGroups({ source_app_name: 'Groups', source_type: 'Group' })\n const directMessagesEligible = useDirectMessagesEligible()\n const hasDirectMessages = useHasDirectMessages()\n const canFilterByDMs = directMessagesEligible && hasDirectMessages\n const canBrowseArchived = useCanBrowseArchivedConversations()\n const searchEnabled = useSearchEnabled()\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const {\n title,\n chat_group_graph_id,\n group_source_app_name = '',\n show_direct_messages,\n show_archived,\n } = route.params || {}\n const currentPersonCache = useCurrentPersonCache()\n const { markAllRead, isPending } = useMarkAllRead()\n const canCreateConversations = useCanCreateConversations()\n const entryMode = useNewConversationEntry()\n const newConversationFromFilter = useNewConversationFromFilter(\n chat_group_graph_id as GraphId | undefined\n )\n const { data: group } = useApiGet<GroupResource>(\n { url: `/me/groups/${chat_group_graph_id}`, data: { fields: { Group: [] } }, app: 'chat' },\n { enabled: !!chat_group_graph_id }\n )\n\n const active: FilterTypes = useMemo(() => {\n if (chat_group_graph_id || show_archived) {\n return FilterTypes.More\n } else if (/groups/i.test(group_source_app_name)) {\n return FilterTypes.Groups\n } else if (/services/i.test(group_source_app_name)) {\n return FilterTypes.Teams\n } else if (show_direct_messages) {\n return FilterTypes.DMs\n }\n\n return FilterTypes.All\n }, [chat_group_graph_id, group_source_app_name, show_direct_messages, show_archived])\n\n const options: FilterDropdownOption[] = useMemo(\n () => [\n { id: FilterTypes.All, label: FilterTypes.All },\n ...(canFilterByGroups ? [{ id: FilterTypes.Groups, label: FilterTypes.Groups }] : []),\n ...(canFilterByTeams ? [{ id: FilterTypes.Teams, label: FilterTypes.Teams }] : []),\n ...(canFilterByDMs ? [{ id: FilterTypes.DMs, label: FilterTypes.DMs }] : []),\n ],\n [canFilterByGroups, canFilterByTeams, canFilterByDMs]\n )\n\n const triggerLabel = useMemo(() => {\n if (chat_group_graph_id) return group?.name || title || ALL_CONVERSATIONS_LABEL\n if (show_archived) return ARCHIVED_LABEL\n if (active === FilterTypes.All) return ALL_CONVERSATIONS_LABEL\n\n return active\n }, [chat_group_graph_id, group?.name, title, show_archived, active])\n\n const handleNewConversationNavigation = useCallback(() => {\n if (newConversationFromFilter || entryMode === 'select_type') {\n return navigation.navigate('ConversationSelectType', {\n ...route.params,\n newConversationFromFilter,\n })\n }\n\n if (entryMode === 'groups') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectGroupRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'teams') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectTeamsILeadRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'direct_message') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectDirectMessageRecipients',\n params: { ...route.params },\n })\n }\n }, [navigation, route.params, entryMode, newConversationFromFilter])\n\n const handleSetFilter = useCallback(\n (params: ConversationFiltersParams) => {\n navigation.setParams({\n title: undefined,\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n show_archived: undefined,\n ...params,\n })\n },\n [navigation]\n )\n\n const handleSelectFilter = useCallback(\n (id: string) => {\n const params = FILTER_PARAMS[id as keyof typeof FILTER_PARAMS]\n if (params) handleSetFilter(params)\n },\n [handleSetFilter]\n )\n\n const handleSearch = useCallback(() => {\n navigation.navigate('Search')\n }, [navigation])\n\n const handleChatSettings = useCallback(() => {\n navigation.navigate('ChatSettings', {})\n }, [navigation])\n\n const handleOpenConversationFilters = useCallback(() => {\n navigation.navigate('ConversationFilters', {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n show_archived,\n })\n }, [navigation, chat_group_graph_id, group_source_app_name, show_direct_messages, show_archived])\n\n const handleMarkAllRead = useCallback(() => {\n currentPersonCache.update({ unreadCount: 0 })\n Haptic.notificationSuccess()\n markAllRead()\n }, [currentPersonCache, markAllRead])\n\n const alertMarkAllRead = useCallback(() => {\n if (active === FilterTypes.All) return handleMarkAllRead()\n\n Alert.alert('Mark all read', 'This includes conversations not shown by the current filter.', [\n { text: 'Cancel' },\n { text: 'OK', onPress: () => handleMarkAllRead() },\n ])\n }, [active, handleMarkAllRead])\n\n const showMoreFilters = canFilterByGroups || canFilterByTeams || canBrowseArchived\n\n const stacked = useFontScale() > DEFAULT_FONT_SCALE\n const styles = useStyles({ stacked })\n\n // The Android menu host measures the trigger at its intrinsic width, so flex shrinking never\n // truncates the label. Cap it to the room left beside the action buttons instead.\n const [rowWidth, setRowWidth] = useState<number>()\n const [actionsWidth, setActionsWidth] = useState<number>()\n const handleRowLayout = useCallback((event: LayoutChangeEvent) => {\n setRowWidth(event.nativeEvent.layout.width)\n }, [])\n const handleActionsLayout = useCallback((event: LayoutChangeEvent) => {\n setActionsWidth(event.nativeEvent.layout.width)\n }, [])\n const triggerMaxWidth =\n !stacked && rowWidth !== undefined && actionsWidth !== undefined\n ? rowWidth - ROW_PADDING_HORIZONTAL * 2 - actionsWidth - HEADING_ROW_GAP\n : undefined\n\n return (\n <View style={styles.listHeader}>\n <View\n style={styles.headingRow}\n onLayout={handleRowLayout}\n testID=\"conversations-filter-heading-row\"\n >\n <View style={styles.titleContainer}>\n <FilterDropdown\n options={options}\n selectedId={active}\n onSelect={handleSelectFilter}\n onMoreFilters={handleOpenConversationFilters}\n showMoreFilters={showMoreFilters}\n triggerLabel={triggerLabel}\n maxWidth={triggerMaxWidth}\n />\n </View>\n <View\n style={styles.actionsContainer}\n onLayout={handleActionsLayout}\n testID=\"conversations-filter-actions\"\n >\n <ListHeaderActionButton\n name=\"general.cog\"\n onPress={handleChatSettings}\n accessibilityLabel=\"Chat settings\"\n testID=\"conversations-chat-settings-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {canCreateConversations && (\n <ListHeaderActionButton\n name=\"churchCenter.signups\"\n onPress={handleNewConversationNavigation}\n accessibilityLabel=\"New conversation\"\n testID=\"conversations-new-conversation-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n {searchEnabled && (\n <ListHeaderActionButton\n name=\"general.search\"\n onPress={handleSearch}\n accessibilityLabel=\"Search\"\n testID=\"conversations-search-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n </View>\n </View>\n {!show_archived && (\n <View style={styles.markAllReadRow}>\n <TextButton\n onPress={alertMarkAllRead}\n disabled={isPending}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityShowsLargeContentViewer\n accessibilityLargeContentTitle=\"Mark all read\"\n >\n Mark all read\n </TextButton>\n </View>\n )}\n </View>\n )\n}\n\nconst useStyles = ({ stacked }: { stacked: boolean }) => {\n const theme = useTheme()\n\n return StyleSheet.create({\n listHeader: {\n borderBottomWidth: 1,\n borderBottomColor: theme.colors.fillColorNeutral050Base,\n paddingBottom: 16,\n gap: 8,\n },\n headingRow: {\n gap: HEADING_ROW_GAP,\n flexDirection: stacked ? 'column' : 'row',\n alignItems: stacked ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n paddingBottom: stacked ? 4 : 0,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n titleContainer: {\n flexShrink: 1,\n minWidth: 0,\n },\n actionsContainer: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'center',\n },\n markAllReadRow: {\n alignItems: 'flex-start',\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/chat-react-native",
|
|
3
|
-
"version": "4.4.1-qa-staging.
|
|
3
|
+
"version": "4.4.1-qa-staging.26",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@fortawesome/fontawesome-svg-core": "^7.2.0",
|
|
35
35
|
"@fortawesome/react-native-fontawesome": "^0.3.2",
|
|
36
|
-
"@planningcenter/emoji-keyboard": "4.4.1-qa-staging.
|
|
36
|
+
"@planningcenter/emoji-keyboard": "4.4.1-qa-staging.26",
|
|
37
37
|
"lodash-inflection": "^1.5.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"sf-symbols-typescript": "^2.2.0",
|
|
85
85
|
"typescript": "~6.0.3"
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "066394167c15226c4195044b6813c77d18f2c266"
|
|
88
88
|
}
|
|
@@ -35,6 +35,11 @@ export interface FilterDropdownProps {
|
|
|
35
35
|
onMoreFilters: () => void
|
|
36
36
|
triggerLabel: string
|
|
37
37
|
showMoreFilters?: boolean
|
|
38
|
+
/**
|
|
39
|
+
* Widest the trigger may render, in points. Hosts that measure the trigger at its intrinsic
|
|
40
|
+
* width need this for the label to truncate.
|
|
41
|
+
*/
|
|
42
|
+
maxWidth?: number
|
|
38
43
|
}
|
|
39
44
|
|
|
40
45
|
export function FilterDropdown({
|
|
@@ -44,6 +49,7 @@ export function FilterDropdown({
|
|
|
44
49
|
onMoreFilters,
|
|
45
50
|
triggerLabel,
|
|
46
51
|
showMoreFilters = true,
|
|
52
|
+
maxWidth,
|
|
47
53
|
}: FilterDropdownProps) {
|
|
48
54
|
const styles = useStyles()
|
|
49
55
|
|
|
@@ -71,7 +77,7 @@ export function FilterDropdown({
|
|
|
71
77
|
return (
|
|
72
78
|
<Menu.View actions={actions} onPressAction={handlePressAction} style={styles.container}>
|
|
73
79
|
<View
|
|
74
|
-
style={styles.trigger}
|
|
80
|
+
style={[styles.trigger, maxWidth !== undefined && { maxWidth }]}
|
|
75
81
|
accessible
|
|
76
82
|
accessibilityRole="button"
|
|
77
83
|
accessibilityHint="Opens filter options"
|
|
@@ -135,8 +135,8 @@ describe('FilterDropdownListHeaderComponent', () => {
|
|
|
135
135
|
setRouteParams({})
|
|
136
136
|
})
|
|
137
137
|
|
|
138
|
-
it('keeps the dropdown and actions on one line
|
|
139
|
-
mockUseWindowDimensions.mockReturnValue({ fontScale: 1
|
|
138
|
+
it('keeps the dropdown and actions on one line at the default font scale', () => {
|
|
139
|
+
mockUseWindowDimensions.mockReturnValue({ fontScale: 1 })
|
|
140
140
|
|
|
141
141
|
render(<FilterDropdownListHeaderComponent />)
|
|
142
142
|
|
|
@@ -145,8 +145,8 @@ describe('FilterDropdownListHeaderComponent', () => {
|
|
|
145
145
|
})
|
|
146
146
|
})
|
|
147
147
|
|
|
148
|
-
it('stacks the actions under the dropdown
|
|
149
|
-
mockUseWindowDimensions.mockReturnValue({ fontScale: 1.
|
|
148
|
+
it('stacks the actions under the dropdown at the first font size above the default', () => {
|
|
149
|
+
mockUseWindowDimensions.mockReturnValue({ fontScale: 1.12 })
|
|
150
150
|
|
|
151
151
|
render(<FilterDropdownListHeaderComponent />)
|
|
152
152
|
|
|
@@ -155,6 +155,21 @@ describe('FilterDropdownListHeaderComponent', () => {
|
|
|
155
155
|
})
|
|
156
156
|
})
|
|
157
157
|
|
|
158
|
+
it('caps the trigger to the room beside the actions so a long label truncates', () => {
|
|
159
|
+
render(<FilterDropdownListHeaderComponent />)
|
|
160
|
+
|
|
161
|
+
fireEvent(screen.getByTestId('conversations-filter-heading-row'), 'layout', {
|
|
162
|
+
nativeEvent: { layout: { width: 360 } },
|
|
163
|
+
})
|
|
164
|
+
fireEvent(screen.getByTestId('conversations-filter-actions'), 'layout', {
|
|
165
|
+
nativeEvent: { layout: { width: 160 } },
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
expect(screen.getByRole('button', { name: 'All conversations' })).toHaveStyle({
|
|
169
|
+
maxWidth: 156,
|
|
170
|
+
})
|
|
171
|
+
})
|
|
172
|
+
|
|
158
173
|
it('offers every filter the person can use, then More filters', () => {
|
|
159
174
|
render(<FilterDropdownListHeaderComponent />)
|
|
160
175
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'
|
|
2
|
-
import React, { useCallback, useMemo } from 'react'
|
|
3
|
-
import { Alert, StyleSheet, View } from 'react-native'
|
|
2
|
+
import React, { useCallback, useMemo, useState } from 'react'
|
|
3
|
+
import { Alert, LayoutChangeEvent, StyleSheet, View } from 'react-native'
|
|
4
4
|
import { FilterDropdown, FilterDropdownOption, TextButton } from '../../../components'
|
|
5
5
|
import {
|
|
6
|
-
useAtFontScaleBreakpoint,
|
|
7
6
|
useCanBrowseArchivedConversations,
|
|
8
7
|
useCanCreateConversations,
|
|
9
8
|
useCurrentPersonCache,
|
|
10
9
|
useDirectMessagesEligible,
|
|
10
|
+
useFontScale,
|
|
11
11
|
useHasDirectMessages,
|
|
12
12
|
useNewConversationEntry,
|
|
13
13
|
useTheme,
|
|
@@ -25,6 +25,8 @@ import { ConversationsScreenProps } from '../conversations_screen'
|
|
|
25
25
|
import { ListHeaderActionButton } from './list_header_action_button'
|
|
26
26
|
|
|
27
27
|
const ROW_PADDING_HORIZONTAL = 16
|
|
28
|
+
const HEADING_ROW_GAP = 12
|
|
29
|
+
const DEFAULT_FONT_SCALE = 1
|
|
28
30
|
const ALL_CONVERSATIONS_LABEL = 'All conversations'
|
|
29
31
|
const ARCHIVED_LABEL = 'Archived'
|
|
30
32
|
|
|
@@ -190,11 +192,31 @@ export const FilterDropdownListHeaderComponent = () => {
|
|
|
190
192
|
|
|
191
193
|
const showMoreFilters = canFilterByGroups || canFilterByTeams || canBrowseArchived
|
|
192
194
|
|
|
193
|
-
const
|
|
195
|
+
const stacked = useFontScale() > DEFAULT_FONT_SCALE
|
|
196
|
+
const styles = useStyles({ stacked })
|
|
197
|
+
|
|
198
|
+
// The Android menu host measures the trigger at its intrinsic width, so flex shrinking never
|
|
199
|
+
// truncates the label. Cap it to the room left beside the action buttons instead.
|
|
200
|
+
const [rowWidth, setRowWidth] = useState<number>()
|
|
201
|
+
const [actionsWidth, setActionsWidth] = useState<number>()
|
|
202
|
+
const handleRowLayout = useCallback((event: LayoutChangeEvent) => {
|
|
203
|
+
setRowWidth(event.nativeEvent.layout.width)
|
|
204
|
+
}, [])
|
|
205
|
+
const handleActionsLayout = useCallback((event: LayoutChangeEvent) => {
|
|
206
|
+
setActionsWidth(event.nativeEvent.layout.width)
|
|
207
|
+
}, [])
|
|
208
|
+
const triggerMaxWidth =
|
|
209
|
+
!stacked && rowWidth !== undefined && actionsWidth !== undefined
|
|
210
|
+
? rowWidth - ROW_PADDING_HORIZONTAL * 2 - actionsWidth - HEADING_ROW_GAP
|
|
211
|
+
: undefined
|
|
194
212
|
|
|
195
213
|
return (
|
|
196
214
|
<View style={styles.listHeader}>
|
|
197
|
-
<View
|
|
215
|
+
<View
|
|
216
|
+
style={styles.headingRow}
|
|
217
|
+
onLayout={handleRowLayout}
|
|
218
|
+
testID="conversations-filter-heading-row"
|
|
219
|
+
>
|
|
198
220
|
<View style={styles.titleContainer}>
|
|
199
221
|
<FilterDropdown
|
|
200
222
|
options={options}
|
|
@@ -203,9 +225,14 @@ export const FilterDropdownListHeaderComponent = () => {
|
|
|
203
225
|
onMoreFilters={handleOpenConversationFilters}
|
|
204
226
|
showMoreFilters={showMoreFilters}
|
|
205
227
|
triggerLabel={triggerLabel}
|
|
228
|
+
maxWidth={triggerMaxWidth}
|
|
206
229
|
/>
|
|
207
230
|
</View>
|
|
208
|
-
<View
|
|
231
|
+
<View
|
|
232
|
+
style={styles.actionsContainer}
|
|
233
|
+
onLayout={handleActionsLayout}
|
|
234
|
+
testID="conversations-filter-actions"
|
|
235
|
+
>
|
|
209
236
|
<ListHeaderActionButton
|
|
210
237
|
name="general.cog"
|
|
211
238
|
onPress={handleChatSettings}
|
|
@@ -250,9 +277,8 @@ export const FilterDropdownListHeaderComponent = () => {
|
|
|
250
277
|
)
|
|
251
278
|
}
|
|
252
279
|
|
|
253
|
-
const useStyles = () => {
|
|
280
|
+
const useStyles = ({ stacked }: { stacked: boolean }) => {
|
|
254
281
|
const theme = useTheme()
|
|
255
|
-
const atFontScaleBreakpoint = useAtFontScaleBreakpoint(MAX_FONT_SIZE_MULTIPLIER_LANDMARK)
|
|
256
282
|
|
|
257
283
|
return StyleSheet.create({
|
|
258
284
|
listHeader: {
|
|
@@ -262,11 +288,11 @@ const useStyles = () => {
|
|
|
262
288
|
gap: 8,
|
|
263
289
|
},
|
|
264
290
|
headingRow: {
|
|
265
|
-
gap:
|
|
266
|
-
flexDirection:
|
|
267
|
-
alignItems:
|
|
291
|
+
gap: HEADING_ROW_GAP,
|
|
292
|
+
flexDirection: stacked ? 'column' : 'row',
|
|
293
|
+
alignItems: stacked ? 'flex-start' : 'center',
|
|
268
294
|
justifyContent: 'space-between',
|
|
269
|
-
paddingBottom:
|
|
295
|
+
paddingBottom: stacked ? 4 : 0,
|
|
270
296
|
paddingHorizontal: ROW_PADDING_HORIZONTAL,
|
|
271
297
|
},
|
|
272
298
|
titleContainer: {
|