chore: lint fix

This commit is contained in:
CaIon
2024-03-23 21:24:39 +08:00
parent 15e7307320
commit 962dc984f4
55 changed files with 5263 additions and 3589 deletions

View File

@@ -1,6 +1,13 @@
import React, { useContext, useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { API, copy, isRoot, showError, showInfo, showSuccess } from '../helpers';
import {
API,
copy,
isRoot,
showError,
showInfo,
showSuccess,
} from '../helpers';
import Turnstile from 'react-turnstile';
import { UserContext } from '../context/User';
import { onGitHubOAuthClicked } from './utils';
@@ -17,9 +24,14 @@ import {
Modal,
Space,
Tag,
Typography
Typography,
} from '@douyinfe/semi-ui';
import { getQuotaPerUnit, renderQuota, renderQuotaWithPrompt, stringToColor } from '../helpers/render';
import {
getQuotaPerUnit,
renderQuota,
renderQuotaWithPrompt,
stringToColor,
} from '../helpers/render';
import TelegramLoginButton from 'react-telegram-login';
const PersonalSetting = () => {
@@ -32,7 +44,7 @@ const PersonalSetting = () => {
email: '',
self_account_deletion_confirmation: '',
set_new_password: '',
set_new_password_confirmation: ''
set_new_password_confirmation: '',
});
const [status, setStatus] = useState({});
const [showChangePasswordModal, setShowChangePasswordModal] = useState(false);
@@ -67,11 +79,9 @@ const PersonalSetting = () => {
setTurnstileSiteKey(status.turnstile_site_key);
}
}
getUserData().then(
(res) => {
console.log(userState);
}
);
getUserData().then((res) => {
console.log(userState);
});
loadModels().then();
getAffLink().then();
setTransferAmount(getQuotaPerUnit());
@@ -173,7 +183,7 @@ const PersonalSetting = () => {
const bindWeChat = async () => {
if (inputs.wechat_verification_code === '') return;
const res = await API.get(
`/api/oauth/wechat/bind?code=${inputs.wechat_verification_code}`
`/api/oauth/wechat/bind?code=${inputs.wechat_verification_code}`,
);
const { success, message } = res.data;
if (success) {
@@ -189,12 +199,9 @@ const PersonalSetting = () => {
showError('两次输入的密码不一致!');
return;
}
const res = await API.put(
`/api/user/self`,
{
password: inputs.set_new_password
}
);
const res = await API.put(`/api/user/self`, {
password: inputs.set_new_password,
});
const { success, message } = res.data;
if (success) {
showSuccess('密码修改成功!');
@@ -210,12 +217,9 @@ const PersonalSetting = () => {
showError('划转金额最低为' + renderQuota(getQuotaPerUnit()));
return;
}
const res = await API.post(
`/api/user/aff_transfer`,
{
quota: transferAmount
}
);
const res = await API.post(`/api/user/aff_transfer`, {
quota: transferAmount,
});
const { success, message } = res.data;
if (success) {
showSuccess(message);
@@ -238,7 +242,7 @@ const PersonalSetting = () => {
}
setLoading(true);
const res = await API.get(
`/api/verification?email=${inputs.email}&turnstile=${turnstileToken}`
`/api/verification?email=${inputs.email}&turnstile=${turnstileToken}`,
);
const { success, message } = res.data;
if (success) {
@@ -256,7 +260,7 @@ const PersonalSetting = () => {
}
setLoading(true);
const res = await API.get(
`/api/oauth/email/bind?email=${inputs.email}&code=${inputs.email_verification_code}`
`/api/oauth/email/bind?email=${inputs.email}&code=${inputs.email_verification_code}`,
);
const { success, message } = res.data;
if (success) {
@@ -295,7 +299,7 @@ const PersonalSetting = () => {
<Layout>
<Layout.Content>
<Modal
title="请输入要划转的数量"
title='请输入要划转的数量'
visible={openTransfer}
onOk={transfer}
onCancel={handleCancel}
@@ -305,13 +309,25 @@ const PersonalSetting = () => {
>
<div style={{ marginTop: 20 }}>
<Typography.Text>{`可用额度${renderQuotaWithPrompt(userState?.user?.aff_quota)}`}</Typography.Text>
<Input style={{ marginTop: 5 }} value={userState?.user?.aff_quota} disabled={true}></Input>
<Input
style={{ marginTop: 5 }}
value={userState?.user?.aff_quota}
disabled={true}
></Input>
</div>
<div style={{ marginTop: 20 }}>
<Typography.Text>{`划转额度${renderQuotaWithPrompt(transferAmount)} 最低` + renderQuota(getQuotaPerUnit())}</Typography.Text>
<Typography.Text>
{`划转额度${renderQuotaWithPrompt(transferAmount)} 最低` +
renderQuota(getQuotaPerUnit())}
</Typography.Text>
<div>
<InputNumber min={0} style={{ marginTop: 5 }} value={transferAmount}
onChange={(value) => setTransferAmount(value)} disabled={false}></InputNumber>
<InputNumber
min={0}
style={{ marginTop: 5 }}
value={transferAmount}
onChange={(value) => setTransferAmount(value)}
disabled={false}
></InputNumber>
</div>
</div>
</Modal>
@@ -319,27 +335,45 @@ const PersonalSetting = () => {
<Card
title={
<Card.Meta
avatar={<Avatar size="default" color={stringToColor(getUsername())}
style={{ marginRight: 4 }}>
{typeof getUsername() === 'string' && getUsername().slice(0, 1)}
</Avatar>}
avatar={
<Avatar
size='default'
color={stringToColor(getUsername())}
style={{ marginRight: 4 }}
>
{typeof getUsername() === 'string' &&
getUsername().slice(0, 1)}
</Avatar>
}
title={<Typography.Text>{getUsername()}</Typography.Text>}
description={isRoot() ? <Tag color="red">管理员</Tag> : <Tag color="blue"></Tag>}
description={
isRoot() ? (
<Tag color='red'>管理员</Tag>
) : (
<Tag color='blue'>普通用户</Tag>
)
}
></Card.Meta>
}
headerExtraContent={
<>
<Space vertical align="start">
<Tag color="green">{'ID: ' + userState?.user?.id}</Tag>
<Tag color="blue">{userState?.user?.group}</Tag>
<Space vertical align='start'>
<Tag color='green'>{'ID: ' + userState?.user?.id}</Tag>
<Tag color='blue'>{userState?.user?.group}</Tag>
</Space>
</>
}
footer={
<Descriptions row>
<Descriptions.Item itemKey="当前余额">{renderQuota(userState?.user?.quota)}</Descriptions.Item>
<Descriptions.Item itemKey="历史消耗">{renderQuota(userState?.user?.used_quota)}</Descriptions.Item>
<Descriptions.Item itemKey="请求次数">{userState.user?.request_count}</Descriptions.Item>
<Descriptions.Item itemKey='当前余额'>
{renderQuota(userState?.user?.quota)}
</Descriptions.Item>
<Descriptions.Item itemKey='历史消耗'>
{renderQuota(userState?.user?.used_quota)}
</Descriptions.Item>
<Descriptions.Item itemKey='请求次数'>
{userState.user?.request_count}
</Descriptions.Item>
</Descriptions>
}
>
@@ -347,15 +381,18 @@ const PersonalSetting = () => {
<div style={{ marginTop: 10 }}>
<Space wrap>
{models.map((model) => (
<Tag key={model} color="cyan" onClick={() => {
copyText(model);
}}>
<Tag
key={model}
color='cyan'
onClick={() => {
copyText(model);
}}
>
{model}
</Tag>
))}
</Space>
</div>
</Card>
<Card
footer={
@@ -373,18 +410,25 @@ const PersonalSetting = () => {
<Typography.Title heading={6}>邀请信息</Typography.Title>
<div style={{ marginTop: 10 }}>
<Descriptions row>
<Descriptions.Item itemKey="待使用收益">
<span style={{ color: 'rgba(var(--semi-red-5), 1)' }}>
{
renderQuota(userState?.user?.aff_quota)
}
</span>
<Button type={'secondary'} onClick={() => setOpenTransfer(true)} size={'small'}
style={{ marginLeft: 10 }}>划转</Button>
<Descriptions.Item itemKey='待使用收益'>
<span style={{ color: 'rgba(var(--semi-red-5), 1)' }}>
{renderQuota(userState?.user?.aff_quota)}
</span>
<Button
type={'secondary'}
onClick={() => setOpenTransfer(true)}
size={'small'}
style={{ marginLeft: 10 }}
>
划转
</Button>
</Descriptions.Item>
<Descriptions.Item itemKey='总收益'>
{renderQuota(userState?.user?.aff_history_quota)}
</Descriptions.Item>
<Descriptions.Item itemKey='邀请人数'>
{userState?.user?.aff_count}
</Descriptions.Item>
<Descriptions.Item
itemKey="总收益">{renderQuota(userState?.user?.aff_history_quota)}</Descriptions.Item>
<Descriptions.Item itemKey="邀请人数">{userState?.user?.aff_count}</Descriptions.Item>
</Descriptions>
</div>
</Card>
@@ -392,46 +436,71 @@ const PersonalSetting = () => {
<Typography.Title heading={6}>个人信息</Typography.Title>
<div style={{ marginTop: 20 }}>
<Typography.Text strong>邮箱</Typography.Text>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div
style={{ display: 'flex', justifyContent: 'space-between' }}
>
<div>
<Input
value={userState.user && userState.user.email !== '' ? userState.user.email : '未绑定'}
value={
userState.user && userState.user.email !== ''
? userState.user.email
: '未绑定'
}
readonly={true}
></Input>
</div>
<div>
<Button onClick={() => {
setShowEmailBindModal(true);
}}>{
userState.user && userState.user.email !== '' ? '修改绑定' : '绑定邮箱'
}</Button>
<Button
onClick={() => {
setShowEmailBindModal(true);
}}
>
{userState.user && userState.user.email !== ''
? '修改绑定'
: '绑定邮箱'}
</Button>
</div>
</div>
</div>
<div style={{ marginTop: 10 }}>
<Typography.Text strong>微信</Typography.Text>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div
style={{ display: 'flex', justifyContent: 'space-between' }}
>
<div>
<Input
value={userState.user && userState.user.wechat_id !== '' ? '已绑定' : '未绑定'}
value={
userState.user && userState.user.wechat_id !== ''
? '已绑定'
: '未绑定'
}
readonly={true}
></Input>
</div>
<div>
<Button disabled={(userState.user && userState.user.wechat_id !== '') || !status.wechat_login}>
{
status.wechat_login ? '绑定' : '未启用'
<Button
disabled={
(userState.user && userState.user.wechat_id !== '') ||
!status.wechat_login
}
>
{status.wechat_login ? '绑定' : '未启用'}
</Button>
</div>
</div>
</div>
<div style={{ marginTop: 10 }}>
<Typography.Text strong>GitHub</Typography.Text>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div
style={{ display: 'flex', justifyContent: 'space-between' }}
>
<div>
<Input
value={userState.user && userState.user.github_id !== '' ? userState.user.github_id : '未绑定'}
value={
userState.user && userState.user.github_id !== ''
? userState.user.github_id
: '未绑定'
}
readonly={true}
></Input>
</div>
@@ -440,11 +509,12 @@ const PersonalSetting = () => {
onClick={() => {
onGitHubOAuthClicked(status.github_client_id);
}}
disabled={(userState.user && userState.user.github_id !== '') || !status.github_oauth}
>
{
status.github_oauth ? '绑定' : '未启用'
disabled={
(userState.user && userState.user.github_id !== '') ||
!status.github_oauth
}
>
{status.github_oauth ? '绑定' : '未启用'}
</Button>
</div>
</div>
@@ -452,33 +522,56 @@ const PersonalSetting = () => {
<div style={{ marginTop: 10 }}>
<Typography.Text strong>Telegram</Typography.Text>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div
style={{ display: 'flex', justifyContent: 'space-between' }}
>
<div>
<Input
value={userState.user && userState.user.telegram_id !== '' ? userState.user.telegram_id : '未绑定'}
value={
userState.user && userState.user.telegram_id !== ''
? userState.user.telegram_id
: '未绑定'
}
readonly={true}
></Input>
</div>
<div>
{status.telegram_oauth ?
userState.user.telegram_id !== '' ? <Button disabled={true}>已绑定</Button>
: <TelegramLoginButton dataAuthUrl="/api/oauth/telegram/bind"
botName={status.telegram_bot_name} />
: <Button disabled={true}>未启用</Button>
}
{status.telegram_oauth ? (
userState.user.telegram_id !== '' ? (
<Button disabled={true}>已绑定</Button>
) : (
<TelegramLoginButton
dataAuthUrl='/api/oauth/telegram/bind'
botName={status.telegram_bot_name}
/>
)
) : (
<Button disabled={true}>未启用</Button>
)}
</div>
</div>
</div>
<div style={{ marginTop: 10 }}>
<Space>
<Button onClick={generateAccessToken}>生成系统访问令牌</Button>
<Button onClick={() => {
setShowChangePasswordModal(true);
}}>修改密码</Button>
<Button type={'danger'} onClick={() => {
setShowAccountDeleteModal(true);
}}>删除个人账户</Button>
<Button onClick={generateAccessToken}>
生成系统访问令牌
</Button>
<Button
onClick={() => {
setShowChangePasswordModal(true);
}}
>
修改密码
</Button>
<Button
type={'danger'}
onClick={() => {
setShowAccountDeleteModal(true);
}}
>
删除个人账户
</Button>
</Space>
{systemToken && (
@@ -489,17 +582,15 @@ const PersonalSetting = () => {
style={{ marginTop: '10px' }}
/>
)}
{
status.wechat_login && (
<Button
onClick={() => {
setShowWeChatBindModal(true);
}}
>
绑定微信账号
</Button>
)
}
{status.wechat_login && (
<Button
onClick={() => {
setShowWeChatBindModal(true);
}}
>
绑定微信账号
</Button>
)}
<Modal
onCancel={() => setShowWeChatBindModal(false)}
// onOpen={() => setShowWeChatBindModal(true)}
@@ -513,12 +604,14 @@ const PersonalSetting = () => {
</p>
</div>
<Input
placeholder="验证码"
name="wechat_verification_code"
placeholder='验证码'
name='wechat_verification_code'
value={inputs.wechat_verification_code}
onChange={(v) => handleInputChange('wechat_verification_code', v)}
onChange={(v) =>
handleInputChange('wechat_verification_code', v)
}
/>
<Button color="" fluid size="large" onClick={bindWeChat}>
<Button color='' fluid size='large' onClick={bindWeChat}>
绑定
</Button>
</Modal>
@@ -534,26 +627,36 @@ const PersonalSetting = () => {
maskClosable={false}
>
<Typography.Title heading={6}>绑定邮箱地址</Typography.Title>
<div style={{ marginTop: 20, display: 'flex', justifyContent: 'space-between' }}>
<div
style={{
marginTop: 20,
display: 'flex',
justifyContent: 'space-between',
}}
>
<Input
fluid
placeholder="输入邮箱地址"
placeholder='输入邮箱地址'
onChange={(value) => handleInputChange('email', value)}
name="email"
type="email"
name='email'
type='email'
/>
<Button onClick={sendVerificationCode}
disabled={disableButton || loading}>
<Button
onClick={sendVerificationCode}
disabled={disableButton || loading}
>
{disableButton ? `重新发送(${countdown})` : '获取验证码'}
</Button>
</div>
<div style={{ marginTop: 10 }}>
<Input
fluid
placeholder="验证码"
name="email_verification_code"
placeholder='验证码'
name='email_verification_code'
value={inputs.email_verification_code}
onChange={(value) => handleInputChange('email_verification_code', value)}
onChange={(value) =>
handleInputChange('email_verification_code', value)
}
/>
</div>
{turnstileEnabled ? (
@@ -576,17 +679,22 @@ const PersonalSetting = () => {
>
<div style={{ marginTop: 20 }}>
<Banner
type="danger"
description="您正在删除自己的帐户,将清空所有数据且不可恢复"
type='danger'
description='您正在删除自己的帐户,将清空所有数据且不可恢复'
closeIcon={null}
/>
</div>
<div style={{ marginTop: 20 }}>
<Input
placeholder={`输入你的账户名 ${userState?.user?.username} 以确认删除`}
name="self_account_deletion_confirmation"
name='self_account_deletion_confirmation'
value={inputs.self_account_deletion_confirmation}
onChange={(value) => handleInputChange('self_account_deletion_confirmation', value)}
onChange={(value) =>
handleInputChange(
'self_account_deletion_confirmation',
value,
)
}
/>
{turnstileEnabled ? (
<Turnstile
@@ -609,17 +717,21 @@ const PersonalSetting = () => {
>
<div style={{ marginTop: 20 }}>
<Input
name="set_new_password"
placeholder="新密码"
name='set_new_password'
placeholder='新密码'
value={inputs.set_new_password}
onChange={(value) => handleInputChange('set_new_password', value)}
onChange={(value) =>
handleInputChange('set_new_password', value)
}
/>
<Input
style={{ marginTop: 20 }}
name="set_new_password_confirmation"
placeholder="确认新密码"
name='set_new_password_confirmation'
placeholder='确认新密码'
value={inputs.set_new_password_confirmation}
onChange={(value) => handleInputChange('set_new_password_confirmation', value)}
onChange={(value) =>
handleInputChange('set_new_password_confirmation', value)
}
/>
{turnstileEnabled ? (
<Turnstile
@@ -634,7 +746,6 @@ const PersonalSetting = () => {
</div>
</Modal>
</div>
</Layout.Content>
</Layout>
</div>