mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 15:53:42 +08:00 
			
		
		
		
	chore: update default theme style
This commit is contained in:
		@@ -1,6 +1,21 @@
 | 
			
		||||
import React, { useEffect, useState } from 'react';
 | 
			
		||||
import { Button, Form, Grid, Header, Image, Segment } from 'semantic-ui-react';
 | 
			
		||||
import { API, copy, showError, showInfo, showNotice, showSuccess } from '../helpers';
 | 
			
		||||
import {
 | 
			
		||||
  Button,
 | 
			
		||||
  Form,
 | 
			
		||||
  Grid,
 | 
			
		||||
  Header,
 | 
			
		||||
  Image,
 | 
			
		||||
  Card,
 | 
			
		||||
  Message,
 | 
			
		||||
} from 'semantic-ui-react';
 | 
			
		||||
import {
 | 
			
		||||
  API,
 | 
			
		||||
  copy,
 | 
			
		||||
  showError,
 | 
			
		||||
  showInfo,
 | 
			
		||||
  showNotice,
 | 
			
		||||
  showSuccess,
 | 
			
		||||
} from '../helpers';
 | 
			
		||||
import { useSearchParams } from 'react-router-dom';
 | 
			
		||||
 | 
			
		||||
const PasswordResetConfirm = () => {
 | 
			
		||||
@@ -37,7 +52,7 @@ const PasswordResetConfirm = () => {
 | 
			
		||||
      setDisableButton(false);
 | 
			
		||||
      setCountdown(30);
 | 
			
		||||
    }
 | 
			
		||||
    return () => clearInterval(countdownInterval); 
 | 
			
		||||
    return () => clearInterval(countdownInterval);
 | 
			
		||||
  }, [disableButton, countdown]);
 | 
			
		||||
 | 
			
		||||
  async function handleSubmit(e) {
 | 
			
		||||
@@ -59,55 +74,82 @@ const PasswordResetConfirm = () => {
 | 
			
		||||
    }
 | 
			
		||||
    setLoading(false);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <Grid textAlign='center' style={{ marginTop: '48px' }}>
 | 
			
		||||
      <Grid.Column style={{ maxWidth: 450 }}>
 | 
			
		||||
        <Header as='h2' color='' textAlign='center'>
 | 
			
		||||
          <Image src='/logo.png' /> 密码重置确认
 | 
			
		||||
        </Header>
 | 
			
		||||
        <Form size='large'>
 | 
			
		||||
          <Segment>
 | 
			
		||||
            <Form.Input
 | 
			
		||||
              fluid
 | 
			
		||||
              icon='mail'
 | 
			
		||||
              iconPosition='left'
 | 
			
		||||
              placeholder='邮箱地址'
 | 
			
		||||
              name='email'
 | 
			
		||||
              value={email}
 | 
			
		||||
              readOnly
 | 
			
		||||
            />
 | 
			
		||||
            {newPassword && (
 | 
			
		||||
        <Card
 | 
			
		||||
          fluid
 | 
			
		||||
          className='chart-card'
 | 
			
		||||
          style={{ boxShadow: '0 1px 3px rgba(0,0,0,0.12)' }}
 | 
			
		||||
        >
 | 
			
		||||
          <Card.Content>
 | 
			
		||||
            <Card.Header>
 | 
			
		||||
              <Header
 | 
			
		||||
                as='h2'
 | 
			
		||||
                textAlign='center'
 | 
			
		||||
                style={{ marginBottom: '1.5em' }}
 | 
			
		||||
              >
 | 
			
		||||
                <Image src='/logo.png' style={{ marginBottom: '10px' }} />
 | 
			
		||||
                <Header.Content>密码重置确认</Header.Content>
 | 
			
		||||
              </Header>
 | 
			
		||||
            </Card.Header>
 | 
			
		||||
            <Form size='large'>
 | 
			
		||||
              <Form.Input
 | 
			
		||||
              fluid
 | 
			
		||||
              icon='lock'
 | 
			
		||||
              iconPosition='left'
 | 
			
		||||
              placeholder='新密码'
 | 
			
		||||
              name='newPassword'
 | 
			
		||||
              value={newPassword}
 | 
			
		||||
              readOnly
 | 
			
		||||
              onClick={(e) => {
 | 
			
		||||
                e.target.select();
 | 
			
		||||
                navigator.clipboard.writeText(newPassword);
 | 
			
		||||
                showNotice(`密码已复制到剪贴板:${newPassword}`);
 | 
			
		||||
              }}
 | 
			
		||||
            />            
 | 
			
		||||
                fluid
 | 
			
		||||
                icon='mail'
 | 
			
		||||
                iconPosition='left'
 | 
			
		||||
                placeholder='邮箱地址'
 | 
			
		||||
                name='email'
 | 
			
		||||
                value={email}
 | 
			
		||||
                readOnly
 | 
			
		||||
                style={{ marginBottom: '1em' }}
 | 
			
		||||
              />
 | 
			
		||||
              {newPassword && (
 | 
			
		||||
                <Form.Input
 | 
			
		||||
                  fluid
 | 
			
		||||
                  icon='lock'
 | 
			
		||||
                  iconPosition='left'
 | 
			
		||||
                  placeholder='新密码'
 | 
			
		||||
                  name='newPassword'
 | 
			
		||||
                  value={newPassword}
 | 
			
		||||
                  readOnly
 | 
			
		||||
                  style={{
 | 
			
		||||
                    marginBottom: '1em',
 | 
			
		||||
                    cursor: 'pointer',
 | 
			
		||||
                    backgroundColor: '#f8f9fa',
 | 
			
		||||
                  }}
 | 
			
		||||
                  onClick={(e) => {
 | 
			
		||||
                    e.target.select();
 | 
			
		||||
                    navigator.clipboard.writeText(newPassword);
 | 
			
		||||
                    showNotice(`密码已复制到剪贴板:${newPassword}`);
 | 
			
		||||
                  }}
 | 
			
		||||
                />
 | 
			
		||||
              )}
 | 
			
		||||
              <Button
 | 
			
		||||
                color='blue'
 | 
			
		||||
                fluid
 | 
			
		||||
                size='large'
 | 
			
		||||
                onClick={handleSubmit}
 | 
			
		||||
                loading={loading}
 | 
			
		||||
                disabled={disableButton}
 | 
			
		||||
                style={{ marginBottom: '1em' }}
 | 
			
		||||
              >
 | 
			
		||||
                {disableButton ? '密码重置完成' : '提交'}
 | 
			
		||||
              </Button>
 | 
			
		||||
            </Form>
 | 
			
		||||
            {newPassword && (
 | 
			
		||||
              <Message style={{ background: 'transparent', boxShadow: 'none' }}>
 | 
			
		||||
                <p style={{ fontSize: '0.9em', color: '#666' }}>
 | 
			
		||||
                  新密码已生成,请点击密码框或上方按钮复制。请及时登录并修改密码!
 | 
			
		||||
                </p>
 | 
			
		||||
              </Message>
 | 
			
		||||
            )}
 | 
			
		||||
            <Button
 | 
			
		||||
              color='green'
 | 
			
		||||
              fluid
 | 
			
		||||
              size='large'
 | 
			
		||||
              onClick={handleSubmit}
 | 
			
		||||
              loading={loading}
 | 
			
		||||
              disabled={disableButton}
 | 
			
		||||
            >
 | 
			
		||||
              {disableButton ? `密码重置完成` : '提交'}
 | 
			
		||||
            </Button>
 | 
			
		||||
          </Segment>
 | 
			
		||||
        </Form>
 | 
			
		||||
          </Card.Content>
 | 
			
		||||
        </Card>
 | 
			
		||||
      </Grid.Column>
 | 
			
		||||
    </Grid>
 | 
			
		||||
  );  
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default PasswordResetConfirm;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,19 @@
 | 
			
		||||
import React, { useEffect, useState } from 'react';
 | 
			
		||||
import { Button, Form, Grid, Header, Image, Segment } from 'semantic-ui-react';
 | 
			
		||||
import {
 | 
			
		||||
  Button,
 | 
			
		||||
  Form,
 | 
			
		||||
  Grid,
 | 
			
		||||
  Header,
 | 
			
		||||
  Image,
 | 
			
		||||
  Card,
 | 
			
		||||
  Message,
 | 
			
		||||
} from 'semantic-ui-react';
 | 
			
		||||
import { API, showError, showInfo, showSuccess } from '../helpers';
 | 
			
		||||
import Turnstile from 'react-turnstile';
 | 
			
		||||
 | 
			
		||||
const PasswordResetForm = () => {
 | 
			
		||||
  const [inputs, setInputs] = useState({
 | 
			
		||||
    email: ''
 | 
			
		||||
    email: '',
 | 
			
		||||
  });
 | 
			
		||||
  const { email } = inputs;
 | 
			
		||||
 | 
			
		||||
@@ -42,7 +50,7 @@ const PasswordResetForm = () => {
 | 
			
		||||
 | 
			
		||||
  function handleChange(e) {
 | 
			
		||||
    const { name, value } = e.target;
 | 
			
		||||
    setInputs(inputs => ({ ...inputs, [name]: value }));
 | 
			
		||||
    setInputs((inputs) => ({ ...inputs, [name]: value }));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async function handleSubmit(e) {
 | 
			
		||||
@@ -69,42 +77,68 @@ const PasswordResetForm = () => {
 | 
			
		||||
  return (
 | 
			
		||||
    <Grid textAlign='center' style={{ marginTop: '48px' }}>
 | 
			
		||||
      <Grid.Column style={{ maxWidth: 450 }}>
 | 
			
		||||
        <Header as='h2' color='' textAlign='center'>
 | 
			
		||||
          <Image src='/logo.png' /> 密码重置
 | 
			
		||||
        </Header>
 | 
			
		||||
        <Form size='large'>
 | 
			
		||||
          <Segment>
 | 
			
		||||
            <Form.Input
 | 
			
		||||
              fluid
 | 
			
		||||
              icon='mail'
 | 
			
		||||
              iconPosition='left'
 | 
			
		||||
              placeholder='邮箱地址'
 | 
			
		||||
              name='email'
 | 
			
		||||
              value={email}
 | 
			
		||||
              onChange={handleChange}
 | 
			
		||||
            />
 | 
			
		||||
            {turnstileEnabled ? (
 | 
			
		||||
              <Turnstile
 | 
			
		||||
                sitekey={turnstileSiteKey}
 | 
			
		||||
                onVerify={(token) => {
 | 
			
		||||
                  setTurnstileToken(token);
 | 
			
		||||
                }}
 | 
			
		||||
        <Card
 | 
			
		||||
          fluid
 | 
			
		||||
          className='chart-card'
 | 
			
		||||
          style={{ boxShadow: '0 1px 3px rgba(0,0,0,0.12)' }}
 | 
			
		||||
        >
 | 
			
		||||
          <Card.Content>
 | 
			
		||||
            <Card.Header>
 | 
			
		||||
              <Header
 | 
			
		||||
                as='h2'
 | 
			
		||||
                textAlign='center'
 | 
			
		||||
                style={{ marginBottom: '1.5em' }}
 | 
			
		||||
              >
 | 
			
		||||
                <Image src='/logo.png' style={{ marginBottom: '10px' }} />
 | 
			
		||||
                <Header.Content>密码重置</Header.Content>
 | 
			
		||||
              </Header>
 | 
			
		||||
            </Card.Header>
 | 
			
		||||
            <Form size='large'>
 | 
			
		||||
              <Form.Input
 | 
			
		||||
                fluid
 | 
			
		||||
                icon='mail'
 | 
			
		||||
                iconPosition='left'
 | 
			
		||||
                placeholder='邮箱地址'
 | 
			
		||||
                name='email'
 | 
			
		||||
                value={email}
 | 
			
		||||
                onChange={handleChange}
 | 
			
		||||
                style={{ marginBottom: '1em' }}
 | 
			
		||||
              />
 | 
			
		||||
            ) : (
 | 
			
		||||
              <></>
 | 
			
		||||
            )}
 | 
			
		||||
            <Button
 | 
			
		||||
              color='green'
 | 
			
		||||
              fluid
 | 
			
		||||
              size='large'
 | 
			
		||||
              onClick={handleSubmit}
 | 
			
		||||
              loading={loading}
 | 
			
		||||
              disabled={disableButton}
 | 
			
		||||
            >
 | 
			
		||||
              {disableButton ? `重试 (${countdown})` : '提交'}
 | 
			
		||||
            </Button>
 | 
			
		||||
          </Segment>
 | 
			
		||||
        </Form>
 | 
			
		||||
              {turnstileEnabled && (
 | 
			
		||||
                <div
 | 
			
		||||
                  style={{
 | 
			
		||||
                    marginBottom: '1em',
 | 
			
		||||
                    display: 'flex',
 | 
			
		||||
                    justifyContent: 'center',
 | 
			
		||||
                  }}
 | 
			
		||||
                >
 | 
			
		||||
                  <Turnstile
 | 
			
		||||
                    sitekey={turnstileSiteKey}
 | 
			
		||||
                    onVerify={(token) => {
 | 
			
		||||
                      setTurnstileToken(token);
 | 
			
		||||
                    }}
 | 
			
		||||
                  />
 | 
			
		||||
                </div>
 | 
			
		||||
              )}
 | 
			
		||||
              <Button
 | 
			
		||||
                color='blue'
 | 
			
		||||
                fluid
 | 
			
		||||
                size='large'
 | 
			
		||||
                onClick={handleSubmit}
 | 
			
		||||
                loading={loading}
 | 
			
		||||
                disabled={disableButton}
 | 
			
		||||
                style={{ marginBottom: '1em' }}
 | 
			
		||||
              >
 | 
			
		||||
                {disableButton ? `重试 (${countdown})` : '提交'}
 | 
			
		||||
              </Button>
 | 
			
		||||
            </Form>
 | 
			
		||||
            <Message style={{ background: 'transparent', boxShadow: 'none' }}>
 | 
			
		||||
              <p style={{ fontSize: '0.9em', color: '#666' }}>
 | 
			
		||||
                系统将向您的邮箱发送一封包含重置链接的邮件,请注意查收。
 | 
			
		||||
              </p>
 | 
			
		||||
            </Message>
 | 
			
		||||
          </Card.Content>
 | 
			
		||||
        </Card>
 | 
			
		||||
      </Grid.Column>
 | 
			
		||||
    </Grid>
 | 
			
		||||
  );
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user