import { Toast } from '@douyinfe/semi-ui'; import { toastConstants } from '../constants'; import React from 'react'; import {toast} from "react-toastify"; 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 'Neko 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('错误:请求次数过多,请稍后再试!'); break; case 500: Toast.error('错误:服务器内部错误,请联系管理员!'); break; case 405: Toast.info('本站仅作演示之用,无服务端!'); break; default: Toast.error('错误:' + error.message); } return; } Toast.error('错误:' + error.message); } else { Toast.error('错误:' + error); } } export function showWarning(message) { Toast.warning(message); } export function showSuccess(message) { Toast.success(message); } export function showInfo(message) { Toast.info(message); } export function showNotice(message, isHTML = false) { if (isHTML) { toast(