@unif/react-native-design 0.37.0 → 0.38.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/ActionMenuContent/ActionMenuContent.js +2 -1
- package/lib/module/components/ui/ActionMenuContent/ActionMenuContent.js.map +1 -1
- package/lib/module/components/ui/ImagePreview/ImagePreview.js +81 -72
- package/lib/module/components/ui/ImagePreview/ImagePreview.js.map +1 -1
- package/lib/module/components/ui/ImagePreview/constants.js +2 -0
- package/lib/module/components/ui/ImagePreview/constants.js.map +1 -1
- package/lib/module/components/ui/ImagePreview/styles.js +5 -1
- package/lib/module/components/ui/ImagePreview/styles.js.map +1 -1
- package/lib/module/components/ui/Sheet/Sheet.js +2 -1
- package/lib/module/components/ui/Sheet/Sheet.js.map +1 -1
- package/lib/typescript/src/components/ui/ActionMenuContent/ActionMenuContent.d.ts +1 -1
- package/lib/typescript/src/components/ui/ActionMenuContent/ActionMenuContent.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/ActionMenuContent/types.d.ts +1 -0
- package/lib/typescript/src/components/ui/ActionMenuContent/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/ImagePreview/ImagePreview.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/ImagePreview/constants.d.ts +1 -0
- package/lib/typescript/src/components/ui/ImagePreview/constants.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/ImagePreview/styles.d.ts +4 -1
- package/lib/typescript/src/components/ui/ImagePreview/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Sheet/Sheet.d.ts +1 -1
- package/lib/typescript/src/components/ui/Sheet/Sheet.d.ts.map +1 -1
- package/lib/typescript/src/components/ui/Sheet/types.d.ts +1 -0
- package/lib/typescript/src/components/ui/Sheet/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ui/ActionMenuContent/ActionMenuContent.tsx +2 -0
- package/src/components/ui/ActionMenuContent/types.ts +1 -0
- package/src/components/ui/ImagePreview/ImagePreview.tsx +92 -76
- package/src/components/ui/ImagePreview/constants.ts +3 -0
- package/src/components/ui/ImagePreview/styles.ts +5 -1
- package/src/components/ui/Sheet/Sheet.tsx +4 -1
- package/src/components/ui/Sheet/types.ts +1 -0
|
@@ -14,6 +14,7 @@ export function ActionMenuContent({
|
|
|
14
14
|
title,
|
|
15
15
|
cancelLabel = '取消',
|
|
16
16
|
style,
|
|
17
|
+
contentStyle,
|
|
17
18
|
testID = 'action-menu'
|
|
18
19
|
}) {
|
|
19
20
|
const styles = useThemedStyles(makeStyles);
|
|
@@ -29,7 +30,7 @@ export function ActionMenuContent({
|
|
|
29
30
|
testID: `${testID}-card`,
|
|
30
31
|
style: [isSheet ? styles.sheetCard : styles.dialogCard, isSheet && {
|
|
31
32
|
paddingBottom: insets.bottom + space[5]
|
|
32
|
-
}],
|
|
33
|
+
}, contentStyle],
|
|
33
34
|
onPress: event => event.stopPropagation(),
|
|
34
35
|
children: [title ? /*#__PURE__*/_jsx(Text, {
|
|
35
36
|
testID: `${testID}-title`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","Pressable","Text","View","useSafeAreaInsets","space","useThemedStyles","Button","makeStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ActionMenuContent","actions","onClose","presentation","title","cancelLabel","style","testID","styles","insets","confirmationId","setConfirmationId","isSheet","confirming","find","action","id","confirmation","undefined","content","accessible","sheetCard","dialogCard","paddingBottom","bottom","onPress","event","stopPropagation","children","numberOfLines","ellipsizeMode","accessibilityLiveRegion","message","sheetActions","label","variant","sheetAction","confirmLabel","disabled","loading","map","tone","sheetRoot","dialogRoot"],"sourceRoot":"../../../../../src","sources":["components/ui/ActionMenuContent/ActionMenuContent.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,SAAS,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACpD,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,KAAK,EAAEC,eAAe,QAAQ,yBAAgB;AACvD,SAASC,MAAM,QAAQ,oBAAW;AAElC,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEtC,OAAO,SAASC,iBAAiBA,CAAC;EAChCC,OAAO;EACPC,OAAO;EACPC,YAAY,GAAG,QAAQ;EACvBC,KAAK;EACLC,WAAW,GAAG,IAAI;EAClBC,KAAK;EACLC,MAAM,GAAG;AACa,CAAC,EAAqB;EAC5C,MAAMC,MAAM,
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","Pressable","Text","View","useSafeAreaInsets","space","useThemedStyles","Button","makeStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ActionMenuContent","actions","onClose","presentation","title","cancelLabel","style","contentStyle","testID","styles","insets","confirmationId","setConfirmationId","isSheet","confirming","find","action","id","confirmation","undefined","content","accessible","sheetCard","dialogCard","paddingBottom","bottom","onPress","event","stopPropagation","children","numberOfLines","ellipsizeMode","accessibilityLiveRegion","message","sheetActions","label","variant","sheetAction","confirmLabel","disabled","loading","map","tone","sheetRoot","dialogRoot"],"sourceRoot":"../../../../../src","sources":["components/ui/ActionMenuContent/ActionMenuContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ import { radius, useThemedStyles } from "../../../theme/index.js";
|
|
|
6
6
|
import { IconButton } from "../IconButton/index.js";
|
|
7
7
|
import { Thumbnail } from "../Thumbnail/index.js";
|
|
8
8
|
import { Carousel } from 'react-native-reanimated-carousel';
|
|
9
|
-
import { DELETE_LABEL, IMAGE_UNAVAILABLE } from "./constants.js";
|
|
9
|
+
import { DELETE_LABEL, IMAGE_COUNTER_HEIGHT, IMAGE_UNAVAILABLE } from "./constants.js";
|
|
10
10
|
import { makeStyles } from "./styles.js";
|
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
export const ImagePreview = /*#__PURE__*/forwardRef(function ImagePreviewInner({
|
|
@@ -106,86 +106,95 @@ export const ImagePreview = /*#__PURE__*/forwardRef(function ImagePreviewInner({
|
|
|
106
106
|
return /*#__PURE__*/_jsxs(View, {
|
|
107
107
|
style: [styles.container, style],
|
|
108
108
|
testID: testID,
|
|
109
|
-
children: [/*#__PURE__*/
|
|
110
|
-
ref: carouselRef,
|
|
111
|
-
data: data,
|
|
112
|
-
defaultIndex: selection.index,
|
|
113
|
-
loop: false,
|
|
114
|
-
itemSize: width,
|
|
109
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
115
110
|
style: {
|
|
116
111
|
width,
|
|
117
|
-
height
|
|
112
|
+
height: height + IMAGE_COUNTER_HEIGHT / 2
|
|
118
113
|
},
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
source: item.source,
|
|
162
|
-
size: {
|
|
114
|
+
children: [/*#__PURE__*/_jsx(Carousel, {
|
|
115
|
+
ref: carouselRef,
|
|
116
|
+
data: data,
|
|
117
|
+
defaultIndex: selection.index,
|
|
118
|
+
loop: false,
|
|
119
|
+
itemSize: width,
|
|
120
|
+
style: {
|
|
121
|
+
width,
|
|
122
|
+
height
|
|
123
|
+
},
|
|
124
|
+
keyExtractor: id => id,
|
|
125
|
+
testID: testID ? `${testID}-carousel` : undefined,
|
|
126
|
+
onScrollStart: () => {
|
|
127
|
+
if (mounted.current && selection.carouselRevision === committed.current.carouselRevision) {
|
|
128
|
+
moving.current = true;
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
onSnapToItem: index => {
|
|
132
|
+
const latest = committed.current;
|
|
133
|
+
if (!mounted.current || selection.carouselRevision !== latest.carouselRevision || items.length !== latest.items.length || items.some((item, itemIndex) => item.id !== latest.items[itemIndex]?.id)) return;
|
|
134
|
+
moving.current = false;
|
|
135
|
+
const id = items[index]?.id;
|
|
136
|
+
const nextIndex = latest.items.findIndex(item => item.id === id);
|
|
137
|
+
if (nextIndex >= 0 && nextIndex !== latest.index) {
|
|
138
|
+
const next = {
|
|
139
|
+
...latest,
|
|
140
|
+
index: nextIndex
|
|
141
|
+
};
|
|
142
|
+
// SDK 已完成落位;句柄同步可读,不等待 React 下一次提交。
|
|
143
|
+
committed.current = next;
|
|
144
|
+
setSelection(next);
|
|
145
|
+
notifiedId.current = id;
|
|
146
|
+
currentChange.current?.(next.items[nextIndex]);
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
renderItem: ({
|
|
150
|
+
item: id,
|
|
151
|
+
index
|
|
152
|
+
}) => {
|
|
153
|
+
const item = items.find(candidate => candidate.id === id);
|
|
154
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
155
|
+
style: [styles.media, {
|
|
163
156
|
width,
|
|
164
|
-
height
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
resizeMode: "contain",
|
|
168
|
-
imageStyle: styles.image,
|
|
169
|
-
accessibilityLabel: item.label ?? `图片第 ${index + 1} 张`,
|
|
170
|
-
fallback: /*#__PURE__*/_jsx(View, {
|
|
157
|
+
height
|
|
158
|
+
}],
|
|
159
|
+
children: [item.source === undefined ? /*#__PURE__*/_jsx(View, {
|
|
171
160
|
style: styles.placeholder,
|
|
172
161
|
children: /*#__PURE__*/_jsx(Text, {
|
|
173
162
|
style: styles.placeholderText,
|
|
174
163
|
children: IMAGE_UNAVAILABLE
|
|
175
164
|
})
|
|
176
|
-
})
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
165
|
+
}) : /*#__PURE__*/_jsx(Thumbnail, {
|
|
166
|
+
source: item.source,
|
|
167
|
+
size: {
|
|
168
|
+
width,
|
|
169
|
+
height,
|
|
170
|
+
borderRadius: radius.xl
|
|
171
|
+
},
|
|
172
|
+
resizeMode: "contain",
|
|
173
|
+
imageStyle: styles.image,
|
|
174
|
+
accessibilityLabel: item.label ?? `图片第 ${index + 1} 张`,
|
|
175
|
+
fallback: /*#__PURE__*/_jsx(View, {
|
|
176
|
+
style: styles.placeholder,
|
|
177
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
178
|
+
style: styles.placeholderText,
|
|
179
|
+
children: IMAGE_UNAVAILABLE
|
|
180
|
+
})
|
|
181
|
+
})
|
|
182
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
183
|
+
pointerEvents: "none",
|
|
184
|
+
style: styles.border
|
|
185
|
+
})]
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}, selection.carouselRevision), /*#__PURE__*/_jsx(View, {
|
|
189
|
+
style: styles.counter,
|
|
190
|
+
accessible: true,
|
|
191
|
+
accessibilityLiveRegion: "polite",
|
|
192
|
+
accessibilityLabel: `第${selection.index + 1}张,共${items.length}张`,
|
|
193
|
+
children: /*#__PURE__*/_jsxs(Text, {
|
|
194
|
+
style: styles.counterText,
|
|
195
|
+
children: ["\u7B2C", selection.index + 1, "/", items.length, "\u5F20"]
|
|
196
|
+
})
|
|
197
|
+
})]
|
|
189
198
|
}), current.canDelete && onRequestDelete ? /*#__PURE__*/_jsx(IconButton, {
|
|
190
199
|
icon: "trash",
|
|
191
200
|
size: "sm",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","Text","View","radius","useThemedStyles","IconButton","Thumbnail","Carousel","DELETE_LABEL","IMAGE_UNAVAILABLE","makeStyles","jsx","_jsx","jsxs","_jsxs","ImagePreview","ImagePreviewInner","items","width","height","initialId","onCurrentChange","onRequestDelete","style","testID","ref","styles","carouselRef","mounted","moving","pendingScroll","undefined","selection","setSelection","index","Math","max","findIndex","item","id","initialized","length","carouselRevision","retainedIndex","identityChanged","some","current","min","committed","currentChange","request","scrollTo","animated","notifiedId","displayed","getCurrent","next","data","map","container","children","defaultIndex","loop","itemSize","keyExtractor","onScrollStart","onSnapToItem","latest","itemIndex","nextIndex","renderItem","find","candidate","media","source","placeholder","placeholderText","size","borderRadius","xl","resizeMode","imageStyle","image","accessibilityLabel","label","fallback","pointerEvents","border","counter","counterText","canDelete","icon","variant","disabled","deleting","deleteButton","onPress"],"sourceRoot":"../../../../../src","sources":["components/ui/ImagePreview/ImagePreview.tsx"],"mappings":";;AAAA,SACEA,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBC,eAAe,EACfC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,MAAM,EAAEC,eAAe,QAAQ,yBAAgB;AACxD,SAASC,UAAU,QAAQ,wBAAe;AAC1C,SAASC,SAAS,QAAQ,uBAAc;AACxC,SAASC,QAAQ,QAA0B,kCAAkC;AAC7E,
|
|
1
|
+
{"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","Text","View","radius","useThemedStyles","IconButton","Thumbnail","Carousel","DELETE_LABEL","IMAGE_COUNTER_HEIGHT","IMAGE_UNAVAILABLE","makeStyles","jsx","_jsx","jsxs","_jsxs","ImagePreview","ImagePreviewInner","items","width","height","initialId","onCurrentChange","onRequestDelete","style","testID","ref","styles","carouselRef","mounted","moving","pendingScroll","undefined","selection","setSelection","index","Math","max","findIndex","item","id","initialized","length","carouselRevision","retainedIndex","identityChanged","some","current","min","committed","currentChange","request","scrollTo","animated","notifiedId","displayed","getCurrent","next","data","map","container","children","defaultIndex","loop","itemSize","keyExtractor","onScrollStart","onSnapToItem","latest","itemIndex","nextIndex","renderItem","find","candidate","media","source","placeholder","placeholderText","size","borderRadius","xl","resizeMode","imageStyle","image","accessibilityLabel","label","fallback","pointerEvents","border","counter","accessible","accessibilityLiveRegion","counterText","canDelete","icon","variant","disabled","deleting","deleteButton","onPress"],"sourceRoot":"../../../../../src","sources":["components/ui/ImagePreview/ImagePreview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IMAGE_UNAVAILABLE","DELETE_LABEL"],"sourceRoot":"../../../../../src","sources":["components/ui/ImagePreview/constants.ts"],"mappings":";;AAAA,OAAO,
|
|
1
|
+
{"version":3,"names":["r","IMAGE_UNAVAILABLE","DELETE_LABEL","IMAGE_COUNTER_HEIGHT"],"sourceRoot":"../../../../../src","sources":["components/ui/ImagePreview/constants.ts"],"mappings":";;AAAA,SAASA,CAAC,QAAQ,yBAAgB;AAElC,OAAO,MAAMC,iBAAiB,GAAG,SAAS;AAC1C,OAAO,MAAMC,YAAY,GAAG,QAAQ;AACpC,OAAO,MAAMC,oBAAoB,GAAGH,CAAC,CAAC,EAAE,CAAC","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { StyleSheet } from 'react-native';
|
|
4
4
|
import { fontMono, radius, space, type as typography } from "../../../theme/index.js";
|
|
5
|
+
import { IMAGE_COUNTER_HEIGHT } from "./constants.js";
|
|
5
6
|
export const makeStyles = colors => StyleSheet.create({
|
|
6
7
|
container: {
|
|
7
8
|
alignItems: 'center',
|
|
@@ -35,8 +36,11 @@ export const makeStyles = colors => StyleSheet.create({
|
|
|
35
36
|
textAlign: 'center'
|
|
36
37
|
},
|
|
37
38
|
counter: {
|
|
39
|
+
position: 'absolute',
|
|
40
|
+
bottom: 0,
|
|
38
41
|
alignSelf: 'center',
|
|
39
|
-
|
|
42
|
+
height: IMAGE_COUNTER_HEIGHT,
|
|
43
|
+
justifyContent: 'center',
|
|
40
44
|
paddingHorizontal: space[3],
|
|
41
45
|
borderRadius: radius.pill,
|
|
42
46
|
borderWidth: StyleSheet.hairlineWidth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","fontMono","radius","space","type","typography","makeStyles","colors","create","container","alignItems","gap","media","backgroundColor","borderRadius","xl","overflow","border","absoluteFill","borderColor","outline","borderWidth","hairlineWidth","image","placeholder","width","height","justifyContent","paddingHorizontal","placeholderText","color","fontSize","sm","textAlign","counter","
|
|
1
|
+
{"version":3,"names":["StyleSheet","fontMono","radius","space","type","typography","IMAGE_COUNTER_HEIGHT","makeStyles","colors","create","container","alignItems","gap","media","backgroundColor","borderRadius","xl","overflow","border","absoluteFill","borderColor","outline","borderWidth","hairlineWidth","image","placeholder","width","height","justifyContent","paddingHorizontal","placeholderText","color","fontSize","sm","textAlign","counter","position","bottom","alignSelf","pill","glassPillBorder","glassHighlight","counterText","foreground","fontFamily","deleteButton"],"sourceRoot":"../../../../../src","sources":["components/ui/ImagePreview/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,IAAIC,UAAU,QAAQ,yBAAgB;AAE5E,SAASC,oBAAoB,QAAQ,gBAAa;AAElD,OAAO,MAAMC,UAAU,GAAIC,MAAmB,IAC5CR,UAAU,CAACS,MAAM,CAAC;EAChBC,SAAS,EAAE;IAAEC,UAAU,EAAE,QAAQ;IAAEC,GAAG,EAAET,KAAK,CAAC,CAAC;EAAE,CAAC;EAClDU,KAAK,EAAE;IACLC,eAAe,EAAE,OAAO;IACxBC,YAAY,EAAEb,MAAM,CAACc,EAAE;IACvBC,QAAQ,EAAE;EACZ,CAAC;EACDC,MAAM,EAAE;IACN,GAAGlB,UAAU,CAACmB,YAAY;IAC1BC,WAAW,EAAEZ,MAAM,CAACa,OAAO;IAC3BC,WAAW,EAAEtB,UAAU,CAACuB,aAAa;IACrCR,YAAY,EAAEb,MAAM,CAACc;EACvB,CAAC;EACDQ,KAAK,EAAE;IAAEV,eAAe,EAAE;EAAQ,CAAC;EACnCW,WAAW,EAAE;IACXC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdb,eAAe,EAAE,OAAO;IACxBc,cAAc,EAAE,QAAQ;IACxBjB,UAAU,EAAE,QAAQ;IACpBkB,iBAAiB,EAAE1B,KAAK,CAAC,CAAC;EAC5B,CAAC;EACD2B,eAAe,EAAE;IACfC,KAAK,EAAE,OAAO;IACdC,QAAQ,EAAE3B,UAAU,CAAC4B,EAAE;IACvBC,SAAS,EAAE;EACb,CAAC;EACDC,OAAO,EAAE;IACPC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,QAAQ;IACnBX,MAAM,EAAErB,oBAAoB;IAC5BsB,cAAc,EAAE,QAAQ;IACxBC,iBAAiB,EAAE1B,KAAK,CAAC,CAAC,CAAC;IAC3BY,YAAY,EAAEb,MAAM,CAACqC,IAAI;IACzBjB,WAAW,EAAEtB,UAAU,CAACuB,aAAa;IACrCH,WAAW,EAAEZ,MAAM,CAACgC,eAAe;IACnC1B,eAAe,EAAEN,MAAM,CAACiC;EAC1B,CAAC;EACDC,WAAW,EAAE;IACXX,KAAK,EAAEvB,MAAM,CAACmC,UAAU;IACxBX,QAAQ,EAAE3B,UAAU,CAAC4B,EAAE;IACvBW,UAAU,EAAE3C;EACd,CAAC;EACD4C,YAAY,EAAE;IAAE9B,YAAY,EAAEb,MAAM,CAACqC;EAAK;AAC5C,CAAC,CAAC","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ export function Sheet({
|
|
|
11
11
|
footer,
|
|
12
12
|
contentMode = 'fixed',
|
|
13
13
|
contentContainerStyle,
|
|
14
|
+
footerStyle,
|
|
14
15
|
style,
|
|
15
16
|
testID
|
|
16
17
|
}) {
|
|
@@ -32,7 +33,7 @@ export function Sheet({
|
|
|
32
33
|
style: [styles.contentRegion, styles.content, contentContainerStyle],
|
|
33
34
|
children: children
|
|
34
35
|
}), footer ? /*#__PURE__*/_jsx(View, {
|
|
35
|
-
style: styles.footer,
|
|
36
|
+
style: [styles.footer, footerStyle],
|
|
36
37
|
children: footer
|
|
37
38
|
}) : null]
|
|
38
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ScrollView","View","useThemedStyles","makeStyles","jsx","_jsx","jsxs","_jsxs","Sheet","children","header","footer","contentMode","contentContainerStyle","style","testID","styles","root","grabberContainer","grabber","contentRegion","content","keyboardShouldPersistTaps"],"sourceRoot":"../../../../../src","sources":["components/ui/Sheet/Sheet.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,eAAe,QAAQ,yBAAgB;AAChD,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGtC,OAAO,SAASC,KAAKA,CAAC;EACpBC,QAAQ;EACRC,MAAM;EACNC,MAAM;EACNC,WAAW,GAAG,OAAO;EACrBC,qBAAqB;EACrBC,KAAK;EACLC;AACU,CAAC,EAAqB;EAChC,MAAMC,MAAM,
|
|
1
|
+
{"version":3,"names":["React","ScrollView","View","useThemedStyles","makeStyles","jsx","_jsx","jsxs","_jsxs","Sheet","children","header","footer","contentMode","contentContainerStyle","footerStyle","style","testID","styles","root","grabberContainer","grabber","contentRegion","content","keyboardShouldPersistTaps"],"sourceRoot":"../../../../../src","sources":["components/ui/Sheet/Sheet.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,eAAe,QAAQ,yBAAgB;AAChD,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGtC,OAAO,SAASC,KAAKA,CAAC;EACpBC,QAAQ;EACRC,MAAM;EACNC,MAAM;EACNC,WAAW,GAAG,OAAO;EACrBC,qBAAqB;EACrBC,WAAW;EACXC,KAAK;EACLC;AACU,CAAC,EAAqB;EAChC,MAAMC,MAAM,GAAGf,eAAe,CAACC,UAAU,CAAC;EAE1C,oBACEI,KAAA,CAACN,IAAI;IAACc,KAAK,EAAE,CAACE,MAAM,CAACC,IAAI,EAAEH,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAP,QAAA,GAC/CC,MAAM,iBACLL,IAAA,CAACJ,IAAI;MAACc,KAAK,EAAEE,MAAM,CAACE,gBAAiB;MAAAV,QAAA,eACnCJ,IAAA,CAACJ,IAAI;QAACc,KAAK,EAAEE,MAAM,CAACG;MAAQ,CAAE;IAAC,CAC3B,CACP,EACAR,WAAW,KAAK,QAAQ,gBACvBP,IAAA,CAACL,UAAU;MACTe,KAAK,EAAEE,MAAM,CAACI,aAAc;MAC5BR,qBAAqB,EAAE,CAACI,MAAM,CAACK,OAAO,EAAET,qBAAqB,CAAE;MAC/DU,yBAAyB,EAAC,SAAS;MAAAd,QAAA,EAElCA;IAAQ,CACC,CAAC,gBAEbJ,IAAA,CAACJ,IAAI;MACHc,KAAK,EAAE,CAACE,MAAM,CAACI,aAAa,EAAEJ,MAAM,CAACK,OAAO,EAAET,qBAAqB,CAAE;MAAAJ,QAAA,EAEpEA;IAAQ,CACL,CACP,EACAE,MAAM,gBACLN,IAAA,CAACJ,IAAI;MAACc,KAAK,EAAE,CAACE,MAAM,CAACN,MAAM,EAAEG,WAAW,CAAE;MAAAL,QAAA,EAAEE;IAAM,CAAO,CAAC,GACxD,IAAI;EAAA,CACJ,CAAC;AAEX","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ActionMenuContentProps } from './types';
|
|
3
|
-
export declare function ActionMenuContent({ actions, onClose, presentation, title, cancelLabel, style, testID, }: ActionMenuContentProps): React.JSX.Element;
|
|
3
|
+
export declare function ActionMenuContent({ actions, onClose, presentation, title, cancelLabel, style, contentStyle, testID, }: ActionMenuContentProps): React.JSX.Element;
|
|
4
4
|
//# sourceMappingURL=ActionMenuContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionMenuContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ActionMenuContent/ActionMenuContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGtD,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,YAAuB,EACvB,KAAK,EACL,WAAkB,EAClB,KAAK,EACL,MAAsB,GACvB,EAAE,sBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"ActionMenuContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ActionMenuContent/ActionMenuContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGtD,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,YAAuB,EACvB,KAAK,EACL,WAAkB,EAClB,KAAK,EACL,YAAY,EACZ,MAAsB,GACvB,EAAE,sBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsG5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ActionMenuContent/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC;AAED,2BAA2B;AAC3B,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ActionMenuContent/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC;AAED,2BAA2B;AAC3B,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePreview.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ImagePreview/ImagePreview.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ImagePreview.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ImagePreview/ImagePreview.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,YAAY,kHAuOxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ImagePreview/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ImagePreview/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,+CAAY,CAAC;AAC3C,eAAO,MAAM,YAAY,yCAAW,CAAC;AACrC,eAAO,MAAM,oBAAoB,QAAQ,CAAC"}
|
|
@@ -36,8 +36,11 @@ export declare const makeStyles: (colors: ColorTokens) => Readonly<{
|
|
|
36
36
|
textAlign: "center";
|
|
37
37
|
};
|
|
38
38
|
counter: {
|
|
39
|
+
position: "absolute";
|
|
40
|
+
bottom: number;
|
|
39
41
|
alignSelf: "center";
|
|
40
|
-
|
|
42
|
+
height: number;
|
|
43
|
+
justifyContent: "center";
|
|
41
44
|
paddingHorizontal: number;
|
|
42
45
|
borderRadius: 999;
|
|
43
46
|
borderWidth: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ImagePreview/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/ImagePreview/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8C1C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SheetProps } from './types';
|
|
3
|
-
export declare function Sheet({ children, header, footer, contentMode, contentContainerStyle, style, testID, }: SheetProps): React.JSX.Element;
|
|
3
|
+
export declare function Sheet({ children, header, footer, contentMode, contentContainerStyle, footerStyle, style, testID, }: SheetProps): React.JSX.Element;
|
|
4
4
|
//# sourceMappingURL=Sheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Sheet/Sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAqB,EACrB,qBAAqB,EACrB,KAAK,EACL,MAAM,GACP,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Sheet/Sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,KAAK,EACL,MAAM,GACP,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA8BhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Sheet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Sheet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/package.json
CHANGED
|
@@ -13,6 +13,7 @@ export function ActionMenuContent({
|
|
|
13
13
|
title,
|
|
14
14
|
cancelLabel = '取消',
|
|
15
15
|
style,
|
|
16
|
+
contentStyle,
|
|
16
17
|
testID = 'action-menu',
|
|
17
18
|
}: ActionMenuContentProps): React.JSX.Element {
|
|
18
19
|
const styles = useThemedStyles(makeStyles);
|
|
@@ -35,6 +36,7 @@ export function ActionMenuContent({
|
|
|
35
36
|
style={[
|
|
36
37
|
isSheet ? styles.sheetCard : styles.dialogCard,
|
|
37
38
|
isSheet && { paddingBottom: insets.bottom + space[5] },
|
|
39
|
+
contentStyle,
|
|
38
40
|
]}
|
|
39
41
|
onPress={(event) => event.stopPropagation()}
|
|
40
42
|
>
|
|
@@ -12,7 +12,11 @@ import { radius, useThemedStyles } from '../../../theme';
|
|
|
12
12
|
import { IconButton } from '../IconButton';
|
|
13
13
|
import { Thumbnail } from '../Thumbnail';
|
|
14
14
|
import { Carousel, type CarouselRef } from 'react-native-reanimated-carousel';
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
DELETE_LABEL,
|
|
17
|
+
IMAGE_COUNTER_HEIGHT,
|
|
18
|
+
IMAGE_UNAVAILABLE,
|
|
19
|
+
} from './constants';
|
|
16
20
|
import { makeStyles } from './styles';
|
|
17
21
|
import type {
|
|
18
22
|
ImagePreviewHandle,
|
|
@@ -149,82 +153,94 @@ export const ImagePreview = forwardRef<ImagePreviewHandle, ImagePreviewProps>(
|
|
|
149
153
|
|
|
150
154
|
return (
|
|
151
155
|
<View style={[styles.container, style]} testID={testID}>
|
|
152
|
-
<
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
156
|
+
<View style={{ width, height: height + IMAGE_COUNTER_HEIGHT / 2 }}>
|
|
157
|
+
<Carousel
|
|
158
|
+
key={selection.carouselRevision}
|
|
159
|
+
ref={carouselRef}
|
|
160
|
+
data={data}
|
|
161
|
+
defaultIndex={selection.index}
|
|
162
|
+
loop={false}
|
|
163
|
+
itemSize={width}
|
|
164
|
+
style={{ width, height }}
|
|
165
|
+
keyExtractor={(id) => id}
|
|
166
|
+
testID={testID ? `${testID}-carousel` : undefined}
|
|
167
|
+
onScrollStart={() => {
|
|
168
|
+
if (
|
|
169
|
+
mounted.current &&
|
|
170
|
+
selection.carouselRevision ===
|
|
171
|
+
committed.current.carouselRevision
|
|
172
|
+
) {
|
|
173
|
+
moving.current = true;
|
|
174
|
+
}
|
|
175
|
+
}}
|
|
176
|
+
onSnapToItem={(index) => {
|
|
177
|
+
const latest = committed.current;
|
|
178
|
+
if (
|
|
179
|
+
!mounted.current ||
|
|
180
|
+
selection.carouselRevision !== latest.carouselRevision ||
|
|
181
|
+
items.length !== latest.items.length ||
|
|
182
|
+
items.some(
|
|
183
|
+
(item, itemIndex) => item.id !== latest.items[itemIndex]?.id
|
|
184
|
+
)
|
|
178
185
|
)
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
<
|
|
200
|
-
{
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
186
|
+
return;
|
|
187
|
+
moving.current = false;
|
|
188
|
+
const id = items[index]?.id;
|
|
189
|
+
const nextIndex = latest.items.findIndex(
|
|
190
|
+
(item) => item.id === id
|
|
191
|
+
);
|
|
192
|
+
if (nextIndex >= 0 && nextIndex !== latest.index) {
|
|
193
|
+
const next = { ...latest, index: nextIndex };
|
|
194
|
+
// SDK 已完成落位;句柄同步可读,不等待 React 下一次提交。
|
|
195
|
+
committed.current = next;
|
|
196
|
+
setSelection(next);
|
|
197
|
+
notifiedId.current = id;
|
|
198
|
+
currentChange.current?.(next.items[nextIndex]!);
|
|
199
|
+
}
|
|
200
|
+
}}
|
|
201
|
+
renderItem={({ item: id, index }) => {
|
|
202
|
+
const item = items.find((candidate) => candidate.id === id)!;
|
|
203
|
+
return (
|
|
204
|
+
<View style={[styles.media, { width, height }]}>
|
|
205
|
+
{item.source === undefined ? (
|
|
206
|
+
<View style={styles.placeholder}>
|
|
207
|
+
<Text style={styles.placeholderText}>
|
|
208
|
+
{IMAGE_UNAVAILABLE}
|
|
209
|
+
</Text>
|
|
210
|
+
</View>
|
|
211
|
+
) : (
|
|
212
|
+
<Thumbnail
|
|
213
|
+
source={item.source}
|
|
214
|
+
size={{ width, height, borderRadius: radius.xl }}
|
|
215
|
+
resizeMode="contain"
|
|
216
|
+
imageStyle={styles.image}
|
|
217
|
+
accessibilityLabel={
|
|
218
|
+
item.label ?? `图片第 ${index + 1} 张`
|
|
219
|
+
}
|
|
220
|
+
fallback={
|
|
221
|
+
<View style={styles.placeholder}>
|
|
222
|
+
<Text style={styles.placeholderText}>
|
|
223
|
+
{IMAGE_UNAVAILABLE}
|
|
224
|
+
</Text>
|
|
225
|
+
</View>
|
|
226
|
+
}
|
|
227
|
+
/>
|
|
228
|
+
)}
|
|
229
|
+
<View pointerEvents="none" style={styles.border} />
|
|
230
|
+
</View>
|
|
231
|
+
);
|
|
232
|
+
}}
|
|
233
|
+
/>
|
|
234
|
+
<View
|
|
235
|
+
style={styles.counter}
|
|
236
|
+
accessible
|
|
237
|
+
accessibilityLiveRegion="polite"
|
|
238
|
+
accessibilityLabel={`第${selection.index + 1}张,共${items.length}张`}
|
|
239
|
+
>
|
|
240
|
+
<Text style={styles.counterText}>
|
|
241
|
+
第{selection.index + 1}/{items.length}张
|
|
242
|
+
</Text>
|
|
243
|
+
</View>
|
|
228
244
|
</View>
|
|
229
245
|
{current.canDelete && onRequestDelete ? (
|
|
230
246
|
<IconButton
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { StyleSheet } from 'react-native';
|
|
2
2
|
import { fontMono, radius, space, type as typography } from '../../../theme';
|
|
3
3
|
import type { ColorTokens } from '../../../theme';
|
|
4
|
+
import { IMAGE_COUNTER_HEIGHT } from './constants';
|
|
4
5
|
|
|
5
6
|
export const makeStyles = (colors: ColorTokens) =>
|
|
6
7
|
StyleSheet.create({
|
|
@@ -31,8 +32,11 @@ export const makeStyles = (colors: ColorTokens) =>
|
|
|
31
32
|
textAlign: 'center',
|
|
32
33
|
},
|
|
33
34
|
counter: {
|
|
35
|
+
position: 'absolute',
|
|
36
|
+
bottom: 0,
|
|
34
37
|
alignSelf: 'center',
|
|
35
|
-
|
|
38
|
+
height: IMAGE_COUNTER_HEIGHT,
|
|
39
|
+
justifyContent: 'center',
|
|
36
40
|
paddingHorizontal: space[3],
|
|
37
41
|
borderRadius: radius.pill,
|
|
38
42
|
borderWidth: StyleSheet.hairlineWidth,
|
|
@@ -10,6 +10,7 @@ export function Sheet({
|
|
|
10
10
|
footer,
|
|
11
11
|
contentMode = 'fixed',
|
|
12
12
|
contentContainerStyle,
|
|
13
|
+
footerStyle,
|
|
13
14
|
style,
|
|
14
15
|
testID,
|
|
15
16
|
}: SheetProps): React.JSX.Element {
|
|
@@ -37,7 +38,9 @@ export function Sheet({
|
|
|
37
38
|
{children}
|
|
38
39
|
</View>
|
|
39
40
|
)}
|
|
40
|
-
{footer ?
|
|
41
|
+
{footer ? (
|
|
42
|
+
<View style={[styles.footer, footerStyle]}>{footer}</View>
|
|
43
|
+
) : null}
|
|
41
44
|
</View>
|
|
42
45
|
);
|
|
43
46
|
}
|