feat: 增加全局配置获取,并增加全局文件配置获取

pull/81/head
moonrailgun 3 years ago
parent f3309792af
commit 1b8e81d4fd

@ -117,6 +117,7 @@ importers:
crc: ^3.8.0
dayjs: ^1.10.6
events: ^3.3.0
filesize: ^8.0.7
flatted: ^3.2.4
formik: ^2.2.9
i18next: ^20.3.2
@ -132,20 +133,21 @@ importers:
url-regex: ^5.0.0
yup: ^0.32.9
dependencies:
'@reduxjs/toolkit': 1.7.1_react-redux@7.2.6
'@reduxjs/toolkit': 1.7.1_react-redux@7.2.6+react@17.0.2
axios: 0.21.4
crc: 3.8.0
dayjs: 1.10.7
events: 3.3.0
filesize: 8.0.7
flatted: 3.2.4
formik: 2.2.9
formik: 2.2.9_react@17.0.2
i18next: 20.6.1
i18next-http-backend: 1.3.1
lodash: 4.17.21
react-i18next: 11.15.1_i18next@20.6.1
react-i18next: 11.15.1_i18next@20.6.1+react@17.0.2
react-native-storage: /@trpgengine/react-native-storage/1.0.1
react-query: 3.34.6
react-redux: 7.2.6
react-query: 3.34.6_react@17.0.2
react-redux: 7.2.6_react@17.0.2
regenerator-runtime: registry.nlark.com/regenerator-runtime/0.13.9
socket.io-client: 4.4.0
str2int: 1.1.0
@ -2190,7 +2192,7 @@ packages:
resolution: {integrity: sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==, registry: https://registry.npm.taobao.org/, tarball: '@popperjs/core/download/@popperjs/core-2.11.0.tgz'}
dev: false
/@reduxjs/toolkit/1.7.1_react-redux@7.2.6:
/@reduxjs/toolkit/1.7.1_react-redux@7.2.6+react@17.0.2:
resolution: {integrity: sha512-wXwXYjBVz/ItxB7SMzEAMmEE/FBiY1ze18N+VVVX7NtVbRUrdOGKhpQMHivIJfkbJvSdLUU923a/yAagJQzY0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@reduxjs/toolkit/download/@reduxjs/toolkit-1.7.1.tgz}
peerDependencies:
react: ^16.9.0 || ^17.0.0 || 18.0.0-beta
@ -2202,7 +2204,8 @@ packages:
optional: true
dependencies:
immer: 9.0.7
react-redux: 7.2.6
react: 17.0.2
react-redux: 7.2.6_react@17.0.2
redux: 4.1.2
redux-thunk: 2.4.1_redux@4.1.2
reselect: 4.1.5
@ -4924,6 +4927,11 @@ packages:
minimatch: 3.0.4
dev: true
/filesize/8.0.7:
resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
engines: {node: '>= 0.4.0'}
dev: false
/filter-obj/1.1.0:
resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
engines: {node: '>=0.10.0'}
@ -4965,20 +4973,6 @@ packages:
debug:
optional: true
/formik/2.2.9:
resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==}
peerDependencies:
react: '>=16.8.0'
dependencies:
deepmerge: 2.2.1
hoist-non-react-statics: 3.3.2
lodash: 4.17.21
lodash-es: 4.17.21
react-fast-compare: 2.0.4
tiny-warning: 1.0.3
tslib: 1.14.1
dev: false
/formik/2.2.9_react@17.0.2:
resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==}
peerDependencies:
@ -8354,7 +8348,7 @@ packages:
react: 17.0.2
dev: false
/react-i18next/11.15.1_i18next@20.6.1:
/react-i18next/11.15.1_i18next@20.6.1+react@17.0.2:
resolution: {integrity: sha512-lnje1uKu5XeM5MLvfbt1oygF+nEIZnpOM4Iu8bkx5ECD4XRYgi3SJDmolrp0EDxDHeK2GgFb+vEEK0hsZ9sjeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-i18next/download/react-i18next-11.15.1.tgz}
peerDependencies:
i18next: '>= 19.0.0'
@ -8364,6 +8358,7 @@ packages:
html-escaper: registry.nlark.com/html-escaper/2.0.2
html-parse-stringify: 3.0.1
i18next: 20.6.1
react: 17.0.2
dev: false
/react-is/16.13.1:
@ -8412,7 +8407,7 @@ packages:
resolution: {integrity: sha1-IVa6nYX6R0H68ZGLOO/B6uPGoTY=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-property/download/react-property-2.0.0.tgz}
dev: false
/react-query/3.34.6:
/react-query/3.34.6_react@17.0.2:
resolution: {integrity: sha512-2UKldH8T2PjmLxaOzANok7yITQn9FF1pBbrZFF1hvukBjYefHtCjUur+GOVAWMhrsskcCoKRviei4hcpvj9wLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-query/download/react-query-3.34.6.tgz}
peerDependencies:
react: ^16.8.0 || ^17.0.0
@ -8427,9 +8422,10 @@ packages:
'@babel/runtime': 7.16.5
broadcast-channel: 3.7.0
match-sorter: 6.3.1
react: 17.0.2
dev: false
/react-redux/7.2.6:
/react-redux/7.2.6_react@17.0.2:
resolution: {integrity: sha1-SWM6JP5VK1+cr1j+uKE4k23f6ao=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/react-redux/download/react-redux-7.2.6.tgz}
peerDependencies:
react: ^16.8.3 || ^17
@ -8446,6 +8442,7 @@ packages:
hoist-non-react-statics: registry.nlark.com/hoist-non-react-statics/3.3.2
loose-envify: registry.nlark.com/loose-envify/1.4.0
prop-types: 15.8.0
react: 17.0.2
react-is: 17.0.2
dev: false

@ -63,6 +63,7 @@
"k48a38bc1": "Group not found",
"k49721de0": "Reset Password",
"k4d32a754": "Group Name",
"k4f672109": "Failed to load global configuration",
"k4f69cbc9": "Forget Password",
"k50504f9e": "Upload picture to converse",
"k50d471b2": "Reset",
@ -162,6 +163,7 @@
"kb3390ae7": "Are you sure you want to leave the group?",
"kb47a9aa4": "Password can not be empty",
"kb488372f": "All",
"kb48baefe": "Upload failed, maximum supported file size is ",
"kb55c8dba": "Invite Member",
"kb5a17e73": "Leave group",
"kb6f1c83f": "What do you want to call you?",

@ -63,6 +63,7 @@
"k48a38bc1": "群组不存在",
"k49721de0": "重设密码",
"k4d32a754": "群组名称",
"k4f672109": "全局配置加载失败",
"k4f69cbc9": "忘记密码",
"k50504f9e": "上传图片到会话",
"k50d471b2": "重置",
@ -162,6 +163,7 @@
"kb3390ae7": "确定要退出群组么?",
"kb47a9aa4": "密码不能为空",
"kb488372f": "所有人",
"kb48baefe": "上传失败, 支持的文件最大大小为:",
"kb55c8dba": "邀请成员",
"kb5a17e73": "退出群组",
"kb6f1c83f": "想要让大家如何称呼你",

@ -0,0 +1,43 @@
import { request } from '../api/request';
import { t } from '../i18n';
import { showErrorToasts } from '../manager/ui';
/**
*
*/
export interface GlobalConfig {
/**
*
* 1m
*/
uploadFileLimit: number;
}
let globalConfig = {
uploadFileLimit: 1 * 1024 * 1024,
};
export function getGlobalConfig() {
return {
...globalConfig,
};
}
export async function fetchConfig() {
const { data: config } = await request.get('/api/config/global');
globalConfig = {
...globalConfig,
...config,
};
return config;
}
/**
*
*/
fetchConfig().catch((e) => {
showErrorToasts(t('全局配置加载失败'));
console.error('全局配置加载失败', e);
});

@ -12,6 +12,7 @@
"crc": "^3.8.0",
"dayjs": "^1.10.6",
"events": "^3.3.0",
"filesize": "^8.0.7",
"flatted": "^3.2.4",
"formik": "^2.2.9",
"i18next": "^20.3.2",

@ -1,6 +1,9 @@
import { showToasts, t } from '..';
import { request } from '../api/request';
import _get from 'lodash/get';
import { getGlobalConfig } from '../model/config';
import { showErrorToasts } from '../manager/ui';
import filesize from 'filesize';
interface UploadFileOptions {
onProgress?: (percent: number, progressEvent: unknown) => void;
@ -21,6 +24,17 @@ export async function uploadFile(
const form = new FormData();
form.append('file', file);
const uploadFileLimit = getGlobalConfig().uploadFileLimit;
if (file.size > uploadFileLimit) {
// 文件过大
showErrorToasts(
`${t('上传失败, 支持的文件最大大小为:')} ${filesize(uploadFileLimit, {
base: 2,
})}`
);
throw new Error('File Too Large');
}
try {
const { data } = await request.post('/upload', form, {
onUploadProgress(progressEvent) {

Loading…
Cancel
Save