@unif/react-native-chat 0.1.1 → 0.2.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.
Files changed (97) hide show
  1. package/lib/commonjs/bubble/Bubble.js +131 -0
  2. package/lib/commonjs/bubble/Bubble.js.map +1 -0
  3. package/lib/commonjs/bubble/BubbleList.js +73 -0
  4. package/lib/commonjs/bubble/BubbleList.js.map +1 -0
  5. package/lib/commonjs/bubble/index.md +111 -0
  6. package/lib/commonjs/card-wrapper/CardWrapper.js +65 -0
  7. package/lib/commonjs/card-wrapper/CardWrapper.js.map +1 -0
  8. package/lib/commonjs/card-wrapper/index.md +78 -0
  9. package/lib/commonjs/conversations/Conversations.js +184 -0
  10. package/lib/commonjs/conversations/Conversations.js.map +1 -0
  11. package/lib/commonjs/conversations/index.md +90 -0
  12. package/lib/commonjs/index.js +69 -0
  13. package/lib/commonjs/index.js.map +1 -0
  14. package/lib/commonjs/package.json +1 -0
  15. package/lib/commonjs/prompts/Prompts.js +87 -0
  16. package/lib/commonjs/prompts/Prompts.js.map +1 -0
  17. package/lib/commonjs/prompts/index.md +81 -0
  18. package/lib/commonjs/sender/Sender.js +352 -0
  19. package/lib/commonjs/sender/Sender.js.map +1 -0
  20. package/lib/commonjs/sender/index.md +131 -0
  21. package/lib/commonjs/theme/tokens.js +77 -0
  22. package/lib/commonjs/theme/tokens.js.map +1 -0
  23. package/lib/commonjs/types/react-native-vector-icons.d.js +2 -0
  24. package/lib/commonjs/types/react-native-vector-icons.d.js.map +1 -0
  25. package/lib/commonjs/welcome/Welcome.js +152 -0
  26. package/lib/commonjs/welcome/Welcome.js.map +1 -0
  27. package/lib/commonjs/welcome/index.md +95 -0
  28. package/lib/module/bubble/Bubble.js +126 -0
  29. package/lib/module/bubble/Bubble.js.map +1 -0
  30. package/lib/module/bubble/BubbleList.js +68 -0
  31. package/lib/module/bubble/BubbleList.js.map +1 -0
  32. package/lib/module/bubble/index.md +111 -0
  33. package/lib/module/card-wrapper/CardWrapper.js +60 -0
  34. package/lib/module/card-wrapper/CardWrapper.js.map +1 -0
  35. package/lib/module/card-wrapper/index.md +78 -0
  36. package/lib/module/conversations/Conversations.js +179 -0
  37. package/lib/module/conversations/Conversations.js.map +1 -0
  38. package/lib/module/conversations/index.md +90 -0
  39. package/lib/module/index.js +23 -0
  40. package/lib/module/index.js.map +1 -0
  41. package/lib/module/package.json +1 -0
  42. package/lib/module/prompts/Prompts.js +82 -0
  43. package/lib/module/prompts/Prompts.js.map +1 -0
  44. package/lib/module/prompts/index.md +81 -0
  45. package/lib/module/sender/Sender.js +346 -0
  46. package/lib/module/sender/Sender.js.map +1 -0
  47. package/lib/module/sender/index.md +131 -0
  48. package/lib/module/theme/tokens.js +72 -0
  49. package/lib/module/theme/tokens.js.map +1 -0
  50. package/lib/module/types/react-native-vector-icons.d.js +2 -0
  51. package/lib/module/types/react-native-vector-icons.d.js.map +1 -0
  52. package/lib/module/welcome/Welcome.js +147 -0
  53. package/lib/module/welcome/Welcome.js.map +1 -0
  54. package/lib/module/welcome/index.md +95 -0
  55. package/lib/typescript/commonjs/bubble/Bubble.d.ts +29 -0
  56. package/lib/typescript/commonjs/bubble/Bubble.d.ts.map +1 -0
  57. package/lib/typescript/commonjs/bubble/BubbleList.d.ts +20 -0
  58. package/lib/typescript/commonjs/bubble/BubbleList.d.ts.map +1 -0
  59. package/lib/typescript/commonjs/card-wrapper/CardWrapper.d.ts +22 -0
  60. package/lib/typescript/commonjs/card-wrapper/CardWrapper.d.ts.map +1 -0
  61. package/lib/typescript/commonjs/conversations/Conversations.d.ts +37 -0
  62. package/lib/typescript/commonjs/conversations/Conversations.d.ts.map +1 -0
  63. package/lib/typescript/commonjs/index.d.ts +20 -0
  64. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/package.json +1 -0
  66. package/lib/typescript/commonjs/prompts/Prompts.d.ts +27 -0
  67. package/lib/typescript/commonjs/prompts/Prompts.d.ts.map +1 -0
  68. package/lib/typescript/commonjs/sender/Sender.d.ts +58 -0
  69. package/lib/typescript/commonjs/sender/Sender.d.ts.map +1 -0
  70. package/lib/typescript/commonjs/theme/tokens.d.ts +57 -0
  71. package/lib/typescript/commonjs/theme/tokens.d.ts.map +1 -0
  72. package/lib/typescript/commonjs/welcome/Welcome.d.ts +39 -0
  73. package/lib/typescript/commonjs/welcome/Welcome.d.ts.map +1 -0
  74. package/lib/typescript/module/bubble/Bubble.d.ts +29 -0
  75. package/lib/typescript/module/bubble/Bubble.d.ts.map +1 -0
  76. package/lib/typescript/module/bubble/BubbleList.d.ts +20 -0
  77. package/lib/typescript/module/bubble/BubbleList.d.ts.map +1 -0
  78. package/lib/typescript/module/card-wrapper/CardWrapper.d.ts +22 -0
  79. package/lib/typescript/module/card-wrapper/CardWrapper.d.ts.map +1 -0
  80. package/lib/typescript/module/conversations/Conversations.d.ts +37 -0
  81. package/lib/typescript/module/conversations/Conversations.d.ts.map +1 -0
  82. package/lib/typescript/module/index.d.ts +20 -0
  83. package/lib/typescript/module/index.d.ts.map +1 -0
  84. package/lib/typescript/module/package.json +1 -0
  85. package/lib/typescript/module/prompts/Prompts.d.ts +27 -0
  86. package/lib/typescript/module/prompts/Prompts.d.ts.map +1 -0
  87. package/lib/typescript/module/sender/Sender.d.ts +58 -0
  88. package/lib/typescript/module/sender/Sender.d.ts.map +1 -0
  89. package/lib/typescript/module/theme/tokens.d.ts +57 -0
  90. package/lib/typescript/module/theme/tokens.d.ts.map +1 -0
  91. package/lib/typescript/module/welcome/Welcome.d.ts +39 -0
  92. package/lib/typescript/module/welcome/Welcome.d.ts.map +1 -0
  93. package/package.json +41 -9
  94. package/src/index.tsx +24 -13
  95. package/src/sender/Sender.tsx +46 -38
  96. package/src/theme/tokens.ts +14 -2
  97. package/src/types/react-native-vector-icons.d.ts +12 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_tokens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","groupByDate","sessions","now","Date","todayStart","getFullYear","getMonth","getDate","getTime","yesterdayStart","groups","today","yesterday","earlier","s","timestamp","push","length","title","data","Conversations","items","activeId","onSelect","onDelete","onNew","shouldGroup","header","style","styles","semanticStyles","testID","sections","useMemo","handleDelete","useCallback","item","Alert","alert","text","onPress","id","renderItem","isActive","jsx","TouchableOpacity","defaultStyles","sessionItem","sessionItemActive","itemActive","onLongPress","activeOpacity","children","Text","sessionTitle","numberOfLines","renderSectionHeader","section","sectionHeader","jsxs","View","container","root","newButtonWrapper","newButton","newButtonText","SectionList","keyExtractor","list","showsVerticalScrollIndicator","stickySectionHeadersEnabled","StyleSheet","create","flex","alignItems","paddingVertical","paddingHorizontal","flexDirection","justifyContent","width","borderRadius","chatTokens","radiusFull","borderWidth","borderColor","colorPrimary","fontSize","fontWeight","color","colorTextSecondary","paddingTop","paddingBottom","backgroundColor","colorText","_default","exports","React","memo"],"sourceRoot":"../../../src","sources":["conversations/Conversations.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ ---
2
+ title: Conversations 会话列表
3
+ nav:
4
+ title: 组件
5
+ path: /components
6
+ ---
7
+
8
+ # Conversations 会话列表
9
+
10
+ 按日期分组的会话列表组件,支持新建、选中、删除操作。
11
+
12
+ ## 何时使用
13
+
14
+ - 展示聊天历史会话列表
15
+ - 需要按日期分组(今天/昨天/更早)
16
+ - 侧边栏会话管理
17
+
18
+ ## 代码示例
19
+
20
+ ### 基本用法
21
+
22
+ ```tsx
23
+ import { Conversations } from '@unif/react-native-chat';
24
+
25
+ <Conversations
26
+ items={sessions}
27
+ activeId={currentSessionId}
28
+ onSelect={(id) => switchSession(id)}
29
+ onDelete={(id) => deleteSession(id)}
30
+ onNew={() => createNewSession()}
31
+ />
32
+ ```
33
+
34
+ ### 不分组
35
+
36
+ ```tsx
37
+ <Conversations
38
+ items={sessions}
39
+ activeId={currentSessionId}
40
+ onSelect={handleSelect}
41
+ groupByDate={false}
42
+ />
43
+ ```
44
+
45
+ ### 自定义头部
46
+
47
+ ```tsx
48
+ <Conversations
49
+ items={sessions}
50
+ onSelect={handleSelect}
51
+ header={<DrawerHeader />}
52
+ />
53
+ ```
54
+
55
+ ## API
56
+
57
+ ### ConversationsProps
58
+
59
+ | 属性 | 说明 | 类型 | 默认值 |
60
+ |------|------|------|--------|
61
+ | items | 会话列表数据 | `ConversationItem[]` | - |
62
+ | activeId | 当前选中会话 ID | `string` | - |
63
+ | onSelect | 选中会话回调 | `(id: string) => void` | - |
64
+ | onDelete | 删除会话回调(长按触发) | `(id: string) => void` | - |
65
+ | onNew | 新建会话回调 | `() => void` | - |
66
+ | groupByDate | 按日期分组 | `boolean` | `true` |
67
+ | header | 列表顶部内容 | `ReactNode` | - |
68
+ | style | 容器样式 | `ViewStyle` | - |
69
+ | styles | 语义样式 | `Partial<ConversationsSemanticStyles>` | - |
70
+ | testID | 测试标识 | `string` | `'conversations'` |
71
+
72
+ ### ConversationItem
73
+
74
+ | 属性 | 说明 | 类型 |
75
+ |------|------|------|
76
+ | id | 唯一标识 | `string` |
77
+ | title | 会话标题 | `string` |
78
+ | lastMessage | 最后一条消息 | `string` |
79
+ | timestamp | 时间戳(毫秒) | `number` |
80
+ | messageCount | 消息数量 | `number` |
81
+
82
+ ### ConversationsSemanticStyles
83
+
84
+ | 属性 | 说明 | 类型 |
85
+ |------|------|------|
86
+ | root | 外层容器 | `ViewStyle` |
87
+ | newButton | 新建按钮 | `ViewStyle` |
88
+ | sectionHeader | 分组标题 | `TextStyle` |
89
+ | item | 会话项 | `ViewStyle` |
90
+ | itemActive | 选中态会话项 | `ViewStyle` |
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Bubble", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Bubble.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "BubbleList", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _BubbleList.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "CardWrapper", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _CardWrapper.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "Conversations", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _Conversations.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "Prompts", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _Prompts.default;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "Sender", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _Sender.default;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "Welcome", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _Welcome.default;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "chatTokens", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _tokens.chatTokens;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "configure", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _tokens.configure;
58
+ }
59
+ });
60
+ var _Bubble = _interopRequireDefault(require("./bubble/Bubble"));
61
+ var _BubbleList = _interopRequireDefault(require("./bubble/BubbleList"));
62
+ var _Sender = _interopRequireDefault(require("./sender/Sender"));
63
+ var _Conversations = _interopRequireDefault(require("./conversations/Conversations"));
64
+ var _Prompts = _interopRequireDefault(require("./prompts/Prompts"));
65
+ var _Welcome = _interopRequireDefault(require("./welcome/Welcome"));
66
+ var _CardWrapper = _interopRequireDefault(require("./card-wrapper/CardWrapper"));
67
+ var _tokens = require("./theme/tokens");
68
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Bubble","_interopRequireDefault","require","_BubbleList","_Sender","_Conversations","_Prompts","_Welcome","_CardWrapper","_tokens","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAIA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AAQA,IAAAG,cAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAQA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AAQA,IAAAK,QAAA,GAAAN,sBAAA,CAAAC,OAAA;AAQA,IAAAM,YAAA,GAAAP,sBAAA,CAAAC,OAAA;AAOA,IAAAO,OAAA,GAAAP,OAAA;AAAuD,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _tokens = require("../theme/tokens");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ /**
13
+ * Prompts — 建议提示
14
+ * 水平 ScrollView + Chip 列表
15
+ */
16
+
17
+ const Prompts = ({
18
+ items,
19
+ onSelect,
20
+ disabled = false,
21
+ wrap = false,
22
+ style,
23
+ styles: semanticStyles,
24
+ testID = 'prompts'
25
+ }) => {
26
+ if (items.length === 0) return null;
27
+ const renderChips = () => items.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
28
+ style: [defaultStyles.chip, semanticStyles?.chip],
29
+ onPress: () => !disabled && onSelect(item),
30
+ activeOpacity: disabled ? 1 : 0.7,
31
+ disabled: disabled,
32
+ testID: `${testID}-${item.id}`,
33
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
34
+ style: [defaultStyles.chipText, semanticStyles?.chipText, disabled && defaultStyles.chipTextDisabled],
35
+ numberOfLines: 1,
36
+ children: item.label
37
+ })
38
+ }, item.id));
39
+ if (wrap) {
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
41
+ style: [defaultStyles.container, defaultStyles.wrapContainer, semanticStyles?.root, style],
42
+ testID: testID,
43
+ children: renderChips()
44
+ });
45
+ }
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
47
+ style: [defaultStyles.container, semanticStyles?.root, style],
48
+ testID: testID,
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
50
+ horizontal: true,
51
+ showsHorizontalScrollIndicator: false,
52
+ contentContainerStyle: defaultStyles.scrollContent,
53
+ children: renderChips()
54
+ })
55
+ });
56
+ };
57
+ const defaultStyles = _reactNative.StyleSheet.create({
58
+ container: {
59
+ paddingVertical: 8,
60
+ backgroundColor: 'transparent'
61
+ },
62
+ scrollContent: {
63
+ paddingHorizontal: 12,
64
+ gap: 8
65
+ },
66
+ wrapContainer: {
67
+ flexDirection: 'row',
68
+ flexWrap: 'wrap',
69
+ paddingHorizontal: 12,
70
+ gap: 8
71
+ },
72
+ chip: {
73
+ backgroundColor: '#F3F4F6',
74
+ borderRadius: 16,
75
+ paddingHorizontal: 14,
76
+ paddingVertical: 8
77
+ },
78
+ chipText: {
79
+ fontSize: 13,
80
+ color: _tokens.chatTokens.colorText
81
+ },
82
+ chipTextDisabled: {
83
+ color: _tokens.chatTokens.colorTextPlaceholder
84
+ }
85
+ });
86
+ var _default = exports.default = /*#__PURE__*/_react.default.memo(Prompts);
87
+ //# sourceMappingURL=Prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_tokens","_jsxRuntime","e","__esModule","default","Prompts","items","onSelect","disabled","wrap","style","styles","semanticStyles","testID","length","renderChips","map","item","jsx","TouchableOpacity","defaultStyles","chip","onPress","activeOpacity","id","children","Text","chipText","chipTextDisabled","numberOfLines","label","View","container","wrapContainer","root","ScrollView","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","scrollContent","StyleSheet","create","paddingVertical","backgroundColor","paddingHorizontal","gap","flexDirection","flexWrap","borderRadius","fontSize","color","chatTokens","colorText","colorTextPlaceholder","_default","exports","React","memo"],"sourceRoot":"../../../src","sources":["prompts/Prompts.tsx"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AASA,IAAAE,OAAA,GAAAF,OAAA;AAA2C,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAf3C;AACA;AACA;AACA;;AAmCA,MAAMG,OAA+B,GAAGA,CAAC;EACvCC,KAAK;EACLC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChBC,IAAI,GAAG,KAAK;EACZC,KAAK;EACLC,MAAM,EAAEC,cAAc;EACtBC,MAAM,GAAG;AACX,CAAC,KAAK;EACJ,IAAIP,KAAK,CAACQ,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAEnC,MAAMC,WAAW,GAAGA,CAAA,KAClBT,KAAK,CAACU,GAAG,CAAEC,IAAI,iBACb,IAAAhB,WAAA,CAAAiB,GAAA,EAACnB,YAAA,CAAAoB,gBAAgB;IAEfT,KAAK,EAAE,CAACU,aAAa,CAACC,IAAI,EAAET,cAAc,EAAES,IAAI,CAAE;IAClDC,OAAO,EAAEA,CAAA,KAAM,CAACd,QAAQ,IAAID,QAAQ,CAACU,IAAI,CAAE;IAC3CM,aAAa,EAAEf,QAAQ,GAAG,CAAC,GAAG,GAAI;IAClCA,QAAQ,EAAEA,QAAS;IACnBK,MAAM,EAAE,GAAGA,MAAM,IAAII,IAAI,CAACO,EAAE,EAAG;IAAAC,QAAA,eAC/B,IAAAxB,WAAA,CAAAiB,GAAA,EAACnB,YAAA,CAAA2B,IAAI;MACHhB,KAAK,EAAE,CACLU,aAAa,CAACO,QAAQ,EACtBf,cAAc,EAAEe,QAAQ,EACxBnB,QAAQ,IAAIY,aAAa,CAACQ,gBAAgB,CAC1C;MACFC,aAAa,EAAE,CAAE;MAAAJ,QAAA,EAChBR,IAAI,CAACa;IAAK,CACP;EAAC,GAdFb,IAAI,CAACO,EAeM,CACnB,CAAC;EAEJ,IAAIf,IAAI,EAAE;IACR,oBACE,IAAAR,WAAA,CAAAiB,GAAA,EAACnB,YAAA,CAAAgC,IAAI;MACHrB,KAAK,EAAE,CAACU,aAAa,CAACY,SAAS,EAAEZ,aAAa,CAACa,aAAa,EAAErB,cAAc,EAAEsB,IAAI,EAAExB,KAAK,CAAE;MAC3FG,MAAM,EAAEA,MAAO;MAAAY,QAAA,EACdV,WAAW,CAAC;IAAC,CACV,CAAC;EAEX;EAEA,oBACE,IAAAd,WAAA,CAAAiB,GAAA,EAACnB,YAAA,CAAAgC,IAAI;IAACrB,KAAK,EAAE,CAACU,aAAa,CAACY,SAAS,EAAEpB,cAAc,EAAEsB,IAAI,EAAExB,KAAK,CAAE;IAACG,MAAM,EAAEA,MAAO;IAAAY,QAAA,eAClF,IAAAxB,WAAA,CAAAiB,GAAA,EAACnB,YAAA,CAAAoC,UAAU;MACTC,UAAU;MACVC,8BAA8B,EAAE,KAAM;MACtCC,qBAAqB,EAAElB,aAAa,CAACmB,aAAc;MAAAd,QAAA,EAClDV,WAAW,CAAC;IAAC,CACJ;EAAC,CACT,CAAC;AAEX,CAAC;AAED,MAAMK,aAAa,GAAGoB,uBAAU,CAACC,MAAM,CAAC;EACtCT,SAAS,EAAE;IACTU,eAAe,EAAE,CAAC;IAClBC,eAAe,EAAE;EACnB,CAAC;EACDJ,aAAa,EAAE;IACbK,iBAAiB,EAAE,EAAE;IACrBC,GAAG,EAAE;EACP,CAAC;EACDZ,aAAa,EAAE;IACba,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChBH,iBAAiB,EAAE,EAAE;IACrBC,GAAG,EAAE;EACP,CAAC;EACDxB,IAAI,EAAE;IACJsB,eAAe,EAAE,SAAS;IAC1BK,YAAY,EAAE,EAAE;IAChBJ,iBAAiB,EAAE,EAAE;IACrBF,eAAe,EAAE;EACnB,CAAC;EACDf,QAAQ,EAAE;IACRsB,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAEC,kBAAU,CAACC;EACpB,CAAC;EACDxB,gBAAgB,EAAE;IAChBsB,KAAK,EAAEC,kBAAU,CAACE;EACpB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAnD,OAAA,gBAEYoD,cAAK,CAACC,IAAI,CAACpD,OAAO,CAAC","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ ---
2
+ title: Prompts 建议提示
3
+ nav:
4
+ title: 组件
5
+ path: /components
6
+ ---
7
+
8
+ # Prompts 建议提示
9
+
10
+ 水平滚动的建议提示 Chip 列表,可选换行模式。
11
+
12
+ ## 何时使用
13
+
14
+ - AI 回复后展示后续建议问题
15
+ - 欢迎页展示快捷提问入口
16
+
17
+ ## 代码示例
18
+
19
+ ### 水平滚动
20
+
21
+ ```tsx
22
+ import { Prompts } from '@unif/react-native-chat';
23
+
24
+ <Prompts
25
+ items={[
26
+ { id: '1', label: '查询余额' },
27
+ { id: '2', label: '转账汇款' },
28
+ { id: '3', label: '理财推荐' },
29
+ ]}
30
+ onSelect={(item) => console.log(item.label)}
31
+ />
32
+ ```
33
+
34
+ ### 换行模式
35
+
36
+ ```tsx
37
+ <Prompts
38
+ items={suggestions}
39
+ onSelect={handleSelect}
40
+ wrap={true}
41
+ />
42
+ ```
43
+
44
+ ### 禁用状态
45
+
46
+ ```tsx
47
+ <Prompts
48
+ items={suggestions}
49
+ onSelect={handleSelect}
50
+ disabled={isRequesting}
51
+ />
52
+ ```
53
+
54
+ ## API
55
+
56
+ ### PromptsProps
57
+
58
+ | 属性 | 说明 | 类型 | 默认值 |
59
+ |------|------|------|--------|
60
+ | items | 建议项列表 | `PromptItem[]` | - |
61
+ | onSelect | 选中回调 | `(item: PromptItem) => void` | - |
62
+ | disabled | 禁用状态 | `boolean` | `false` |
63
+ | wrap | 换行模式(FlexWrap) | `boolean` | `false` |
64
+ | style | 容器样式 | `ViewStyle` | - |
65
+ | styles | 语义样式 | `Partial<PromptsSemanticStyles>` | - |
66
+ | testID | 测试标识 | `string` | `'prompts'` |
67
+
68
+ ### PromptItem
69
+
70
+ | 属性 | 说明 | 类型 |
71
+ |------|------|------|
72
+ | id | 唯一标识 | `string` |
73
+ | label | 显示文字 | `string` |
74
+
75
+ ### PromptsSemanticStyles
76
+
77
+ | 属性 | 说明 | 类型 |
78
+ |------|------|------|
79
+ | root | 外层容器 | `ViewStyle` |
80
+ | chip | Chip 样式 | `ViewStyle` |
81
+ | chipText | Chip 文字 | `TextStyle` |