@sciol/xyzen 0.2.4 → 0.2.6

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/README.md CHANGED
@@ -1,122 +1,122 @@
1
- # 如何使用 Xyzen
2
-
3
- Xyzen 是一个现代化、轻量级且可扩展的 React 聊天组件。它提供了一个功能齐全的侧边栏,可以轻松集成到任何 React 应用中。
4
-
5
- ## 安装
6
-
7
- 使用 yarn 或 npm 安装 Xyzen:
8
-
9
- ```bash
10
- yarn add @sciol/xyzen@latest
11
- ```
12
-
13
- 或者
14
-
15
- ```bash
16
- npm install @sciol/xyzen
17
- ```
18
-
19
- ## 快速上手
20
-
21
- `Xyzen` 组件开箱即用。它通过 `zustand` store 管理自己的状态。你可以通过 `useXyzen` hook 与其进行交互。
22
-
23
- 以下是如何将其集成到你的应用中的基本示例:
24
-
25
- 1. **在你的应用布局中添加 `Xyzen` 组件**
26
-
27
- 在你的根布局文件(例如 `App.tsx` 或 `Layout.tsx`)中,导入并渲染 `Xyzen` 组件。
28
-
29
- ```tsx
30
- // src/App.tsx
31
- import { Xyzen, useXyzen } from "@sciol/xyzen";
32
-
33
- function App() {
34
- const { openXyzen } = useXyzen();
35
-
36
- return (
37
- <div>
38
- <header>
39
- <h1>我的应用</h1>
40
- <button onClick={openXyzen}>打开聊天</button>
41
- </header>
42
- <main>{/* 你的应用内容 */}</main>
43
- <Xyzen />
44
- </div>
45
- );
46
- }
47
-
48
- export default App;
49
- ```
50
-
51
- 2. **控制 Xyzen 面板**
52
-
53
- 使用 `useXyzen` hook 来控制侧边栏的可见性。
54
-
55
- ```tsx
56
- import { useXyzen } from "@sciol/xyzen";
57
-
58
- function MyComponent() {
59
- const { isXyzenOpen, toggleXyzen, openXyzen, closeXyzen } = useXyzen();
60
-
61
- return (
62
- <div>
63
- <p>聊天面板当前是 {isXyzenOpen ? "打开" : "关闭"} 状态。</p>
64
- <button onClick={toggleXyzen}>切换聊天</button>
65
- <button onClick={openXyzen}>打开聊天</button>
66
- <button onClick={closeXyzen}>关闭聊天</button>
67
- </div>
68
- );
69
- }
70
- ```
71
-
72
- ## `useXyzen` Store API
73
-
74
- `useXyzen` hook 提供了访问 Xyzen 状态和操作的接口。
75
-
76
- ### 状态 (State)
77
-
78
- - `isXyzenOpen: boolean`: 侧边栏是否打开。
79
- - `panelWidth: number`: 侧边栏的当前宽度。
80
- - `activeChatChannel: string | null`: 当前活动的聊天频道 ID。
81
- - `user: User | null`: 当前用户信息。
82
- - `activeTabIndex: number`: 当前活动的标签页索引。
83
- - `theme: 'light' | 'dark' | 'system'`: 当前主题。
84
- - `chatHistory: ChatHistoryItem[]`: 聊天历史记录列表。
85
- - `chatHistoryLoading: boolean`: 聊天历史是否正在加载。
86
- - `channels: Record<string, ChatChannel>`: 聊天频道的映射表。
87
- - `assistants: Assistant[]`: 可用的助手列表。
88
-
89
- ### 操作 (Actions)
90
-
91
- - `toggleXyzen()`: 切换侧边栏的打开/关闭状态。
92
- - `openXyzen()`: 打开侧边栏。
93
- - `closeXyzen()`: 关闭侧边栏。
94
- - `setPanelWidth(width: number)`: 设置侧边栏的宽度。
95
- - `setActiveChatChannel(channelUUID: string | null)`: 设置当前活动的聊天频道。
96
- - `setTabIndex(index: number)`: 设置活动的标签页。
97
- - `setTheme(theme: Theme)`: 设置主题。
98
- - `fetchChatHistory(): Promise<void>`: 异步获取聊天历史记录。
99
- - `togglePinChat(chatId: string)`: 切换聊天的置顶状态。
100
- - `sendMessage(payload: { channelUUID: string; message: string })`: 发送消息到指定频道。
101
- - `createDefaultChannel()`: 创建一个新的默认聊天频道。
102
-
103
- ## 自定义
104
-
105
- Xyzen 设计为易于扩展。你可以利用 `useXyzen` store 中的状态和操作来构建自定义功能或与其他组件集成。
106
-
107
- 例如,你可以创建一个按钮,不仅可以打开 Xyzen,还可以切换到特定的标签页:
108
-
109
- ```tsx
110
- import { useXyzen } from "@sciol/xyzen";
111
-
112
- function GoToHistoryButton() {
113
- const { openXyzen, setTabIndex } = useXyzen();
114
-
115
- const handleClick = () => {
116
- setTabIndex(1); // 1 是历史标签页的索引
117
- openXyzen();
118
- };
119
-
120
- return <button onClick={handleClick}>查看聊天历史</button>;
121
- }
122
- ```
1
+ # 如何使用 Xyzen
2
+
3
+ Xyzen 是一个现代化、轻量级且可扩展的 React 聊天组件。它提供了一个功能齐全的侧边栏,可以轻松集成到任何 React 应用中。
4
+
5
+ ## 安装
6
+
7
+ 使用 yarn 或 npm 安装 Xyzen:
8
+
9
+ ```bash
10
+ yarn add @sciol/xyzen@latest
11
+ ```
12
+
13
+ 或者
14
+
15
+ ```bash
16
+ npm install @sciol/xyzen
17
+ ```
18
+
19
+ ## 快速上手
20
+
21
+ `Xyzen` 组件开箱即用。它通过 `zustand` store 管理自己的状态。你可以通过 `useXyzen` hook 与其进行交互。
22
+
23
+ 以下是如何将其集成到你的应用中的基本示例:
24
+
25
+ 1. **在你的应用布局中添加 `Xyzen` 组件**
26
+
27
+ 在你的根布局文件(例如 `App.tsx` 或 `Layout.tsx`)中,导入并渲染 `Xyzen` 组件。
28
+
29
+ ```tsx
30
+ // src/App.tsx
31
+ import { Xyzen, useXyzen } from "@sciol/xyzen";
32
+
33
+ function App() {
34
+ const { openXyzen } = useXyzen();
35
+
36
+ return (
37
+ <div>
38
+ <header>
39
+ <h1>我的应用</h1>
40
+ <button onClick={openXyzen}>打开聊天</button>
41
+ </header>
42
+ <main>{/* 你的应用内容 */}</main>
43
+ <Xyzen />
44
+ </div>
45
+ );
46
+ }
47
+
48
+ export default App;
49
+ ```
50
+
51
+ 2. **控制 Xyzen 面板**
52
+
53
+ 使用 `useXyzen` hook 来控制侧边栏的可见性。
54
+
55
+ ```tsx
56
+ import { useXyzen } from "@sciol/xyzen";
57
+
58
+ function MyComponent() {
59
+ const { isXyzenOpen, toggleXyzen, openXyzen, closeXyzen } = useXyzen();
60
+
61
+ return (
62
+ <div>
63
+ <p>聊天面板当前是 {isXyzenOpen ? "打开" : "关闭"} 状态。</p>
64
+ <button onClick={toggleXyzen}>切换聊天</button>
65
+ <button onClick={openXyzen}>打开聊天</button>
66
+ <button onClick={closeXyzen}>关闭聊天</button>
67
+ </div>
68
+ );
69
+ }
70
+ ```
71
+
72
+ ## `useXyzen` Store API
73
+
74
+ `useXyzen` hook 提供了访问 Xyzen 状态和操作的接口。
75
+
76
+ ### 状态 (State)
77
+
78
+ - `isXyzenOpen: boolean`: 侧边栏是否打开。
79
+ - `panelWidth: number`: 侧边栏的当前宽度。
80
+ - `activeChatChannel: string | null`: 当前活动的聊天频道 ID。
81
+ - `user: User | null`: 当前用户信息。
82
+ - `activeTabIndex: number`: 当前活动的标签页索引。
83
+ - `theme: 'light' | 'dark' | 'system'`: 当前主题。
84
+ - `chatHistory: ChatHistoryItem[]`: 聊天历史记录列表。
85
+ - `chatHistoryLoading: boolean`: 聊天历史是否正在加载。
86
+ - `channels: Record<string, ChatChannel>`: 聊天频道的映射表。
87
+ - `assistants: Assistant[]`: 可用的助手列表。
88
+
89
+ ### 操作 (Actions)
90
+
91
+ - `toggleXyzen()`: 切换侧边栏的打开/关闭状态。
92
+ - `openXyzen()`: 打开侧边栏。
93
+ - `closeXyzen()`: 关闭侧边栏。
94
+ - `setPanelWidth(width: number)`: 设置侧边栏的宽度。
95
+ - `setActiveChatChannel(channelUUID: string | null)`: 设置当前活动的聊天频道。
96
+ - `setTabIndex(index: number)`: 设置活动的标签页。
97
+ - `setTheme(theme: Theme)`: 设置主题。
98
+ - `fetchChatHistory(): Promise<void>`: 异步获取聊天历史记录。
99
+ - `togglePinChat(chatId: string)`: 切换聊天的置顶状态。
100
+ - `sendMessage(payload: { channelUUID: string; message: string })`: 发送消息到指定频道。
101
+ - `createDefaultChannel()`: 创建一个新的默认聊天频道。
102
+
103
+ ## 自定义
104
+
105
+ Xyzen 设计为易于扩展。你可以利用 `useXyzen` store 中的状态和操作来构建自定义功能或与其他组件集成。
106
+
107
+ 例如,你可以创建一个按钮,不仅可以打开 Xyzen,还可以切换到特定的标签页:
108
+
109
+ ```tsx
110
+ import { useXyzen } from "@sciol/xyzen";
111
+
112
+ function GoToHistoryButton() {
113
+ const { openXyzen, setTabIndex } = useXyzen();
114
+
115
+ const handleClick = () => {
116
+ setTabIndex(1); // 1 是历史标签页的索引
117
+ openXyzen();
118
+ };
119
+
120
+ return <button onClick={handleClick}>查看聊天历史</button>;
121
+ }
122
+ ```
@@ -1 +1 @@
1
- export declare const DEFAULT_BACKEND_URL: any;
1
+ export declare const DEFAULT_BACKEND_URL: string;