diff --git a/src/index-widget.tsx b/src/index-widget.tsx index 33f8d476..2c7e90c4 100644 --- a/src/index-widget.tsx +++ b/src/index-widget.tsx @@ -6,6 +6,7 @@ import './assets/index.css'; import store from "./app/store"; import './i18n'; import { isDarkMode } from "./common/utils"; +import { Toaster } from "react-hot-toast"; const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement); const hostId = new URLSearchParams(location.search).get("host") || 1; @@ -18,6 +19,9 @@ if (isDarkMode()) { root.render( hostId ? + : null diff --git a/src/widget/Popup/Login/index.tsx b/src/widget/Popup/Login/index.tsx index cd01e7ed..3dc19c7f 100644 --- a/src/widget/Popup/Login/index.tsx +++ b/src/widget/Popup/Login/index.tsx @@ -1,6 +1,7 @@ // import React from 'react' import clsx from 'clsx'; import { FormEvent, useEffect } from 'react'; +import { toast } from 'react-hot-toast'; import { useDispatch } from 'react-redux'; import { useRegisterMutation } from '../../../app/services/auth'; import { useGetLoginConfigQuery } from '../../../app/services/server'; @@ -21,7 +22,7 @@ const Login = () => { const { color, fgColor, from } = useWidget(); const { clientId } = useGoogleAuthConfig(); const { config: githubAuthConfig } = useGithubAuthConfig(); - const [register, { isLoading, isSuccess, data }] = useRegisterMutation(); + const [register, { isLoading, isSuccess, data, error }] = useRegisterMutation(); const { data: loginConfig, isSuccess: loginConfigSuccess } = useGetLoginConfigQuery(); const handleSubmit = (evt: FormEvent) => { evt.preventDefault(); @@ -47,6 +48,20 @@ const Login = () => { dispatch(setAuthData(data)); } }, [isSuccess, data]); + // 报错处理 + useEffect(() => { + if (error) { + switch (error.status) { + case 409: + toast.error("Email existed already!"); + break; + default: + toast.error("Something error!"); + break; + } + } + }, [error]); + if (!loginConfigSuccess) return null;