@unif/react-native-chat 3.2.3 → 3.3.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/Attachments/AttachmentItem.js +3 -2
- package/lib/module/components/Attachments/AttachmentItem.js.map +1 -1
- package/lib/module/components/Attachments/Attachments.js +1 -0
- package/lib/module/components/Attachments/Attachments.js.map +1 -1
- package/lib/module/components/Attachments/styles.js +4 -0
- package/lib/module/components/Attachments/styles.js.map +1 -1
- package/lib/module/components/Composer/Composer.js +13 -9
- package/lib/module/components/Composer/Composer.js.map +1 -1
- package/lib/module/components/Confirmation/Confirmation.js +29 -13
- package/lib/module/components/Confirmation/Confirmation.js.map +1 -1
- package/lib/module/components/Confirmation/styles.js +17 -6
- package/lib/module/components/Confirmation/styles.js.map +1 -1
- package/lib/module/components/Message/MarkdownContent/styles.js +29 -33
- package/lib/module/components/Message/MarkdownContent/styles.js.map +1 -1
- package/lib/module/components/Message/Message.js +37 -24
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageWaiting.js +53 -0
- package/lib/module/components/Message/MessageWaiting.js.map +1 -0
- package/lib/module/components/Message/constants.js +3 -0
- package/lib/module/components/Message/constants.js.map +1 -1
- package/lib/module/components/Message/styles.js +41 -3
- package/lib/module/components/Message/styles.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +60 -31
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/MessageListEndButton.js +60 -0
- package/lib/module/components/MessageList/MessageListEndButton.js.map +1 -0
- package/lib/module/components/MessageList/MessageListRow.js +9 -2
- package/lib/module/components/MessageList/MessageListRow.js.map +1 -1
- package/lib/module/components/MessageList/styles.js +6 -0
- package/lib/module/components/MessageList/styles.js.map +1 -1
- package/lib/module/components/MessageList/useMessageListScroll.js +218 -13
- package/lib/module/components/MessageList/useMessageListScroll.js.map +1 -1
- package/lib/module/components/Process/Process.js +15 -5
- package/lib/module/components/Process/Process.js.map +1 -1
- package/lib/module/components/Process/ProcessCompactStep.js +21 -7
- package/lib/module/components/Process/ProcessCompactStep.js.map +1 -1
- package/lib/module/components/Process/ProcessTimelineStep.js +79 -0
- package/lib/module/components/Process/ProcessTimelineStep.js.map +1 -0
- package/lib/module/components/Process/styles.js +63 -3
- package/lib/module/components/Process/styles.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/Attachments/AttachmentItem.d.ts +1 -1
- package/lib/typescript/src/components/Attachments/AttachmentItem.d.ts.map +1 -1
- package/lib/typescript/src/components/Attachments/Attachments.d.ts.map +1 -1
- package/lib/typescript/src/components/Attachments/styles.d.ts +4 -0
- package/lib/typescript/src/components/Attachments/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/Attachments/types.d.ts +2 -1
- package/lib/typescript/src/components/Attachments/types.d.ts.map +1 -1
- package/lib/typescript/src/components/Composer/Composer.d.ts.map +1 -1
- package/lib/typescript/src/components/Confirmation/Confirmation.d.ts.map +1 -1
- package/lib/typescript/src/components/Confirmation/styles.d.ts +13 -2
- package/lib/typescript/src/components/Confirmation/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/Message/MarkdownContent/styles.d.ts +32 -66
- package/lib/typescript/src/components/Message/MarkdownContent/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/Message/Message.d.ts.map +1 -1
- package/lib/typescript/src/components/Message/MessageWaiting.d.ts +3 -0
- package/lib/typescript/src/components/Message/MessageWaiting.d.ts.map +1 -0
- package/lib/typescript/src/components/Message/constants.d.ts +3 -0
- package/lib/typescript/src/components/Message/constants.d.ts.map +1 -1
- package/lib/typescript/src/components/Message/styles.d.ts +40 -2
- package/lib/typescript/src/components/Message/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/Message/types.d.ts +5 -0
- package/lib/typescript/src/components/Message/types.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/MessageListEndButton.d.ts +3 -0
- package/lib/typescript/src/components/MessageList/MessageListEndButton.d.ts.map +1 -0
- package/lib/typescript/src/components/MessageList/MessageListRow.d.ts +2 -8
- package/lib/typescript/src/components/MessageList/MessageListRow.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/index.d.ts +1 -1
- package/lib/typescript/src/components/MessageList/index.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/styles.d.ts +6 -0
- package/lib/typescript/src/components/MessageList/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/types.d.ts +41 -2
- package/lib/typescript/src/components/MessageList/types.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts +14 -3
- package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts.map +1 -1
- package/lib/typescript/src/components/Process/Process.d.ts.map +1 -1
- package/lib/typescript/src/components/Process/ProcessCompactStep.d.ts +1 -1
- package/lib/typescript/src/components/Process/ProcessCompactStep.d.ts.map +1 -1
- package/lib/typescript/src/components/Process/ProcessTimelineStep.d.ts +5 -0
- package/lib/typescript/src/components/Process/ProcessTimelineStep.d.ts.map +1 -0
- package/lib/typescript/src/components/Process/styles.d.ts +62 -2
- package/lib/typescript/src/components/Process/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/Process/types.d.ts +7 -2
- package/lib/typescript/src/components/Process/types.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Attachments/AttachmentItem.tsx +11 -3
- package/src/components/Attachments/Attachments.tsx +1 -0
- package/src/components/Attachments/styles.ts +1 -0
- package/src/components/Attachments/types.ts +2 -1
- package/src/components/Composer/Composer.tsx +34 -8
- package/src/components/Confirmation/Confirmation.tsx +50 -14
- package/src/components/Confirmation/styles.ts +13 -6
- package/src/components/Message/MarkdownContent/styles.ts +18 -44
- package/src/components/Message/Message.tsx +53 -33
- package/src/components/Message/MessageWaiting.tsx +68 -0
- package/src/components/Message/constants.ts +4 -0
- package/src/components/Message/styles.ts +25 -2
- package/src/components/Message/types.ts +6 -0
- package/src/components/MessageList/MessageList.tsx +107 -35
- package/src/components/MessageList/MessageListEndButton.tsx +61 -0
- package/src/components/MessageList/MessageListRow.tsx +12 -12
- package/src/components/MessageList/index.ts +1 -0
- package/src/components/MessageList/styles.ts +6 -0
- package/src/components/MessageList/types.ts +52 -2
- package/src/components/MessageList/useMessageListScroll.ts +296 -21
- package/src/components/Process/Process.tsx +38 -5
- package/src/components/Process/ProcessCompactStep.tsx +32 -13
- package/src/components/Process/ProcessTimelineStep.tsx +109 -0
- package/src/components/Process/styles.ts +48 -3
- package/src/components/Process/types.ts +7 -2
- package/src/index.tsx +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","createStyles","colors","shadows","create","root","flex","minHeight","minWidth","list","returnToEnd","position","bottom","alignSelf","width","height","alignItems","justifyContent","returnProgress","absoluteFill","returnButton","borderRadius","backgroundColor","surface","card"],"sourceRoot":"../../../../src","sources":["components/MessageList/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,MAAMC,YAAY,GAAGA,CAACC,MAAmB,EAAEC,OAAqB,KACrEH,UAAU,CAACI,MAAM,CAAC;EAChBC,IAAI,EAAE;IAAEC,IAAI,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC5CC,IAAI,EAAE;IAAEH,IAAI,EAAE;EAAE,CAAC;EACjBI,WAAW,EAAE;IACXC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,QAAQ;IACnBC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDC,cAAc,EAAElB,UAAU,CAACmB,YAAY;EACvCC,YAAY,EAAE;
|
|
1
|
+
{"version":3,"names":["StyleSheet","createStyles","colors","shadows","create","root","flex","minHeight","minWidth","list","returnToEnd","position","bottom","alignSelf","width","height","alignItems","justifyContent","returnProgress","absoluteFill","returnVisual","returnButton","borderRadius","backgroundColor","surface","card"],"sourceRoot":"../../../../src","sources":["components/MessageList/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,MAAMC,YAAY,GAAGA,CAACC,MAAmB,EAAEC,OAAqB,KACrEH,UAAU,CAACI,MAAM,CAAC;EAChBC,IAAI,EAAE;IAAEC,IAAI,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC5CC,IAAI,EAAE;IAAEH,IAAI,EAAE;EAAE,CAAC;EACjBI,WAAW,EAAE;IACXC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,QAAQ;IACnBC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDC,cAAc,EAAElB,UAAU,CAACmB,YAAY;EACvCC,YAAY,EAAE;IACZN,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDI,YAAY,EAAE;IACZR,SAAS,EAAE,QAAQ;IACnBS,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAErB,MAAM,CAACsB,OAAO;IAC/B,GAAGrB,OAAO,CAACsB;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useLayoutEffect, useRef, useState } from 'react';
|
|
4
4
|
import { DEFAULT_END_THRESHOLD } from "./constants.js";
|
|
5
|
+
function layoutValue(value, extent) {
|
|
6
|
+
if (typeof value === 'number' && Number.isFinite(value)) return Math.max(0, value);
|
|
7
|
+
if (typeof value === 'string' && value.endsWith('%')) {
|
|
8
|
+
const percentage = Number.parseFloat(value);
|
|
9
|
+
if (Number.isFinite(percentage)) return Math.max(0, extent * percentage / 100);
|
|
10
|
+
}
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
5
13
|
export function useMessageListScroll({
|
|
6
14
|
listRef,
|
|
7
15
|
keys,
|
|
@@ -9,10 +17,14 @@ export function useMessageListScroll({
|
|
|
9
17
|
followOutput,
|
|
10
18
|
endThreshold = DEFAULT_END_THRESHOLD,
|
|
11
19
|
onAtEndChange,
|
|
20
|
+
contentMinimumHeight,
|
|
21
|
+
contentBottomPadding,
|
|
22
|
+
hasFooter,
|
|
12
23
|
preservingPrependRef,
|
|
13
24
|
cancelPrependPreservation
|
|
14
25
|
}) {
|
|
15
26
|
const measurements = useRef({
|
|
27
|
+
width: 0,
|
|
16
28
|
viewport: 0,
|
|
17
29
|
content: 0,
|
|
18
30
|
offset: 0,
|
|
@@ -21,20 +33,30 @@ export function useMessageListScroll({
|
|
|
21
33
|
const initial = useRef(initialPosition);
|
|
22
34
|
const initialized = useRef(false);
|
|
23
35
|
const previousKeys = useRef([]);
|
|
36
|
+
const currentKeys = useRef(keys);
|
|
37
|
+
currentKeys.current = keys;
|
|
38
|
+
const contentStyle = useRef({
|
|
39
|
+
contentMinimumHeight,
|
|
40
|
+
contentBottomPadding
|
|
41
|
+
});
|
|
42
|
+
contentStyle.current = {
|
|
43
|
+
contentMinimumHeight,
|
|
44
|
+
contentBottomPadding
|
|
45
|
+
};
|
|
24
46
|
const prependPending = useRef(false);
|
|
25
47
|
const pendingScroll = useRef(undefined);
|
|
26
48
|
const userScrolling = useRef(false);
|
|
27
49
|
const atEndRef = useRef(undefined);
|
|
28
50
|
const [atEnd, setAtEnd] = useState(true);
|
|
51
|
+
const anchor = useRef(undefined);
|
|
52
|
+
const layouts = useRef(new Map());
|
|
53
|
+
const layoutRevision = useRef(0);
|
|
54
|
+
const footerHeight = useRef(0);
|
|
55
|
+
if (!hasFooter) footerHeight.current = 0;
|
|
56
|
+
const layoutChanged = useRef(() => {});
|
|
57
|
+
const [anchorMinimumHeight, setAnchorMinimumHeight] = useState();
|
|
58
|
+
const minimumRef = useRef(undefined);
|
|
29
59
|
const threshold = Number.isFinite(endThreshold) ? Math.max(0, endThreshold) : DEFAULT_END_THRESHOLD;
|
|
30
|
-
useLayoutEffect(() => {
|
|
31
|
-
const previous = previousKeys.current;
|
|
32
|
-
const added = keys.length - previous.length;
|
|
33
|
-
const onlyPrepended = previous.length > 0 && added > 0 && previous.every((key, index) => keys[index + added] === key);
|
|
34
|
-
const changed = keys.length !== previous.length || keys.some((key, index) => key !== previous[index]);
|
|
35
|
-
if (changed) prependPending.current = onlyPrepended;
|
|
36
|
-
previousKeys.current = keys;
|
|
37
|
-
}, [keys]);
|
|
38
60
|
const ready = useCallback(() => {
|
|
39
61
|
const current = measurements.current;
|
|
40
62
|
return current.viewport > 0 && current.hasContentSize;
|
|
@@ -53,12 +75,156 @@ export function useMessageListScroll({
|
|
|
53
75
|
onAtEndChange?.(next);
|
|
54
76
|
}
|
|
55
77
|
}, [onAtEndChange, ready, threshold]);
|
|
78
|
+
const cancelAnchor = useCallback(() => {
|
|
79
|
+
anchor.current = undefined;
|
|
80
|
+
minimumRef.current = undefined;
|
|
81
|
+
setAnchorMinimumHeight(undefined);
|
|
82
|
+
}, []);
|
|
83
|
+
const naturalContentHeight = useCallback(() => {
|
|
84
|
+
const last = currentKeys.current.at(-1);
|
|
85
|
+
const cell = last === undefined ? undefined : layouts.current.get(last)?.cell;
|
|
86
|
+
if (!cell) return undefined;
|
|
87
|
+
const {
|
|
88
|
+
width,
|
|
89
|
+
viewport
|
|
90
|
+
} = measurements.current;
|
|
91
|
+
return Math.max(cell.y + cell.height + footerHeight.current + layoutValue(contentStyle.current.contentBottomPadding, width), layoutValue(contentStyle.current.contentMinimumHeight, viewport));
|
|
92
|
+
}, []);
|
|
93
|
+
const applyAnchor = useCallback(() => {
|
|
94
|
+
const request = anchor.current;
|
|
95
|
+
if (!request || !ready()) return;
|
|
96
|
+
const index = currentKeys.current.indexOf(request.key);
|
|
97
|
+
if (index < 0) return;
|
|
98
|
+
request.seen = true;
|
|
99
|
+
const position = layouts.current.get(request.key);
|
|
100
|
+
if (!position?.cell || position.itemY === undefined) {
|
|
101
|
+
// An offscreen row first needs to enter FlatList's render window. This
|
|
102
|
+
// estimate only reveals it; success still requires its actual layouts.
|
|
103
|
+
if (request.locatedAt !== layoutRevision.current) {
|
|
104
|
+
request.locatedAt = layoutRevision.current;
|
|
105
|
+
listRef.current?.scrollToIndex({
|
|
106
|
+
index,
|
|
107
|
+
animated: false,
|
|
108
|
+
viewPosition: 0
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const {
|
|
114
|
+
viewport,
|
|
115
|
+
content
|
|
116
|
+
} = measurements.current;
|
|
117
|
+
const offset = Math.max(0, position.cell.y + position.itemY - request.topOffset);
|
|
118
|
+
const minimum = Math.max(offset + viewport, layoutValue(contentStyle.current.contentMinimumHeight, viewport));
|
|
119
|
+
minimumRef.current = minimum;
|
|
120
|
+
setAnchorMinimumHeight(minimum);
|
|
121
|
+
// Yoga's requested minimum is not yet native scroll space. Wait for the
|
|
122
|
+
// content-size event; otherwise native scrolling can clamp the target.
|
|
123
|
+
if (content + 0.5 < minimum) return;
|
|
124
|
+
if (request.offset === offset && request.viewport === viewport) return;
|
|
125
|
+
request.offset = offset;
|
|
126
|
+
request.viewport = viewport;
|
|
127
|
+
request.settled = false;
|
|
128
|
+
initialized.current = true;
|
|
129
|
+
listRef.current?.scrollToOffset({
|
|
130
|
+
offset,
|
|
131
|
+
animated: request.animated
|
|
132
|
+
});
|
|
133
|
+
measurements.current.offset = offset;
|
|
134
|
+
publishPosition();
|
|
135
|
+
}, [listRef, publishPosition, ready]);
|
|
136
|
+
const onCellLayout = useCallback((key, index, cell) => {
|
|
137
|
+
if (currentKeys.current[index] !== key || !Number.isFinite(cell.y) || !Number.isFinite(cell.height)) return;
|
|
138
|
+
const previous = layouts.current.get(key);
|
|
139
|
+
if (previous?.index !== index || previous.cell?.x !== cell.x || previous.cell.y !== cell.y || previous.cell.width !== cell.width || previous.cell.height !== cell.height) layoutRevision.current++;
|
|
140
|
+
layouts.current.set(key, {
|
|
141
|
+
...previous,
|
|
142
|
+
index,
|
|
143
|
+
cell
|
|
144
|
+
});
|
|
145
|
+
layoutChanged.current();
|
|
146
|
+
}, []);
|
|
147
|
+
const onItemLayout = useCallback((key, index, itemY) => {
|
|
148
|
+
if (currentKeys.current[index] !== key || !Number.isFinite(itemY)) return;
|
|
149
|
+
const previous = layouts.current.get(key);
|
|
150
|
+
if (previous?.index !== index || previous.itemY !== itemY) layoutRevision.current++;
|
|
151
|
+
layouts.current.set(key, {
|
|
152
|
+
...previous,
|
|
153
|
+
index,
|
|
154
|
+
itemY
|
|
155
|
+
});
|
|
156
|
+
layoutChanged.current();
|
|
157
|
+
}, []);
|
|
158
|
+
const onCellUnmount = useCallback((key, index) => {
|
|
159
|
+
if (layouts.current.get(key)?.index === index) {
|
|
160
|
+
layouts.current.delete(key);
|
|
161
|
+
layoutRevision.current++;
|
|
162
|
+
}
|
|
163
|
+
}, []);
|
|
164
|
+
const onFooterLayout = useCallback(event => {
|
|
165
|
+
footerHeight.current = event.nativeEvent.layout.height;
|
|
166
|
+
layoutChanged.current();
|
|
167
|
+
}, []);
|
|
168
|
+
const anchorToItem = useCallback((key, options = {}) => {
|
|
169
|
+
pendingScroll.current = undefined;
|
|
170
|
+
cancelPrependPreservation();
|
|
171
|
+
userScrolling.current = false;
|
|
172
|
+
anchor.current = {
|
|
173
|
+
key,
|
|
174
|
+
topOffset: Number.isFinite(options.topOffset) ? Math.max(0, options.topOffset) : 0,
|
|
175
|
+
animated: options.animated ?? true,
|
|
176
|
+
seen: currentKeys.current.includes(key)
|
|
177
|
+
};
|
|
178
|
+
minimumRef.current = 0;
|
|
179
|
+
setAnchorMinimumHeight(0);
|
|
180
|
+
applyAnchor();
|
|
181
|
+
}, [applyAnchor, cancelPrependPreservation]);
|
|
182
|
+
useLayoutEffect(() => {
|
|
183
|
+
const previous = previousKeys.current;
|
|
184
|
+
const added = keys.length - previous.length;
|
|
185
|
+
const onlyPrepended = previous.length > 0 && added > 0 && previous.every((key, index) => keys[index + added] === key);
|
|
186
|
+
const changed = keys.length !== previous.length || keys.some((key, index) => key !== previous[index]);
|
|
187
|
+
if (changed) {
|
|
188
|
+
layoutRevision.current++;
|
|
189
|
+
prependPending.current = onlyPrepended;
|
|
190
|
+
const indices = new Map(keys.map((key, index) => [key, index]));
|
|
191
|
+
for (const [key, layout] of layouts.current) {
|
|
192
|
+
const index = indices.get(key);
|
|
193
|
+
if (index === undefined) layouts.current.delete(key);else if (index !== layout.index) {
|
|
194
|
+
// A moved cell gets a new natural y; the row's local separator
|
|
195
|
+
// offset remains valid until an actual layout change replaces it.
|
|
196
|
+
layouts.current.set(key, {
|
|
197
|
+
index,
|
|
198
|
+
itemY: layout.itemY
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
previousKeys.current = keys;
|
|
204
|
+
const request = anchor.current;
|
|
205
|
+
if (request) {
|
|
206
|
+
if (keys.includes(request.key)) request.seen = true;else if (request.seen) {
|
|
207
|
+
cancelAnchor();
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
// Explicit positioning and native/Web prepend preservation must never
|
|
211
|
+
// compensate the same layout twice.
|
|
212
|
+
cancelPrependPreservation();
|
|
213
|
+
applyAnchor();
|
|
214
|
+
}
|
|
215
|
+
}, [applyAnchor, cancelAnchor, cancelPrependPreservation, keys]);
|
|
56
216
|
const scrollToEnd = useCallback((options = {}) => {
|
|
57
217
|
cancelPrependPreservation();
|
|
58
218
|
const request = {
|
|
59
219
|
animated: options.animated ?? true
|
|
60
220
|
};
|
|
61
|
-
|
|
221
|
+
const natural = naturalContentHeight();
|
|
222
|
+
const minimum = minimumRef.current;
|
|
223
|
+
if (minimum !== undefined && natural !== undefined && measurements.current.content <= minimum + 0.5 && natural + 0.5 < measurements.current.content) {
|
|
224
|
+
request.contentBeforeRelease = measurements.current.content;
|
|
225
|
+
}
|
|
226
|
+
cancelAnchor();
|
|
227
|
+
if (!ready() || request.contentBeforeRelease !== undefined) {
|
|
62
228
|
pendingScroll.current = request;
|
|
63
229
|
return;
|
|
64
230
|
}
|
|
@@ -68,11 +234,16 @@ export function useMessageListScroll({
|
|
|
68
234
|
animated: request.animated
|
|
69
235
|
});
|
|
70
236
|
if (measurements.current.content <= measurements.current.viewport) publishPosition();
|
|
71
|
-
}, [cancelPrependPreservation, listRef, publishPosition, ready]);
|
|
237
|
+
}, [cancelAnchor, cancelPrependPreservation, listRef, naturalContentHeight, publishPosition, ready]);
|
|
72
238
|
const itemCount = keys.length;
|
|
73
239
|
const reconcileLayout = useCallback(contentChanged => {
|
|
74
240
|
if (!ready()) return;
|
|
241
|
+
if (anchor.current) {
|
|
242
|
+
applyAnchor();
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
75
245
|
const request = pendingScroll.current;
|
|
246
|
+
if (request?.contentBeforeRelease !== undefined && measurements.current.content === request.contentBeforeRelease && (naturalContentHeight() ?? 0) < request.contentBeforeRelease) return;
|
|
76
247
|
if (itemCount > 0 && !initialized.current) {
|
|
77
248
|
initialized.current = true;
|
|
78
249
|
if (request || initial.current === 'end') {
|
|
@@ -94,7 +265,10 @@ export function useMessageListScroll({
|
|
|
94
265
|
if (shouldFollow) scrollToEnd({
|
|
95
266
|
animated: false
|
|
96
267
|
});else publishPosition();
|
|
97
|
-
}, [followOutput, itemCount, preservingPrependRef, publishPosition, ready, scrollToEnd]);
|
|
268
|
+
}, [applyAnchor, followOutput, itemCount, naturalContentHeight, preservingPrependRef, publishPosition, ready, scrollToEnd]);
|
|
269
|
+
layoutChanged.current = () => {
|
|
270
|
+
if (anchor.current) applyAnchor();else if (pendingScroll.current) reconcileLayout(false);
|
|
271
|
+
};
|
|
98
272
|
const onScroll = useCallback(event => {
|
|
99
273
|
const {
|
|
100
274
|
contentOffset,
|
|
@@ -102,21 +276,31 @@ export function useMessageListScroll({
|
|
|
102
276
|
layoutMeasurement
|
|
103
277
|
} = event.nativeEvent;
|
|
104
278
|
const movedUp = contentOffset.y < measurements.current.offset;
|
|
105
|
-
const
|
|
279
|
+
const geometryChanged = measurements.current.content !== contentSize.height || measurements.current.viewport !== layoutMeasurement.height;
|
|
280
|
+
const request = anchor.current;
|
|
281
|
+
if (request?.offset !== undefined) {
|
|
282
|
+
if (Math.abs(contentOffset.y - request.offset) <= 0.5) request.settled = true;
|
|
283
|
+
// RN Web wheel scrolling need not dispatch scrollBeginDrag. Once a
|
|
284
|
+
// requested scroll has settled, a user move at unchanged geometry wins.
|
|
285
|
+
else if (request.settled && !geometryChanged) cancelAnchor();
|
|
286
|
+
}
|
|
287
|
+
const resizingAtEnd = !anchor.current && atEndRef.current && !movedUp && !userScrolling.current && followOutput === 'whenAtEnd' && geometryChanged;
|
|
106
288
|
measurements.current = {
|
|
289
|
+
width: layoutMeasurement.width,
|
|
107
290
|
offset: contentOffset.y,
|
|
108
291
|
content: contentSize.height,
|
|
109
292
|
viewport: layoutMeasurement.height,
|
|
110
293
|
hasContentSize: true
|
|
111
294
|
};
|
|
112
295
|
if (!resizingAtEnd) publishPosition();
|
|
113
|
-
}, [followOutput, publishPosition]);
|
|
296
|
+
}, [cancelAnchor, followOutput, publishPosition]);
|
|
114
297
|
const onLayout = useCallback(({
|
|
115
298
|
nativeEvent: {
|
|
116
299
|
layout
|
|
117
300
|
}
|
|
118
301
|
}) => {
|
|
119
302
|
measurements.current.viewport = layout.height;
|
|
303
|
+
measurements.current.width = layout.width;
|
|
120
304
|
reconcileLayout(false);
|
|
121
305
|
}, [reconcileLayout]);
|
|
122
306
|
const onContentSizeChange = useCallback((_width, height) => {
|
|
@@ -126,6 +310,11 @@ export function useMessageListScroll({
|
|
|
126
310
|
}, [reconcileLayout]);
|
|
127
311
|
const onUserScrollBegin = useCallback(() => {
|
|
128
312
|
userScrolling.current = true;
|
|
313
|
+
pendingScroll.current = undefined;
|
|
314
|
+
cancelAnchor();
|
|
315
|
+
}, [cancelAnchor]);
|
|
316
|
+
const onMomentumScrollBegin = useCallback(() => {
|
|
317
|
+
userScrolling.current = true;
|
|
129
318
|
}, []);
|
|
130
319
|
const onScrollEndDrag = useCallback(event => {
|
|
131
320
|
onScroll(event);
|
|
@@ -139,13 +328,29 @@ export function useMessageListScroll({
|
|
|
139
328
|
userScrolling.current = false;
|
|
140
329
|
publishPosition();
|
|
141
330
|
}, [onScroll, publishPosition]);
|
|
331
|
+
const onScrollToIndexFailed = useCallback(failure => {
|
|
332
|
+
const request = anchor.current;
|
|
333
|
+
if (!request || currentKeys.current.indexOf(request.key) !== failure.index || !Number.isFinite(failure.averageItemLength) || failure.averageItemLength <= 0) return;
|
|
334
|
+
listRef.current?.scrollToOffset({
|
|
335
|
+
offset: failure.index * failure.averageItemLength,
|
|
336
|
+
animated: false
|
|
337
|
+
});
|
|
338
|
+
}, [listRef]);
|
|
142
339
|
return {
|
|
143
340
|
atEnd,
|
|
341
|
+
anchorMinimumHeight,
|
|
342
|
+
anchorToItem,
|
|
343
|
+
onCellLayout,
|
|
344
|
+
onItemLayout,
|
|
345
|
+
onCellUnmount,
|
|
346
|
+
onFooterLayout,
|
|
347
|
+
onScrollToIndexFailed,
|
|
144
348
|
scrollToEnd,
|
|
145
349
|
onLayout,
|
|
146
350
|
onContentSizeChange,
|
|
147
351
|
onScroll,
|
|
148
352
|
onUserScrollBegin,
|
|
353
|
+
onMomentumScrollBegin,
|
|
149
354
|
onScrollEndDrag,
|
|
150
355
|
onMomentumScrollEnd
|
|
151
356
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useLayoutEffect","useRef","useState","DEFAULT_END_THRESHOLD","useMessageListScroll","listRef","keys","initialPosition","followOutput","endThreshold","onAtEndChange","preservingPrependRef","cancelPrependPreservation","measurements","viewport","content","offset","hasContentSize","initial","initialized","previousKeys","prependPending","pendingScroll","undefined","userScrolling","atEndRef","atEnd","setAtEnd","threshold","Number","isFinite","Math","max","previous","current","added","length","onlyPrepended","every","key","index","changed","some","ready","publishPosition","next","scrollToEnd","options","request","animated","scrollToOffset","itemCount","reconcileLayout","contentChanged","prepended","shouldFollow","onScroll","event","contentOffset","contentSize","layoutMeasurement","nativeEvent","movedUp","y","resizingAtEnd","height","onLayout","layout","onContentSizeChange","_width","onUserScrollBegin","onScrollEndDrag","velocity","onMomentumScrollEnd"],"sourceRoot":"../../../../src","sources":["components/MessageList/useMessageListScroll.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useLayoutEffect","useRef","useState","DEFAULT_END_THRESHOLD","layoutValue","value","extent","Number","isFinite","Math","max","endsWith","percentage","parseFloat","useMessageListScroll","listRef","keys","initialPosition","followOutput","endThreshold","onAtEndChange","contentMinimumHeight","contentBottomPadding","hasFooter","preservingPrependRef","cancelPrependPreservation","measurements","width","viewport","content","offset","hasContentSize","initial","initialized","previousKeys","currentKeys","current","contentStyle","prependPending","pendingScroll","undefined","userScrolling","atEndRef","atEnd","setAtEnd","anchor","layouts","Map","layoutRevision","footerHeight","layoutChanged","anchorMinimumHeight","setAnchorMinimumHeight","minimumRef","threshold","ready","publishPosition","next","cancelAnchor","naturalContentHeight","last","at","cell","get","y","height","applyAnchor","request","index","indexOf","key","seen","position","itemY","locatedAt","scrollToIndex","animated","viewPosition","topOffset","minimum","settled","scrollToOffset","onCellLayout","previous","x","set","onItemLayout","onCellUnmount","delete","onFooterLayout","event","nativeEvent","layout","anchorToItem","options","includes","added","length","onlyPrepended","every","changed","some","indices","map","scrollToEnd","natural","contentBeforeRelease","itemCount","reconcileLayout","contentChanged","prepended","shouldFollow","onScroll","contentOffset","contentSize","layoutMeasurement","movedUp","geometryChanged","abs","resizingAtEnd","onLayout","onContentSizeChange","_width","onUserScrollBegin","onMomentumScrollBegin","onScrollEndDrag","velocity","onMomentumScrollEnd","onScrollToIndexFailed","failure","averageItemLength"],"sourceRoot":"../../../../src","sources":["components/MessageList/useMessageListScroll.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ import { Button, Icon, useColors, useThemedStyles } from '@unif/react-native-des
|
|
|
6
6
|
import { PROCESS_STATUS_ICONS, PROCESS_STATUS_LABELS } from "./constants.js";
|
|
7
7
|
import { createStyles } from "./styles.js";
|
|
8
8
|
import { ProcessCompactStep } from "./ProcessCompactStep.js";
|
|
9
|
+
import { ProcessTimelineStep } from "./ProcessTimelineStep.js";
|
|
9
10
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
11
|
function idsWithDetails(ids, steps) {
|
|
11
12
|
const availableIds = new Set(steps.filter(step => step.details != null).map(step => step.id));
|
|
@@ -35,6 +36,7 @@ export function Process(props) {
|
|
|
35
36
|
testID,
|
|
36
37
|
variant = 'card'
|
|
37
38
|
} = props;
|
|
39
|
+
const inlineIdentity = variant === 'compact' && steps.length === 1 && props.identityPlacement === 'inline';
|
|
38
40
|
const styles = useThemedStyles(createStyles);
|
|
39
41
|
const colors = useColors();
|
|
40
42
|
const isControlled = props.expandedIds !== undefined;
|
|
@@ -51,22 +53,30 @@ export function Process(props) {
|
|
|
51
53
|
props.onExpandedChange?.(nextIds);
|
|
52
54
|
};
|
|
53
55
|
return /*#__PURE__*/_jsxs(View, {
|
|
54
|
-
style: [variant === 'compact' ? styles.compactRoot : styles.root, style],
|
|
56
|
+
style: [variant === 'compact' ? styles.compactRoot : variant === 'timeline' ? styles.timelineRoot : styles.root, style],
|
|
55
57
|
testID: testID,
|
|
56
|
-
children: [title || identity ? /*#__PURE__*/_jsxs(View, {
|
|
58
|
+
children: [title || identity && !inlineIdentity ? /*#__PURE__*/_jsxs(View, {
|
|
57
59
|
style: styles.heading,
|
|
58
|
-
children: [identity, title ? /*#__PURE__*/_jsx(Text, {
|
|
60
|
+
children: [!inlineIdentity ? identity : null, title ? /*#__PURE__*/_jsx(Text, {
|
|
59
61
|
style: styles.headingTitle,
|
|
60
62
|
children: title
|
|
61
63
|
}) : null]
|
|
62
64
|
}) : null, /*#__PURE__*/_jsx(View, {
|
|
63
|
-
style: variant === 'compact' ? styles.compactSteps : styles.steps,
|
|
65
|
+
style: variant === 'compact' ? styles.compactSteps : variant === 'timeline' ? undefined : styles.steps,
|
|
64
66
|
children: steps.map((step, index) => {
|
|
65
|
-
const statusLabel = PROCESS_STATUS_LABELS[step.status];
|
|
67
|
+
const statusLabel = step.statusText ?? PROCESS_STATUS_LABELS[step.status];
|
|
66
68
|
const elapsed = formatElapsedMs(step.elapsedMs);
|
|
67
69
|
const isExpanded = expandedIds.includes(step.id);
|
|
70
|
+
if (variant === 'timeline') return /*#__PURE__*/_jsx(ProcessTimelineStep, {
|
|
71
|
+
step: step,
|
|
72
|
+
last: index === steps.length - 1,
|
|
73
|
+
expanded: isExpanded,
|
|
74
|
+
elapsed: elapsed,
|
|
75
|
+
onToggle: () => toggleDetails(step.id)
|
|
76
|
+
}, step.id);
|
|
68
77
|
if (variant === 'compact') return /*#__PURE__*/_jsx(ProcessCompactStep, {
|
|
69
78
|
step: step,
|
|
79
|
+
identity: inlineIdentity ? identity : undefined,
|
|
70
80
|
expanded: isExpanded,
|
|
71
81
|
elapsed: elapsed,
|
|
72
82
|
onToggle: () => toggleDetails(step.id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","Text","View","Button","Icon","useColors","useThemedStyles","PROCESS_STATUS_ICONS","PROCESS_STATUS_LABELS","createStyles","ProcessCompactStep","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","idsWithDetails","ids","steps","availableIds","Set","filter","step","details","map","id","has","formatElapsedMs","elapsedMs","undefined","Number","isFinite","Math","round","roundedSeconds","formatted","isInteger","String","toFixed","totalSeconds","minutes","floor","remainingSeconds","Process","props","title","identity","style","testID","variant","styles","colors","isControlled","expandedIds","localExpandedIds","setLocalExpandedIds","defaultExpandedIds","current","toggleDetails","stepId","nextIds","includes","onExpandedChange","compactRoot","root","children","heading","headingTitle","compactSteps","index","statusLabel","status","elapsed","isExpanded","
|
|
1
|
+
{"version":3,"names":["useEffect","useState","Text","View","Button","Icon","useColors","useThemedStyles","PROCESS_STATUS_ICONS","PROCESS_STATUS_LABELS","createStyles","ProcessCompactStep","ProcessTimelineStep","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","idsWithDetails","ids","steps","availableIds","Set","filter","step","details","map","id","has","formatElapsedMs","elapsedMs","undefined","Number","isFinite","Math","round","roundedSeconds","formatted","isInteger","String","toFixed","totalSeconds","minutes","floor","remainingSeconds","Process","props","title","identity","style","testID","variant","inlineIdentity","length","identityPlacement","styles","colors","isControlled","expandedIds","localExpandedIds","setLocalExpandedIds","defaultExpandedIds","current","toggleDetails","stepId","nextIds","includes","onExpandedChange","compactRoot","timelineRoot","root","children","heading","headingTitle","compactSteps","index","statusLabel","statusText","status","elapsed","isExpanded","last","expanded","onToggle","stepLast","stepHeader","stepTitle","accessible","accessibilityLabel","name","color","error","success","foregroundMuted","description","label","onPress","size","actions","action","leftIcon","icon","disabled","loading","accessibilityHint"],"sourceRoot":"../../../../src","sources":["components/Process/Process.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Pressable, ScrollView, Text, View } from 'react-native';
|
|
4
|
-
import { Button, Icon, Pulse, Reveal,
|
|
4
|
+
import { Button, Icon, Pulse, Reveal, motion, pressedOpacity, useColors, useThemedStyles } from '@unif/react-native-design';
|
|
5
5
|
import { PROCESS_STATUS_ICONS, PROCESS_STATUS_LABELS } from "./constants.js";
|
|
6
6
|
import { createStyles } from "./styles.js";
|
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
export function ProcessCompactStep({
|
|
9
9
|
step,
|
|
10
|
+
identity,
|
|
10
11
|
expanded,
|
|
11
12
|
elapsed,
|
|
12
13
|
onToggle
|
|
@@ -15,10 +16,11 @@ export function ProcessCompactStep({
|
|
|
15
16
|
const colors = useColors();
|
|
16
17
|
const hasDetails = step.details != null;
|
|
17
18
|
const running = step.status === 'running';
|
|
19
|
+
const statusText = step.statusText ?? PROCESS_STATUS_LABELS[step.status];
|
|
18
20
|
const color = running ? colors.primary : step.status === 'completed' ? colors.success : step.status === 'failed' ? colors.error : colors.foregroundMuted;
|
|
19
21
|
const icon = /*#__PURE__*/_jsx(Icon, {
|
|
20
22
|
name: running || step.status === 'completed' ? 'spark' : PROCESS_STATUS_ICONS[step.status],
|
|
21
|
-
size:
|
|
23
|
+
size: 14,
|
|
22
24
|
color: color
|
|
23
25
|
});
|
|
24
26
|
return /*#__PURE__*/_jsxs(View, {
|
|
@@ -26,40 +28,52 @@ export function ProcessCompactStep({
|
|
|
26
28
|
testID: `process-step-${step.id}-toggle`,
|
|
27
29
|
accessible: true,
|
|
28
30
|
accessibilityRole: hasDetails ? 'button' : undefined,
|
|
29
|
-
accessibilityLabel: `${step.title},${
|
|
31
|
+
accessibilityLabel: `${step.title},${statusText}${elapsed ? `,${elapsed}` : ''}`,
|
|
30
32
|
accessibilityState: hasDetails ? {
|
|
31
33
|
expanded
|
|
32
34
|
} : undefined,
|
|
33
35
|
disabled: !hasDetails,
|
|
36
|
+
hitSlop: 10,
|
|
34
37
|
onPress: onToggle,
|
|
35
38
|
style: ({
|
|
36
39
|
pressed
|
|
37
40
|
}) => [styles.compactHeader, pressed && {
|
|
38
41
|
opacity: pressedOpacity
|
|
39
42
|
}],
|
|
40
|
-
children: [
|
|
43
|
+
children: [identity ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
44
|
+
children: [identity, /*#__PURE__*/_jsx(View, {
|
|
45
|
+
style: styles.spacer
|
|
46
|
+
})]
|
|
47
|
+
}) : null, running ? /*#__PURE__*/_jsx(Pulse, {
|
|
48
|
+
from: 0.4,
|
|
49
|
+
duration: motion.pulse / 2,
|
|
41
50
|
children: icon
|
|
42
|
-
}) : icon, /*#__PURE__*/_jsx(Text, {
|
|
51
|
+
}) : icon, !identity ? /*#__PURE__*/_jsx(Text, {
|
|
43
52
|
style: styles.compactTitle,
|
|
44
53
|
testID: `process-step-title-${step.id}`,
|
|
45
54
|
numberOfLines: 1,
|
|
46
55
|
children: step.title
|
|
56
|
+
}) : null, /*#__PURE__*/_jsx(Text, {
|
|
57
|
+
style: styles.compactStatus,
|
|
58
|
+
children: statusText
|
|
47
59
|
}), elapsed ? /*#__PURE__*/_jsx(Text, {
|
|
48
60
|
style: styles.elapsed,
|
|
49
61
|
children: elapsed
|
|
50
62
|
}) : null, hasDetails ? /*#__PURE__*/_jsx(Icon, {
|
|
51
63
|
name: expanded ? 'chevron-up' : 'chevron-down',
|
|
52
|
-
size:
|
|
64
|
+
size: 14,
|
|
53
65
|
color: colors.foregroundSubtle
|
|
54
66
|
}) : null]
|
|
55
67
|
}), step.description ? /*#__PURE__*/_jsx(Text, {
|
|
56
68
|
style: styles.compactDescription,
|
|
57
69
|
children: step.description
|
|
58
70
|
}) : null, hasDetails && expanded ? /*#__PURE__*/_jsx(Reveal, {
|
|
71
|
+
style: styles.compactDetailsContainer,
|
|
59
72
|
children: /*#__PURE__*/_jsx(ScrollView, {
|
|
60
73
|
testID: `process-step-${step.id}-details`,
|
|
61
74
|
style: styles.compactDetails,
|
|
62
75
|
nestedScrollEnabled: true,
|
|
76
|
+
showsVerticalScrollIndicator: false,
|
|
63
77
|
keyboardShouldPersistTaps: "handled",
|
|
64
78
|
children: step.details
|
|
65
79
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Pressable","ScrollView","Text","View","Button","Icon","Pulse","Reveal","
|
|
1
|
+
{"version":3,"names":["Pressable","ScrollView","Text","View","Button","Icon","Pulse","Reveal","motion","pressedOpacity","useColors","useThemedStyles","PROCESS_STATUS_ICONS","PROCESS_STATUS_LABELS","createStyles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ProcessCompactStep","step","identity","expanded","elapsed","onToggle","styles","colors","hasDetails","details","running","status","statusText","color","primary","success","error","foregroundMuted","icon","name","size","children","testID","id","accessible","accessibilityRole","undefined","accessibilityLabel","title","accessibilityState","disabled","hitSlop","onPress","style","pressed","compactHeader","opacity","spacer","from","duration","pulse","compactTitle","numberOfLines","compactStatus","foregroundSubtle","description","compactDescription","compactDetailsContainer","compactDetails","nestedScrollEnabled","showsVerticalScrollIndicator","keyboardShouldPersistTaps","actions","length","map","action","compactAction","label","leftIcon","loading","accessibilityHint","variant"],"sourceRoot":"../../../../src","sources":["components/Process/ProcessCompactStep.tsx"],"mappings":"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","ignoreList":[]}
|