@unif/react-native-design 0.22.0 → 0.23.0
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/lib/module/components/ui/Cell/Cell.js +16 -4
- package/lib/module/components/ui/Cell/Cell.js.map +1 -1
- package/lib/module/components/ui/Cell/content.js +16 -0
- package/lib/module/components/ui/Cell/content.js.map +1 -1
- package/lib/typescript/src/components/ui/Cell/Cell.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Cell/content.d.ts +11 -0
- package/lib/typescript/src/components/ui/Cell/content.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Cell/types.d.ts +6 -0
- package/lib/typescript/src/components/ui/Cell/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ui/Cell/Cell.tsx +20 -3
- package/src/components/ui/Cell/content.ts +21 -0
- package/src/components/ui/Cell/types.ts +6 -0
|
@@ -7,7 +7,7 @@ import { pressedOpacity, r, useColors, useThemedStyles } from "../../../theme/in
|
|
|
7
7
|
import { createLogger } from "../../../utils/logger/index.js";
|
|
8
8
|
import { Icon } from "../Icon/index.js";
|
|
9
9
|
import { A11Y_HIDDEN_PROPS } from "../shared/a11y.js";
|
|
10
|
-
import { resolveCellActionAccessibilityLabel, stringifyCellText } from "./content.js";
|
|
10
|
+
import { resolveCellActionAccessibilityLabel, resolveCellTitleColor, stringifyCellText } from "./content.js";
|
|
11
11
|
import { useListVariant } from "./context.js";
|
|
12
12
|
import { Leading } from "./Leading.js";
|
|
13
13
|
import { makeStyles } from "./styles.js";
|
|
@@ -62,7 +62,12 @@ export function Cell(props) {
|
|
|
62
62
|
}
|
|
63
63
|
}, [hasMissingActionName]);
|
|
64
64
|
const cellStyle = [styles.cell, flush && styles.cellFlush, flush && props.desc !== undefined && styles.cellFlushWithDesc, props.style];
|
|
65
|
-
const titleColor =
|
|
65
|
+
const titleColor = resolveCellTitleColor({
|
|
66
|
+
danger: props.danger,
|
|
67
|
+
selected: props.selected,
|
|
68
|
+
dangerColor: c.error,
|
|
69
|
+
selectedColor: c.primary
|
|
70
|
+
});
|
|
66
71
|
const titleStyle = [flush ? styles.titleFlush : styles.title, titleColor && {
|
|
67
72
|
color: titleColor
|
|
68
73
|
}];
|
|
@@ -105,9 +110,13 @@ export function Cell(props) {
|
|
|
105
110
|
disabled: isDisabled,
|
|
106
111
|
accessibilityRole: "button",
|
|
107
112
|
accessibilityLabel: accessibilityLabel,
|
|
108
|
-
accessibilityHint: props.accessibilityHint
|
|
113
|
+
accessibilityHint: props.accessibilityHint
|
|
114
|
+
// 选中态必须进 a11y state:只靠 primary 色区分的话,色觉障碍与读屏用户
|
|
115
|
+
// 都感知不到「当前是哪一项」。
|
|
116
|
+
,
|
|
109
117
|
accessibilityState: {
|
|
110
|
-
disabled: isDisabled
|
|
118
|
+
disabled: isDisabled,
|
|
119
|
+
selected: props.selected
|
|
111
120
|
},
|
|
112
121
|
testID: props.testID,
|
|
113
122
|
style: ({
|
|
@@ -126,6 +135,9 @@ export function Cell(props) {
|
|
|
126
135
|
return /*#__PURE__*/_jsx(View, {
|
|
127
136
|
accessible: true,
|
|
128
137
|
accessibilityLabel: staticLabel,
|
|
138
|
+
accessibilityState: props.selected === undefined ? undefined : {
|
|
139
|
+
selected: props.selected
|
|
140
|
+
},
|
|
129
141
|
testID: props.testID,
|
|
130
142
|
children: inner
|
|
131
143
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","Text","View","Pressable","pressedOpacity","r","useColors","useThemedStyles","createLogger","Icon","A11Y_HIDDEN_PROPS","resolveCellActionAccessibilityLabel","stringifyCellText","useListVariant","Leading","makeStyles","jsx","_jsx","jsxs","_jsxs","log","CellExtraContent","extra","textStyle","kind","style","numberOfLines","children","value","node","Cell","props","c","styles","variant","flush","requestedAction","onPress","accessibilityLabel","title","desc","undefined","hasEffectiveAction","hasMissingActionName","warn","cellStyle","cell","cellFlush","cellFlushWithDesc","titleColor","danger","error","titleStyle","titleFlush","color","descStyle","descFlush","extraStyle","extraFlush","inner","testID","leading","slot","body","titleLines","arrow","chevronFlush","name","size","foregroundSubtle","isDisabled","disabled","accessibilityRole","accessibilityHint","accessibilityState","pressed","opacity","staticLabel","trim","length","accessible"],"sourceRoot":"../../../../../src","sources":["components/ui/Cell/Cell.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAAyBC,IAAI,EAAkBC,IAAI,QAAQ,cAAc;AACzE,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,cAAc,EAAEC,CAAC,EAAEC,SAAS,EAAEC,eAAe,QAAQ,yBAAgB;AAC9E,SAASC,YAAY,QAAQ,gCAAuB;AACpD,SAASC,IAAI,QAAQ,kBAAS;AAC9B,SAASC,iBAAiB,QAAQ,mBAAgB;AAClD,SACEC,mCAAmC,EACnCC,iBAAiB,QACZ,cAAW;AAClB,SAASC,cAAc,QAAQ,cAAW;AAC1C,SAASC,OAAO,QAAQ,cAAW;AACnC,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGtC,MAAMC,GAAG,
|
|
1
|
+
{"version":3,"names":["React","useEffect","Text","View","Pressable","pressedOpacity","r","useColors","useThemedStyles","createLogger","Icon","A11Y_HIDDEN_PROPS","resolveCellActionAccessibilityLabel","resolveCellTitleColor","stringifyCellText","useListVariant","Leading","makeStyles","jsx","_jsx","jsxs","_jsxs","log","CellExtraContent","extra","textStyle","kind","style","numberOfLines","children","value","node","Cell","props","c","styles","variant","flush","requestedAction","onPress","accessibilityLabel","title","desc","undefined","hasEffectiveAction","hasMissingActionName","warn","cellStyle","cell","cellFlush","cellFlushWithDesc","titleColor","danger","selected","dangerColor","error","selectedColor","primary","titleStyle","titleFlush","color","descStyle","descFlush","extraStyle","extraFlush","inner","testID","leading","slot","body","titleLines","arrow","chevronFlush","name","size","foregroundSubtle","isDisabled","disabled","accessibilityRole","accessibilityHint","accessibilityState","pressed","opacity","staticLabel","trim","length","accessible"],"sourceRoot":"../../../../../src","sources":["components/ui/Cell/Cell.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,4 +31,20 @@ export function resolveCellActionAccessibilityLabel({
|
|
|
31
31
|
}) {
|
|
32
32
|
return normalizeNonBlankText(accessibilityLabel) ?? normalizeNonBlankText(buildCellAccessibilityLabel(content));
|
|
33
33
|
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* 语义态 → 标题色。**danger 优先于 selected** —— 危险语义比选中语义更需要被看见,
|
|
37
|
+
* 两者同时给时不该让「当前项」的高亮盖掉「这一项有风险」。
|
|
38
|
+
* 都没给返回 undefined,由调用方回落到默认前景色。
|
|
39
|
+
*/
|
|
40
|
+
export function resolveCellTitleColor({
|
|
41
|
+
danger,
|
|
42
|
+
selected,
|
|
43
|
+
dangerColor,
|
|
44
|
+
selectedColor
|
|
45
|
+
}) {
|
|
46
|
+
if (danger === true) return dangerColor;
|
|
47
|
+
if (selected === true) return selectedColor;
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
34
50
|
//# sourceMappingURL=content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeNonBlankText","stringifyCellText","value","String","appendNonBlank","parts","normalized","undefined","push","buildCellAccessibilityLabel","title","desc","extra","kind","accessibilityText","join","resolveCellActionAccessibilityLabel","accessibilityLabel","content"],"sourceRoot":"../../../../../src","sources":["components/ui/Cell/content.ts"],"mappings":";;AACA,SAASA,qBAAqB,QAAQ,gCAA6B;AAInE,OAAO,SAASC,iBAAiBA,CAACC,KAAoB,EAAU;EAC9D,OAAOC,MAAM,CAACD,KAAK,CAAC;AACtB;AAEA,SAASE,cAAcA,CAACC,KAAe,EAAEH,KAAa,EAAQ;EAC5D,MAAMI,UAAU,GAAGN,qBAAqB,CAACE,KAAK,CAAC;EAC/C,IAAII,UAAU,KAAKC,SAAS,EAAEF,KAAK,CAACG,IAAI,CAACF,UAAU,CAAC;AACtD;AAEA,OAAO,SAASG,2BAA2BA,CAAC;EAC1CC,KAAK;EACLC,IAAI;EACJC;AAKF,CAAC,EAAU;EACT,MAAMP,KAAe,GAAG,EAAE;EAC1BD,cAAc,CAACC,KAAK,EAAEJ,iBAAiB,CAACS,KAAK,CAAC,CAAC;EAE/C,IAAIC,IAAI,KAAKJ,SAAS,EAAE;IACtBH,cAAc,CAACC,KAAK,EAAEJ,iBAAiB,CAACU,IAAI,CAAC,CAAC;EAChD;EAEA,IAAIC,KAAK,EAAEC,IAAI,KAAK,MAAM,EAAE;IAC1BT,cAAc,CAACC,KAAK,EAAEJ,iBAAiB,CAACW,KAAK,CAACV,KAAK,CAAC,CAAC;EACvD,CAAC,MAAM,IAAIU,KAAK,EAAEC,IAAI,KAAK,SAAS,EAAE;IACpCT,cAAc,CAACC,KAAK,EAAEO,KAAK,CAACE,iBAAiB,IAAI,EAAE,CAAC;EACtD;EAEA,OAAOT,KAAK,CAACU,IAAI,CAAC,GAAG,CAAC;AACxB;AAEA,OAAO,SAASC,mCAAmCA,CAAC;EAClDC,kBAAkB;EAClB,GAAGC;AAML,CAAC,EAAsB;EACrB,OACElB,qBAAqB,CAACiB,kBAAkB,CAAC,IACzCjB,qBAAqB,CAACS,2BAA2B,CAACS,OAAO,CAAC,CAAC;AAE/D","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["normalizeNonBlankText","stringifyCellText","value","String","appendNonBlank","parts","normalized","undefined","push","buildCellAccessibilityLabel","title","desc","extra","kind","accessibilityText","join","resolveCellActionAccessibilityLabel","accessibilityLabel","content","resolveCellTitleColor","danger","selected","dangerColor","selectedColor"],"sourceRoot":"../../../../../src","sources":["components/ui/Cell/content.ts"],"mappings":";;AACA,SAASA,qBAAqB,QAAQ,gCAA6B;AAInE,OAAO,SAASC,iBAAiBA,CAACC,KAAoB,EAAU;EAC9D,OAAOC,MAAM,CAACD,KAAK,CAAC;AACtB;AAEA,SAASE,cAAcA,CAACC,KAAe,EAAEH,KAAa,EAAQ;EAC5D,MAAMI,UAAU,GAAGN,qBAAqB,CAACE,KAAK,CAAC;EAC/C,IAAII,UAAU,KAAKC,SAAS,EAAEF,KAAK,CAACG,IAAI,CAACF,UAAU,CAAC;AACtD;AAEA,OAAO,SAASG,2BAA2BA,CAAC;EAC1CC,KAAK;EACLC,IAAI;EACJC;AAKF,CAAC,EAAU;EACT,MAAMP,KAAe,GAAG,EAAE;EAC1BD,cAAc,CAACC,KAAK,EAAEJ,iBAAiB,CAACS,KAAK,CAAC,CAAC;EAE/C,IAAIC,IAAI,KAAKJ,SAAS,EAAE;IACtBH,cAAc,CAACC,KAAK,EAAEJ,iBAAiB,CAACU,IAAI,CAAC,CAAC;EAChD;EAEA,IAAIC,KAAK,EAAEC,IAAI,KAAK,MAAM,EAAE;IAC1BT,cAAc,CAACC,KAAK,EAAEJ,iBAAiB,CAACW,KAAK,CAACV,KAAK,CAAC,CAAC;EACvD,CAAC,MAAM,IAAIU,KAAK,EAAEC,IAAI,KAAK,SAAS,EAAE;IACpCT,cAAc,CAACC,KAAK,EAAEO,KAAK,CAACE,iBAAiB,IAAI,EAAE,CAAC;EACtD;EAEA,OAAOT,KAAK,CAACU,IAAI,CAAC,GAAG,CAAC;AACxB;AAEA,OAAO,SAASC,mCAAmCA,CAAC;EAClDC,kBAAkB;EAClB,GAAGC;AAML,CAAC,EAAsB;EACrB,OACElB,qBAAqB,CAACiB,kBAAkB,CAAC,IACzCjB,qBAAqB,CAACS,2BAA2B,CAACS,OAAO,CAAC,CAAC;AAE/D;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAC;EACpCC,MAAM;EACNC,QAAQ;EACRC,WAAW;EACXC;AAMF,CAAC,EAAsB;EACrB,IAAIH,MAAM,KAAK,IAAI,EAAE,OAAOE,WAAW;EACvC,IAAID,QAAQ,KAAK,IAAI,EAAE,OAAOE,aAAa;EAC3C,OAAOhB,SAAS;AAClB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Cell/Cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Cell/Cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAezC,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,SAAS,CAAC;AA0BpD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAyHxD"}
|
|
@@ -14,5 +14,16 @@ export declare function resolveCellActionAccessibilityLabel({ accessibilityLabel
|
|
|
14
14
|
desc?: CellTextValue;
|
|
15
15
|
extra?: CellAccessibilityExtra;
|
|
16
16
|
}): string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* 语义态 → 标题色。**danger 优先于 selected** —— 危险语义比选中语义更需要被看见,
|
|
19
|
+
* 两者同时给时不该让「当前项」的高亮盖掉「这一项有风险」。
|
|
20
|
+
* 都没给返回 undefined,由调用方回落到默认前景色。
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveCellTitleColor({ danger, selected, dangerColor, selectedColor, }: {
|
|
23
|
+
danger?: boolean;
|
|
24
|
+
selected?: boolean;
|
|
25
|
+
dangerColor: string;
|
|
26
|
+
selectedColor: string;
|
|
27
|
+
}): string | undefined;
|
|
17
28
|
export {};
|
|
18
29
|
//# sourceMappingURL=content.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Cell/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxD,KAAK,sBAAsB,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAE9D;AAOD,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,IAAI,EACJ,KAAK,GACN,EAAE;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC,GAAG,MAAM,CAeT;AAED,wBAAgB,mCAAmC,CAAC,EAClD,kBAAkB,EAClB,GAAG,OAAO,EACX,EAAE;IACD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC,GAAG,MAAM,GAAG,SAAS,CAKrB"}
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Cell/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxD,KAAK,sBAAsB,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAE9D;AAOD,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,IAAI,EACJ,KAAK,GACN,EAAE;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC,GAAG,MAAM,CAeT;AAED,wBAAgB,mCAAmC,CAAC,EAClD,kBAAkB,EAClB,GAAG,OAAO,EACX,EAAE;IACD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,QAAQ,EACR,WAAW,EACX,aAAa,GACd,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,GAAG,SAAS,CAIrB"}
|
|
@@ -38,6 +38,12 @@ type SharedCellProps = {
|
|
|
38
38
|
leading?: CellLeading;
|
|
39
39
|
/** 危险态:icon 盒子与标题使用 error 色;action arrow 不显示。 */
|
|
40
40
|
danger?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* 选中态:标题使用 primary 色,表示「列表里当前这一项」(会话列表的当前会话、
|
|
43
|
+
* 设置列表的当前选项等)。与 `danger` 互斥——同时给时 `danger` 优先,
|
|
44
|
+
* 危险语义比选中语义更需要被看见。
|
|
45
|
+
*/
|
|
46
|
+
selected?: boolean;
|
|
41
47
|
/** 额外样式覆盖。 */
|
|
42
48
|
style?: StyleProp<ViewStyle>;
|
|
43
49
|
/** E2E / 测试定位。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Cell/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Cell/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ import { Icon } from '../Icon';
|
|
|
7
7
|
import { A11Y_HIDDEN_PROPS } from '../shared/a11y';
|
|
8
8
|
import {
|
|
9
9
|
resolveCellActionAccessibilityLabel,
|
|
10
|
+
resolveCellTitleColor,
|
|
10
11
|
stringifyCellText,
|
|
11
12
|
} from './content';
|
|
12
13
|
import { useListVariant } from './context';
|
|
@@ -76,7 +77,12 @@ export function Cell(props: CellProps): React.JSX.Element {
|
|
|
76
77
|
props.style,
|
|
77
78
|
];
|
|
78
79
|
|
|
79
|
-
const titleColor =
|
|
80
|
+
const titleColor = resolveCellTitleColor({
|
|
81
|
+
danger: props.danger,
|
|
82
|
+
selected: props.selected,
|
|
83
|
+
dangerColor: c.error,
|
|
84
|
+
selectedColor: c.primary,
|
|
85
|
+
});
|
|
80
86
|
const titleStyle = [
|
|
81
87
|
flush ? styles.titleFlush : styles.title,
|
|
82
88
|
titleColor && { color: titleColor },
|
|
@@ -128,7 +134,9 @@ export function Cell(props: CellProps): React.JSX.Element {
|
|
|
128
134
|
accessibilityRole="button"
|
|
129
135
|
accessibilityLabel={accessibilityLabel}
|
|
130
136
|
accessibilityHint={props.accessibilityHint}
|
|
131
|
-
|
|
137
|
+
// 选中态必须进 a11y state:只靠 primary 色区分的话,色觉障碍与读屏用户
|
|
138
|
+
// 都感知不到「当前是哪一项」。
|
|
139
|
+
accessibilityState={{ disabled: isDisabled, selected: props.selected }}
|
|
132
140
|
testID={props.testID}
|
|
133
141
|
style={({ pressed }) => [
|
|
134
142
|
{ opacity: isDisabled ? 0.5 : pressed ? pressedOpacity : 1 },
|
|
@@ -144,7 +152,16 @@ export function Cell(props: CellProps): React.JSX.Element {
|
|
|
144
152
|
const staticLabel = props.accessibilityLabel;
|
|
145
153
|
if (staticLabel !== undefined && staticLabel.trim().length > 0) {
|
|
146
154
|
return (
|
|
147
|
-
<View
|
|
155
|
+
<View
|
|
156
|
+
accessible
|
|
157
|
+
accessibilityLabel={staticLabel}
|
|
158
|
+
accessibilityState={
|
|
159
|
+
props.selected === undefined
|
|
160
|
+
? undefined
|
|
161
|
+
: { selected: props.selected }
|
|
162
|
+
}
|
|
163
|
+
testID={props.testID}
|
|
164
|
+
>
|
|
148
165
|
{inner}
|
|
149
166
|
</View>
|
|
150
167
|
);
|
|
@@ -51,3 +51,24 @@ export function resolveCellActionAccessibilityLabel({
|
|
|
51
51
|
normalizeNonBlankText(buildCellAccessibilityLabel(content))
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* 语义态 → 标题色。**danger 优先于 selected** —— 危险语义比选中语义更需要被看见,
|
|
57
|
+
* 两者同时给时不该让「当前项」的高亮盖掉「这一项有风险」。
|
|
58
|
+
* 都没给返回 undefined,由调用方回落到默认前景色。
|
|
59
|
+
*/
|
|
60
|
+
export function resolveCellTitleColor({
|
|
61
|
+
danger,
|
|
62
|
+
selected,
|
|
63
|
+
dangerColor,
|
|
64
|
+
selectedColor,
|
|
65
|
+
}: {
|
|
66
|
+
danger?: boolean;
|
|
67
|
+
selected?: boolean;
|
|
68
|
+
dangerColor: string;
|
|
69
|
+
selectedColor: string;
|
|
70
|
+
}): string | undefined {
|
|
71
|
+
if (danger === true) return dangerColor;
|
|
72
|
+
if (selected === true) return selectedColor;
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
@@ -35,6 +35,12 @@ type SharedCellProps = {
|
|
|
35
35
|
leading?: CellLeading;
|
|
36
36
|
/** 危险态:icon 盒子与标题使用 error 色;action arrow 不显示。 */
|
|
37
37
|
danger?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 选中态:标题使用 primary 色,表示「列表里当前这一项」(会话列表的当前会话、
|
|
40
|
+
* 设置列表的当前选项等)。与 `danger` 互斥——同时给时 `danger` 优先,
|
|
41
|
+
* 危险语义比选中语义更需要被看见。
|
|
42
|
+
*/
|
|
43
|
+
selected?: boolean;
|
|
38
44
|
/** 额外样式覆盖。 */
|
|
39
45
|
style?: StyleProp<ViewStyle>;
|
|
40
46
|
/** E2E / 测试定位。 */
|