@unif/react-native-chat 3.2.4 → 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 -12
- 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 -16
- 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,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAe,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AACxE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AACD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AACD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AACD,MAAM,MAAM,YAAY,GAAG,gBAAgB,GACzC,CAAC,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAe,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AACxE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,qCAAqC;IACrC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AACD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AACD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AACD,MAAM,MAAM,YAAY,GAAG,gBAAgB,GACzC,CAAC,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC7B,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,eAAuB,EACvB,YAA0B,EAC1B,YAAoC,EACpC,eAAsB,EACtB,eAAuB,EACvB,aAAa,EACb,UAAkB,EAClB,cAAsB,EACtB,gBAAgB,EAChB,mBAA+B,EAC/B,qBAAqB,EACrB,4BAAoC,EACpC,KAAK,EACL,MAAM,EACN,GAAG,GACJ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,iBAAiB,CAAC,+BAwLxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageListEndButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/MessageListEndButton.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAS,CAAC;AAEzD,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAAO,GACR,EAAE,yBAAyB,+BA6C3B"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
item: T;
|
|
4
|
-
previous: T | undefined;
|
|
5
|
-
index: number;
|
|
6
|
-
nativeID: string;
|
|
7
|
-
}
|
|
8
|
-
declare function MessageListRowContent<T>({ item, previous, index, nativeID, renderItem, renderSeparator, }: MessageListRowProps<T>): import("react").JSX.Element;
|
|
1
|
+
import type { MessageListRowProps } from './types.js';
|
|
2
|
+
declare function MessageListRowContent<T>({ item, previous, index, nativeID, itemKey, testID, onItemLayout, renderItem, renderSeparator, }: MessageListRowProps<T>): import("react").JSX.Element;
|
|
9
3
|
export declare const MessageListRow: typeof MessageListRowContent;
|
|
10
4
|
export {};
|
|
11
5
|
//# sourceMappingURL=MessageListRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageListRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/MessageListRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"MessageListRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/MessageListRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAS,CAAC;AAEnD,iBAAS,qBAAqB,CAAC,CAAC,EAAE,EAChC,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,eAAe,GAChB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+BAcxB;AAID,eAAO,MAAM,cAAc,EAEtB,OAAO,qBAAqB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { MessageList } from './MessageList.js';
|
|
2
|
-
export type { MessageListHandle, MessageListProps, MessageListScrollOptions, } from './types.js';
|
|
2
|
+
export type { MessageListAnchorOptions, MessageListHandle, MessageListProps, MessageListScrollOptions, } from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,YAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,YAAS,CAAC"}
|
|
@@ -24,6 +24,12 @@ export declare const createStyles: (colors: ColorTokens, shadows: ShadowTokens)
|
|
|
24
24
|
top: 0;
|
|
25
25
|
bottom: 0;
|
|
26
26
|
}>;
|
|
27
|
+
returnVisual: {
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
alignItems: "center";
|
|
31
|
+
justifyContent: "center";
|
|
32
|
+
};
|
|
27
33
|
returnButton: {
|
|
28
34
|
shadowColor: string;
|
|
29
35
|
shadowOffset: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3E,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW,EAAE,SAAS,YAAY
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3E,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW,EAAE,SAAS,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnE,CAAC"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
import type { ScrollViewProps, StyleProp, ViewStyle } from 'react-native';
|
|
1
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
import type { FlatListProps, LayoutRectangle, ScrollViewProps, StyleProp, ViewStyle } from 'react-native';
|
|
3
3
|
export interface MessageListScrollOptions {
|
|
4
4
|
animated?: boolean;
|
|
5
5
|
}
|
|
6
|
+
export interface MessageListAnchorOptions extends MessageListScrollOptions {
|
|
7
|
+
/** 正文顶端距列表视口顶部的留白,默认 0。 */
|
|
8
|
+
topOffset?: number;
|
|
9
|
+
}
|
|
6
10
|
export interface MessageListHandle {
|
|
7
11
|
scrollToEnd(options?: MessageListScrollOptions): void;
|
|
12
|
+
/** 按稳定 key 等待真实布局并顶锚;用户拖动、回到末尾或目标删除时结束。 */
|
|
13
|
+
anchorToItem(key: string, options?: MessageListAnchorOptions): void;
|
|
8
14
|
}
|
|
9
15
|
export interface MessageListProps<T> {
|
|
10
16
|
items: readonly T[];
|
|
@@ -32,9 +38,42 @@ export interface MessageListProps<T> {
|
|
|
32
38
|
testID?: string;
|
|
33
39
|
}
|
|
34
40
|
export interface ListMeasurements {
|
|
41
|
+
width: number;
|
|
35
42
|
viewport: number;
|
|
36
43
|
content: number;
|
|
37
44
|
offset: number;
|
|
38
45
|
hasContentSize: boolean;
|
|
39
46
|
}
|
|
47
|
+
export type MessageListCellProps<T> = ComponentProps<NonNullable<FlatListProps<T>['CellRendererComponent']>>;
|
|
48
|
+
export interface MessageListRowProps<T> extends Pick<MessageListProps<T>, 'renderItem' | 'renderSeparator' | 'extraData'> {
|
|
49
|
+
item: T;
|
|
50
|
+
previous: T | undefined;
|
|
51
|
+
index: number;
|
|
52
|
+
itemKey: string;
|
|
53
|
+
nativeID: string;
|
|
54
|
+
testID?: string;
|
|
55
|
+
onItemLayout(key: string, index: number, y: number): void;
|
|
56
|
+
}
|
|
57
|
+
export interface MessageListItemLayout {
|
|
58
|
+
index: number;
|
|
59
|
+
cell?: LayoutRectangle;
|
|
60
|
+
itemY?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface MessageListAnchorRequest {
|
|
63
|
+
key: string;
|
|
64
|
+
topOffset: number;
|
|
65
|
+
animated: boolean;
|
|
66
|
+
seen: boolean;
|
|
67
|
+
locatedAt?: number;
|
|
68
|
+
offset?: number;
|
|
69
|
+
viewport?: number;
|
|
70
|
+
settled?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface MessageListPendingScroll extends MessageListScrollOptions {
|
|
73
|
+
contentBeforeRelease?: number;
|
|
74
|
+
}
|
|
75
|
+
export interface MessageListEndButtonProps {
|
|
76
|
+
busy: boolean;
|
|
77
|
+
onPress(): void;
|
|
78
|
+
}
|
|
40
79
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import type { RefObject } from 'react';
|
|
2
|
-
import type { FlatList, LayoutChangeEvent, NativeScrollEvent, NativeSyntheticEvent } from 'react-native';
|
|
3
|
-
import type { MessageListProps, MessageListScrollOptions } from './types.js';
|
|
2
|
+
import type { DimensionValue, FlatList, FlatListProps, LayoutChangeEvent, LayoutRectangle, NativeScrollEvent, NativeSyntheticEvent } from 'react-native';
|
|
3
|
+
import type { MessageListAnchorOptions, MessageListProps, MessageListScrollOptions } from './types.js';
|
|
4
4
|
interface MessageListScrollInput<T> extends Pick<MessageListProps<T>, 'initialPosition' | 'followOutput' | 'endThreshold' | 'onAtEndChange'> {
|
|
5
5
|
listRef: RefObject<FlatList<T> | null>;
|
|
6
6
|
keys: readonly string[];
|
|
7
|
+
contentMinimumHeight?: DimensionValue;
|
|
8
|
+
contentBottomPadding?: DimensionValue;
|
|
9
|
+
hasFooter?: boolean;
|
|
7
10
|
preservingPrependRef: RefObject<boolean>;
|
|
8
11
|
cancelPrependPreservation(): void;
|
|
9
12
|
}
|
|
10
|
-
export declare function useMessageListScroll<T>({ listRef, keys, initialPosition, followOutput, endThreshold, onAtEndChange, preservingPrependRef, cancelPrependPreservation, }: MessageListScrollInput<T>): {
|
|
13
|
+
export declare function useMessageListScroll<T>({ listRef, keys, initialPosition, followOutput, endThreshold, onAtEndChange, contentMinimumHeight, contentBottomPadding, hasFooter, preservingPrependRef, cancelPrependPreservation, }: MessageListScrollInput<T>): {
|
|
11
14
|
atEnd: boolean;
|
|
15
|
+
anchorMinimumHeight: number | undefined;
|
|
16
|
+
anchorToItem: (key: string, options?: MessageListAnchorOptions) => void;
|
|
17
|
+
onCellLayout: (key: string, index: number, cell: LayoutRectangle) => void;
|
|
18
|
+
onItemLayout: (key: string, index: number, itemY: number) => void;
|
|
19
|
+
onCellUnmount: (key: string, index: number) => void;
|
|
20
|
+
onFooterLayout: (event: LayoutChangeEvent) => void;
|
|
21
|
+
onScrollToIndexFailed: (failure: Parameters<NonNullable<FlatListProps<T>["onScrollToIndexFailed"]>>[0]) => void;
|
|
12
22
|
scrollToEnd: (options?: MessageListScrollOptions) => void;
|
|
13
23
|
onLayout: ({ nativeEvent: { layout } }: LayoutChangeEvent) => void;
|
|
14
24
|
onContentSizeChange: (_width: number, height: number) => void;
|
|
15
25
|
onScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
|
|
16
26
|
onUserScrollBegin: () => void;
|
|
27
|
+
onMomentumScrollBegin: () => void;
|
|
17
28
|
onScrollEndDrag: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
|
|
18
29
|
onMomentumScrollEnd: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
|
|
19
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessageListScroll.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/useMessageListScroll.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAEV,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,YAAS,CAAC;AAEjB,UAAU,sBAAsB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAC9C,gBAAgB,CAAC,CAAC,CAAC,EACnB,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CACtE;IACC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,yBAAyB,IAAI,IAAI,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"useMessageListScroll.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/useMessageListScroll.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAEV,wBAAwB,EAIxB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,YAAS,CAAC;AAEjB,UAAU,sBAAsB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAC9C,gBAAgB,CAAC,CAAC,CAAC,EACnB,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CACtE;IACC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,yBAAyB,IAAI,IAAI,CAAC;CACnC;AAaD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EACtC,OAAO,EACP,IAAI,EACJ,eAAe,EACf,YAAY,EACZ,YAAoC,EACpC,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,yBAAyB,GAC1B,EAAE,sBAAsB,CAAC,CAAC,CAAC;;;wBA8JlB,MAAM,YAAW,wBAAwB;wBA5CzC,MAAM,SAAS,MAAM,QAAQ,eAAe;wBAsB5C,MAAM,SAAS,MAAM,SAAS,MAAM;yBAUJ,MAAM,SAAS,MAAM;4BAMlB,iBAAiB;qCAkP/C,UAAU,CACjB,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CACvD,CAAC,CAAC,CAAC;4BAnLI,wBAAwB;4CAsIJ,iBAAiB;kCAQtC,MAAM,UAAU,MAAM;sBA3CvB,oBAAoB,CAAC,iBAAiB,CAAC;;;6BA2DvC,oBAAoB,CAAC,iBAAiB,CAAC;iCAUvC,oBAAoB,CAAC,iBAAiB,CAAC;EA+ClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Process.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/Process.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Process.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/Process.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,YAAS,CAAC;AAkCzD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgK9D"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ProcessCompactStepProps } from './types.js';
|
|
2
|
-
export declare function ProcessCompactStep({ step, expanded, elapsed, onToggle, }: ProcessCompactStepProps): import("react").JSX.Element;
|
|
2
|
+
export declare function ProcessCompactStep({ step, identity, expanded, elapsed, onToggle, }: ProcessCompactStepProps): import("react").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=ProcessCompactStep.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessCompactStep.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/ProcessCompactStep.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAS,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,+
|
|
1
|
+
{"version":3,"file":"ProcessCompactStep.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/ProcessCompactStep.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAS,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,+BA4GzB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ProcessCompactStepProps } from './types.js';
|
|
2
|
+
export declare function ProcessTimelineStep({ step, last, expanded, elapsed, onToggle, }: ProcessCompactStepProps & {
|
|
3
|
+
last: boolean;
|
|
4
|
+
}): import("react").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=ProcessTimelineStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessTimelineStep.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/ProcessTimelineStep.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAS,CAAC;AAEvD,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,+BAyF7C"}
|
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
import type { ColorTokens } from '@unif/react-native-design';
|
|
2
2
|
export declare const createStyles: (colors: ColorTokens) => Readonly<{
|
|
3
|
+
timelineRoot: {
|
|
4
|
+
backgroundColor: string;
|
|
5
|
+
borderRadius: number;
|
|
6
|
+
padding: number;
|
|
7
|
+
};
|
|
8
|
+
timelineStep: {
|
|
9
|
+
flexDirection: "row";
|
|
10
|
+
alignItems: "flex-start";
|
|
11
|
+
gap: number;
|
|
12
|
+
};
|
|
13
|
+
timelineGutter: {
|
|
14
|
+
alignItems: "center";
|
|
15
|
+
width: number;
|
|
16
|
+
alignSelf: "stretch";
|
|
17
|
+
};
|
|
18
|
+
timelineLine: {
|
|
19
|
+
width: number;
|
|
20
|
+
flex: number;
|
|
21
|
+
backgroundColor: string;
|
|
22
|
+
marginTop: number;
|
|
23
|
+
minHeight: number;
|
|
24
|
+
};
|
|
25
|
+
timelineBody: {
|
|
26
|
+
flex: number;
|
|
27
|
+
};
|
|
28
|
+
timelineBodyNotLast: {
|
|
29
|
+
paddingBottom: number;
|
|
30
|
+
};
|
|
31
|
+
timelineTitle: {
|
|
32
|
+
flex: number;
|
|
33
|
+
fontSize: number;
|
|
34
|
+
fontWeight: "500";
|
|
35
|
+
color: string;
|
|
36
|
+
lineHeight: number;
|
|
37
|
+
};
|
|
38
|
+
timelineActive: {
|
|
39
|
+
color: string;
|
|
40
|
+
};
|
|
41
|
+
timelinePending: {
|
|
42
|
+
color: string;
|
|
43
|
+
fontWeight: "400";
|
|
44
|
+
};
|
|
45
|
+
timelineDescription: {
|
|
46
|
+
flexShrink: number;
|
|
47
|
+
fontSize: number;
|
|
48
|
+
color: string;
|
|
49
|
+
};
|
|
50
|
+
timelineError: {
|
|
51
|
+
color: string;
|
|
52
|
+
};
|
|
3
53
|
compactRoot: {
|
|
4
54
|
gap: number;
|
|
5
55
|
};
|
|
@@ -24,16 +74,26 @@ export declare const createStyles: (colors: ColorTokens) => Readonly<{
|
|
|
24
74
|
fontSize: number;
|
|
25
75
|
fontWeight: "500";
|
|
26
76
|
};
|
|
77
|
+
spacer: {
|
|
78
|
+
flex: number;
|
|
79
|
+
};
|
|
80
|
+
compactStatus: {
|
|
81
|
+
fontSize: number;
|
|
82
|
+
fontWeight: "500";
|
|
83
|
+
color: string;
|
|
84
|
+
};
|
|
27
85
|
compactDescription: {
|
|
28
86
|
color: string;
|
|
29
87
|
fontSize: number;
|
|
30
88
|
lineHeight: number;
|
|
31
89
|
};
|
|
32
|
-
|
|
33
|
-
maxHeight: number;
|
|
90
|
+
compactDetailsContainer: {
|
|
34
91
|
paddingTop: number;
|
|
35
92
|
paddingBottom: number;
|
|
36
93
|
};
|
|
94
|
+
compactDetails: {
|
|
95
|
+
maxHeight: number;
|
|
96
|
+
};
|
|
37
97
|
root: {
|
|
38
98
|
gap: number;
|
|
39
99
|
padding: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgJ5C,CAAC"}
|
|
@@ -6,21 +6,26 @@ export interface ProcessStep {
|
|
|
6
6
|
id: string;
|
|
7
7
|
title: string;
|
|
8
8
|
status: ProcessStepStatus;
|
|
9
|
+
/** 调用者提供的状态显示文案;不改变 status 的语义。 */
|
|
10
|
+
statusText?: string;
|
|
9
11
|
description?: string;
|
|
10
12
|
elapsedMs?: number;
|
|
11
13
|
details?: ReactNode;
|
|
12
14
|
actions?: readonly ChatAction[];
|
|
13
15
|
}
|
|
14
16
|
export interface ProcessBaseProps {
|
|
15
|
-
/** card
|
|
16
|
-
variant?: 'card' | 'compact';
|
|
17
|
+
/** card 为状态面板;compact 为单行过程;timeline 为带状态节点的连续步骤。 */
|
|
18
|
+
variant?: 'card' | 'compact' | 'timeline';
|
|
17
19
|
steps: readonly ProcessStep[];
|
|
18
20
|
title?: string;
|
|
19
21
|
identity?: ReactNode;
|
|
22
|
+
/** inline 仅用于 compact 单项,让身份与状态处于同一行。 */
|
|
23
|
+
identityPlacement?: 'heading' | 'inline';
|
|
20
24
|
style?: StyleProp<ViewStyle>;
|
|
21
25
|
testID?: string;
|
|
22
26
|
}
|
|
23
27
|
export interface ProcessCompactStepProps {
|
|
28
|
+
identity?: ReactNode;
|
|
24
29
|
step: ProcessStep;
|
|
25
30
|
expanded: boolean;
|
|
26
31
|
elapsed?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAe,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GAC3B,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Process/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAe,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GAC3B,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1C,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,gBAAgB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,KAAK,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,gBAAgB,CAAC,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,YAAY,GAAG,gBAAgB,GACzC,CAAC,0BAA0B,GAAG,qBAAqB,CAAC,CAAC"}
|
|
@@ -6,7 +6,7 @@ export type { AttachmentsProps, ChatAttachmentItem, ChatAttachmentStatus, } from
|
|
|
6
6
|
export { Message } from './components/Message/index.js';
|
|
7
7
|
export type { MessageBaseProps, MessageCustomContent, MessageMarkdownContent, MessagePlainContent, MessagePlacement, MessageProps, MessageStatus, } from './components/Message/index.js';
|
|
8
8
|
export { MessageList } from './components/MessageList/index.js';
|
|
9
|
-
export type { MessageListHandle, MessageListProps, MessageListScrollOptions, } from './components/MessageList/index.js';
|
|
9
|
+
export type { MessageListAnchorOptions, MessageListHandle, MessageListProps, MessageListScrollOptions, } from './components/MessageList/index.js';
|
|
10
10
|
export { Chat } from './components/Chat/index.js';
|
|
11
11
|
export type { ChatProps } from './components/Chat/index.js';
|
|
12
12
|
export { Suggestions } from './components/Suggestions/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,4BAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,4BAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAA2B,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oCAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAAiC,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0CAAiC,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gCAAuB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,4BAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,4BAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAA2B,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oCAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAAiC,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0CAAiC,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gCAAuB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -25,6 +25,7 @@ export function AttachmentItem({
|
|
|
25
25
|
imageSize,
|
|
26
26
|
row,
|
|
27
27
|
mixed = false,
|
|
28
|
+
compact = false,
|
|
28
29
|
showProgressLabel = false,
|
|
29
30
|
onPreview,
|
|
30
31
|
onRemove,
|
|
@@ -225,8 +226,9 @@ export function AttachmentItem({
|
|
|
225
226
|
);
|
|
226
227
|
}
|
|
227
228
|
|
|
228
|
-
const removeLeft =
|
|
229
|
-
|
|
229
|
+
const removeLeft = compact
|
|
230
|
+
? Math.max(0, imageSize - ATTACHMENT_STATUS_OWNER_SIZE)
|
|
231
|
+
: previewable && !separatePreview
|
|
230
232
|
? width!
|
|
231
233
|
: (busy && !caption) || failed
|
|
232
234
|
? (imageSize - ATTACHMENT_STATUS_OWNER_SIZE) / 2 +
|
|
@@ -276,7 +278,13 @@ export function AttachmentItem({
|
|
|
276
278
|
{statusOwner}
|
|
277
279
|
{removable ? (
|
|
278
280
|
<Pressable
|
|
279
|
-
style={[
|
|
281
|
+
style={[
|
|
282
|
+
styles.removeOwner,
|
|
283
|
+
{ left: removeLeft },
|
|
284
|
+
(compact ||
|
|
285
|
+
removeLeft === imageSize - ATTACHMENT_STATUS_OWNER_SIZE) &&
|
|
286
|
+
styles.removeInCell,
|
|
287
|
+
]}
|
|
280
288
|
accessibilityRole="button"
|
|
281
289
|
accessibilityLabel={`移除${name}`}
|
|
282
290
|
disabled={item.removeDisabled}
|
|
@@ -116,6 +116,7 @@ export const createStyles = (colors: ColorTokens) =>
|
|
|
116
116
|
alignItems: 'center',
|
|
117
117
|
justifyContent: 'center',
|
|
118
118
|
},
|
|
119
|
+
removeInCell: { alignItems: 'flex-end', paddingRight: space[1] },
|
|
119
120
|
removeFailed: { backgroundColor: colors.error },
|
|
120
121
|
caption: {
|
|
121
122
|
flexDirection: 'row',
|
|
@@ -20,7 +20,7 @@ export interface ChatAttachmentItem {
|
|
|
20
20
|
}
|
|
21
21
|
export interface AttachmentsProps {
|
|
22
22
|
items: readonly ChatAttachmentItem[];
|
|
23
|
-
layout?: 'grid' | 'mixed' | 'carousel' | 'list';
|
|
23
|
+
layout?: 'grid' | 'compact' | 'mixed' | 'carousel' | 'list';
|
|
24
24
|
showProgressLabel?: boolean;
|
|
25
25
|
onPreview?(item: ChatAttachmentItem): void;
|
|
26
26
|
onRemove?(item: ChatAttachmentItem): void;
|
|
@@ -36,4 +36,5 @@ export interface AttachmentItemProps extends Pick<
|
|
|
36
36
|
imageSize: number;
|
|
37
37
|
row: boolean;
|
|
38
38
|
mixed?: boolean;
|
|
39
|
+
compact?: boolean;
|
|
39
40
|
}
|
|
@@ -5,12 +5,19 @@ import {
|
|
|
5
5
|
useRef,
|
|
6
6
|
useState,
|
|
7
7
|
} from 'react';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
LayoutAnimation,
|
|
10
|
+
Pressable,
|
|
11
|
+
Text,
|
|
12
|
+
View,
|
|
13
|
+
useWindowDimensions,
|
|
14
|
+
} from 'react-native';
|
|
9
15
|
import {
|
|
10
16
|
fixed,
|
|
11
17
|
Textarea,
|
|
12
18
|
useTheme,
|
|
13
19
|
useThemedStyles,
|
|
20
|
+
usePrefersReducedMotion,
|
|
14
21
|
} from '@unif/react-native-design';
|
|
15
22
|
import type { TextFieldHandle } from '@unif/react-native-design';
|
|
16
23
|
import {
|
|
@@ -52,6 +59,7 @@ export const Composer = forwardRef<ComposerHandle, ComposerProps>(
|
|
|
52
59
|
) {
|
|
53
60
|
const styles = useThemedStyles(createStyles);
|
|
54
61
|
const { fontScale } = useTheme();
|
|
62
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
55
63
|
const { height: windowHeight } = useWindowDimensions();
|
|
56
64
|
const inputRef = useRef<TextFieldHandle>(null);
|
|
57
65
|
const lastHeight = useRef<number | undefined>(undefined);
|
|
@@ -59,6 +67,12 @@ export const Composer = forwardRef<ComposerHandle, ComposerProps>(
|
|
|
59
67
|
const [focused, setFocused] = useState(false);
|
|
60
68
|
const voiceActive = voice !== undefined && voice.status !== 'idle';
|
|
61
69
|
const expanded = focused || value.length > 0;
|
|
70
|
+
const moreDisabled =
|
|
71
|
+
disabled ||
|
|
72
|
+
voiceActive ||
|
|
73
|
+
actions.every(
|
|
74
|
+
(action) => !action.label.trim() || action.disabled || action.loading
|
|
75
|
+
);
|
|
62
76
|
const minHeight = Number.isFinite(minInputHeight)
|
|
63
77
|
? Math.max(fixed.hitTarget, minInputHeight!)
|
|
64
78
|
: fixed.hitTarget;
|
|
@@ -98,8 +112,8 @@ export const Composer = forwardRef<ComposerHandle, ComposerProps>(
|
|
|
98
112
|
inputRef.current?.blur();
|
|
99
113
|
setFocused(false);
|
|
100
114
|
}
|
|
101
|
-
if (
|
|
102
|
-
}, [voiceActive,
|
|
115
|
+
if (moreDisabled) setMenuOpen(false);
|
|
116
|
+
}, [voiceActive, moreDisabled]);
|
|
103
117
|
|
|
104
118
|
const moreAction =
|
|
105
119
|
actions.length > 0 ? (
|
|
@@ -107,7 +121,7 @@ export const Composer = forwardRef<ComposerHandle, ComposerProps>(
|
|
|
107
121
|
icon="plus"
|
|
108
122
|
label="更多操作"
|
|
109
123
|
expanded={menuOpen}
|
|
110
|
-
disabled={
|
|
124
|
+
disabled={moreDisabled}
|
|
111
125
|
onPress={() => setMenuOpen((open) => !open)}
|
|
112
126
|
/>
|
|
113
127
|
) : null;
|
|
@@ -126,7 +140,7 @@ export const Composer = forwardRef<ComposerHandle, ComposerProps>(
|
|
|
126
140
|
{header != null ? (
|
|
127
141
|
<View style={[styles.accessory, styles.header]}>{header}</View>
|
|
128
142
|
) : null}
|
|
129
|
-
{menuOpen && !
|
|
143
|
+
{menuOpen && !moreDisabled && actions.length > 0 ? (
|
|
130
144
|
<>
|
|
131
145
|
<Pressable
|
|
132
146
|
style={[styles.backdrop, { height: windowHeight }]}
|
|
@@ -191,10 +205,18 @@ export const Composer = forwardRef<ComposerHandle, ComposerProps>(
|
|
|
191
205
|
onPressIn={() => setMenuOpen(false)}
|
|
192
206
|
onFocus={() => {
|
|
193
207
|
setMenuOpen(false);
|
|
208
|
+
if (!focused && !value.length && !reducedMotion)
|
|
209
|
+
LayoutAnimation.configureNext(
|
|
210
|
+
LayoutAnimation.Presets.easeInEaseOut
|
|
211
|
+
);
|
|
194
212
|
setFocused(true);
|
|
195
213
|
onFocusChange?.(true);
|
|
196
214
|
}}
|
|
197
215
|
onBlur={() => {
|
|
216
|
+
if (focused && !value.length && !reducedMotion)
|
|
217
|
+
LayoutAnimation.configureNext(
|
|
218
|
+
LayoutAnimation.Presets.easeInEaseOut
|
|
219
|
+
);
|
|
198
220
|
setFocused(false);
|
|
199
221
|
onFocusChange?.(false);
|
|
200
222
|
}}
|
|
@@ -267,13 +289,17 @@ export const Composer = forwardRef<ComposerHandle, ComposerProps>(
|
|
|
267
289
|
: voice.transcript || VOICE_LABELS[voice.status]}
|
|
268
290
|
</Text>
|
|
269
291
|
</View>
|
|
270
|
-
{voice.status === 'listening' ? (
|
|
292
|
+
{voice.status === 'listening' || voice.status === 'finishing' ? (
|
|
271
293
|
<ComposerIconAction
|
|
272
294
|
icon="stop"
|
|
273
295
|
visual="primary"
|
|
274
296
|
label="停止语音输入"
|
|
275
|
-
disabled={
|
|
276
|
-
|
|
297
|
+
disabled={
|
|
298
|
+
disabled || voice.disabled || voice.status === 'finishing'
|
|
299
|
+
}
|
|
300
|
+
onPress={
|
|
301
|
+
voice.status === 'listening' ? voice.onStop : undefined
|
|
302
|
+
}
|
|
277
303
|
/>
|
|
278
304
|
) : null}
|
|
279
305
|
</View>
|