import { toast } from 'react-toastify'; import { toastConstants } from '../constants'; import React from 'react'; const HTMLToastContent = ({ htmlContent }) => { return
; }; export default HTMLToastContent; export function isAdmin() { let user = localStorage.getItem('user'); if (!user) return false; user = JSON.parse(user); return user.role >= 10; } export function isRoot() { let user = localStorage.getItem('user'); if (!user) return false; user = JSON.parse(user); return user.role >= 100; } export function getSystemName() { let system_name = localStorage.getItem('system_name'); if (!system_name) return 'One API'; return system_name; } export function getLogo() { let logo = localStorage.getItem('logo'); if (!logo) return '/logo.png'; return logo } export function getFooterHTML() { return localStorage.getItem('footer_html'); } export async function copy(text) { let okay = true; try { await navigator.clipboard.writeText(text); } catch (e) { okay = false; console.error(e); } return okay; } export function isMobile() { return window.innerWidth <= 600; } let showErrorOptions = { autoClose: toastConstants.ERROR_TIMEOUT }; let showWarningOptions = { autoClose: toastConstants.WARNING_TIMEOUT }; let showSuccessOptions = { autoClose: toastConstants.SUCCESS_TIMEOUT }; let showInfoOptions = { autoClose: toastConstants.INFO_TIMEOUT }; let showNoticeOptions = { autoClose: false }; if (isMobile()) { showErrorOptions.position = 'top-center'; // showErrorOptions.transition = 'flip'; showSuccessOptions.position = 'top-center'; // showSuccessOptions.transition = 'flip'; showInfoOptions.position = 'top-center'; // showInfoOptions.transition = 'flip'; showNoticeOptions.position = 'top-center'; // showNoticeOptions.transition = 'flip'; } export function showError(error) { console.error(error); if (error.message) { if (error.name === 'AxiosError') { switch (error.response.status) { case 401: // toast.error('错误:未登录或登录已过期,请重新登录!', showErrorOptions); window.location.href = '/login?expired=true'; break; case 429: toast.error('错误:请求次数过多,请稍后再试!', showErrorOptions); break; case 500: toast.error('错误:服务器内部错误,请联系管理员!', showErrorOptions); break; case 405: toast.info('本站仅作演示之用,无服务端!'); break; default: toast.error('错误:' + error.message, showErrorOptions); } return; } toast.error('错误:' + error.message, showErrorOptions); } else { toast.error('错误:' + error, showErrorOptions); } } export function showWarning(message) { toast.warn(message, showWarningOptions); } export function showSuccess(message) { toast.success(message, showSuccessOptions); } export function showInfo(message) { toast.info(message, showInfoOptions); } export function showNotice(message, isHTML = false) { if (isHTML) { toast(