diff --git a/client/web/src/plugin/common/reg.ts b/client/web/src/plugin/common/reg.ts index 5c2cb0a0..55391271 100644 --- a/client/web/src/plugin/common/reg.ts +++ b/client/web/src/plugin/common/reg.ts @@ -314,3 +314,11 @@ export const [pluginGroupConfigItems, regPluginGroupConfigItem] = buildRegList<{ loading: boolean; }) => ReactElement; }>(); + +/** + * 注册登录操作 + */ +export const [pluginLoginAction, regLoginAction] = buildRegList<{ + name: string; + component: React.ComponentType; +}>(); diff --git a/client/web/src/routes/Entry/LoginView.tsx b/client/web/src/routes/Entry/LoginView.tsx index d4b7b1ed..c17d6631 100644 --- a/client/web/src/routes/Entry/LoginView.tsx +++ b/client/web/src/routes/Entry/LoginView.tsx @@ -4,12 +4,10 @@ import { isValidStr, loginWithEmail, t, - useAppSelector, useAsyncFn, useGlobalConfigStore, } from 'tailchat-shared'; import React, { useEffect, useState } from 'react'; -import { Spinner } from '../../components/Spinner'; import { string } from 'yup'; import { useLocation, useNavigate } from 'react-router'; import { setUserJWT } from '../../utils/jwt-helper'; @@ -23,6 +21,7 @@ import { LanguageSelect } from '@/components/LanguageSelect'; import { EntryInput } from './components/Input'; import { SecondaryBtn } from './components/SecondaryBtn'; import { PrimaryBtn } from './components/PrimaryBtn'; +import { pluginLoginAction } from '@/plugin/common'; /** * TODO: @@ -156,6 +155,12 @@ export const LoginView: React.FC = React.memo(() => { )} + + {pluginLoginAction.map((item) => { + const { name, component: Component } = item; + + return ; + })}
diff --git a/client/web/src/routes/Entry/components/PrimaryBtn.tsx b/client/web/src/routes/Entry/components/PrimaryBtn.tsx index 06c75971..3ac3a4fa 100644 --- a/client/web/src/routes/Entry/components/PrimaryBtn.tsx +++ b/client/web/src/routes/Entry/components/PrimaryBtn.tsx @@ -1,6 +1,7 @@ import { Spinner } from '@/components/Spinner'; import clsx from 'clsx'; import React, { ButtonHTMLAttributes } from 'react'; +import _omit from 'lodash/omit'; export const PrimaryBtn: React.FC< ButtonHTMLAttributes & { @@ -10,7 +11,7 @@ export const PrimaryBtn: React.FC< return (