@gup-fe/js-sdk 2.2.1 → 2.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.
Files changed (2) hide show
  1. package/README.md +0 -178
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -1,178 +0,0 @@
1
- # @gup-fe/js-sdk
2
-
3
- 统一登录与交互 SDK,支持 React 项目及任意框架项目的命令式调用。
4
-
5
- ## 安装
6
-
7
- ```bash
8
- npm install @gup-fe/js-sdk
9
- # 或者
10
- pnpm add @gup-fe/js-sdk
11
- ```
12
-
13
- > **⚠️ 注意:**
14
- > - **React 项目**:直接使用主入口即可。
15
- > - **非 React 项目**:使用内置了所有依赖(包括 React)的 `bundle` 版本,无需手动安装任何依赖。
16
- > - **无构建工具**:请参考下文的 [CDN 接入](#4-cdn--无构建工具接入)。
17
-
18
- ---
19
-
20
- ## 快速上手
21
-
22
- ### 1. 初始化 (推荐)
23
-
24
- 在项目入口处调用 `init` 方法配置全局参数,后续调用 API 时无需重复传入 `gameId`。
25
-
26
- ```javascript
27
- import { init } from '@gup-fe/js-sdk';
28
-
29
- init({ gameId: '5242' });
30
- ```
31
-
32
- ### 2. React 项目
33
-
34
- 直接引入 `Login` 组件。
35
-
36
- ```tsx
37
- import { useState, useEffect } from 'react';
38
- import { Login, isLoggedIn, getUserInfo, logout } from '@gup-fe/js-sdk';
39
-
40
- function App() {
41
- const [isOpen, setIsOpen] = useState(false);
42
- const [user, setUser] = useState(null);
43
-
44
- useEffect(() => {
45
- if (isLoggedIn()) {
46
- setUser(getUserInfo());
47
- }
48
- }, []);
49
-
50
- return (
51
- <div>
52
- {user ? (
53
- <div>
54
- <span>你好,{user.username}</span>
55
- <button onClick={() => { logout(); setUser(null); }}>退出</button>
56
- </div>
57
- ) : (
58
- <button onClick={() => setIsOpen(true)}>登录</button>
59
- )}
60
-
61
- <Login
62
- open={isOpen}
63
- onOpenChange={setIsOpen}
64
- onLoginSuccess={(data) => {
65
- setUser(getUserInfo());
66
- setIsOpen(false);
67
- }}
68
- />
69
- </div>
70
- );
71
- }
72
- ```
73
-
74
- 适用于 Vue、原生 JS 等使用构建工具(Vite/Webpack)的项目。使用 `/bundle` 入口可以免去手动安装 React 的麻烦。
75
-
76
- ```javascript
77
- import { login, logout, isLoggedIn } from '@gup-fe/js-sdk/bundle';
78
-
79
- const { close } = login({
80
- onLoginSuccess: (data) => {
81
- console.log('登录成功', data);
82
- close();
83
- }
84
- });
85
- ```
86
-
87
- ### 4. CDN / 无构建工具接入
88
-
89
- 对于不使用 `npm` 的原生 HTML 页面,请按照以下顺序引入。推荐使用 `bundle` 版本以获得最简单的“零依赖”接入体验(已内置 React 运行时,无需手动引入 React)。
90
-
91
- ```html
92
- <!-- 推荐使用 bundle 版本,已内置所有依赖(包含 React) -->
93
- <script src="https://unpkg.com/@gup-fe/js-sdk/dist/js-sdk.bundle.umd.js"></script>
94
-
95
- <script>
96
- SDK.init({ gameId: '5242' });
97
-
98
- SDK.login({
99
- onLoginSuccess: (data) => console.log('登录成功', data)
100
- });
101
- </script>
102
- ```
103
-
104
- ---
105
-
106
- ## API 参考
107
-
108
- ### 核心方法
109
-
110
- #### `init(config)`
111
- 初始化 SDK 全局配置。
112
- - `config.gameId`: (必填) 游戏 ID。
113
-
114
- #### `login(options)`
115
- 唤起登录弹窗。
116
- - `options.onLoginSuccess`: 登录成功回调。
117
- - `options.onLoginError`: 登录失败回调。
118
- - `options.loginTypes`: 可选。自定义登录方式 `['phone', 'uid', 'account']`。
119
-
120
- #### `logout()`
121
- 清除当前登录状态。
122
-
123
- #### `isLoggedIn()`
124
- 判断当前是否已登录。
125
-
126
- #### `getUserInfo()`
127
- 获取当前登录的用户信息(返回 `UserInfo` 对象)。
128
-
129
- ### 类型定义
130
-
131
- #### `UserInfo`
132
- ```typescript
133
- interface UserInfo {
134
- username: string;
135
- openid: string;
136
- account?: PassAccount;
137
- // ... 其他属性
138
- }
139
- ```
140
-
141
- ---
142
-
143
- ## UI 自定义 (StyleVars)
144
-
145
- SDK 支持通过 `styleVars` 参数自定义基础视觉样式(基于 CSS 变量)。
146
-
147
- ### 支持的变量
148
-
149
- | 变量名 | 说明 | 默认值 |
150
- | --- | --- | --- |
151
- | `--primary-color` | 主题色(按钮、高亮等) | `#497efe` |
152
- | `--icon-color` | 图标颜色 | `#497efe` |
153
- | `--input-bg-color` | 输入框背景色 | `#f5f5f5` |
154
- | `--input-border-color` | 输入框边框颜色 | `transparent` |
155
- | `--input-label-color` | 输入框标签文字颜色 | `#999999` |
156
-
157
- ### 使用示例
158
-
159
- #### 1. React 方式
160
- ```tsx
161
- <Login
162
- styleVars={{
163
- '--primary-color': '#ff5000',
164
- '--input-bg-color': '#ffffff',
165
- '--input-border-color': '#eeeeee'
166
- }}
167
- />
168
- ```
169
-
170
- #### 2. 命令式方式
171
- ```javascript
172
- login({
173
- styleVars: {
174
- '--primary-color': '#00c853'
175
- }
176
- });
177
- ```
178
-
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gup-fe/js-sdk",
3
3
  "type": "module",
4
- "version": "2.2.1",
4
+ "version": "2.3.0",
5
5
  "license": "UNLICENSED",
6
6
  "publishConfig": {
7
7
  "access": "public",
@@ -56,8 +56,8 @@
56
56
  "vite": "^7.3.1",
57
57
  "vite-plugin-css-injected-by-js": "^5.0.1",
58
58
  "vite-plugin-dts": "^4.5.4",
59
- "@gup-fe/eslint-config": "0.0.0",
60
59
  "@gup-fe/lib": "1.0.0",
60
+ "@gup-fe/eslint-config": "0.0.0",
61
61
  "@gup-fe/typescript-config": "0.0.0",
62
62
  "@gup-fe/tailwind-config": "0.0.0",
63
63
  "@gup-fe/ui": "1.0.0"