import React, { useEffect, useState } from 'react'; import { Button, Form, Grid, Header, Segment, Statistic } from 'semantic-ui-react'; import { API, showError, showInfo, showSuccess } from '../../helpers'; import { renderQuota } from '../../helpers/render'; const TopUp = () => { const [redemptionCode, setRedemptionCode] = useState(''); const [topUpLink, setTopUpLink] = useState(''); const [userQuota, setUserQuota] = useState(0); const [isSubmitting, setIsSubmitting] = useState(false); const topUp = async () => { if (redemptionCode === '') { showInfo('请输入充值码!') return; } setIsSubmitting(true); try { const res = await API.post('/api/user/topup', { key: redemptionCode }); const { success, message, data } = res.data; if (success) { showSuccess('充值成功!'); setUserQuota((quota) => { return quota + data; }); setRedemptionCode(''); } else { showError(message); } } catch (err) { showError('请求失败'); } finally { setIsSubmitting(false); } }; const openTopUpLink = () => { if (!topUpLink) { showError('超级管理员未设置充值链接!'); return; } window.open(topUpLink, '_blank'); }; const getUserQuota = async ()=>{ let res = await API.get(`/api/user/self`); const {success, message, data} = res.data; if (success) { setUserQuota(data.quota); } else { showError(message); } } useEffect(() => { let status = localStorage.getItem('status'); if (status) { status = JSON.parse(status); if (status.top_up_link) { setTopUpLink(status.top_up_link); } } getUserQuota().then(); }, []); return (
充值额度
{ setRedemptionCode(e.target.value); }} />
{renderQuota(userQuota)} 剩余额度
); }; export default TopUp;