diff --git a/admin-frontend/src/features/subsribeConfigManager/SubscribeModal.tsx b/admin-frontend/src/features/subsribeConfigManager/SubscribeModal.tsx index e35ee3a..26d9d30 100644 --- a/admin-frontend/src/features/subsribeConfigManager/SubscribeModal.tsx +++ b/admin-frontend/src/features/subsribeConfigManager/SubscribeModal.tsx @@ -4,7 +4,7 @@ import { } from '@arco-design/web-react'; import useForm from '@arco-design/web-react/es/Form/useForm'; import { IconInfoCircle } from '@arco-design/web-react/icon'; -import { useAppSelector } from '../../app/hooks'; +import { useAppDispatch, useAppSelector } from '../../app/hooks'; import { selectPlatformConf } from '../globalConf/globalConfSlice'; import { CategoryConfig, SubscribeConfig } from '../../utils/type'; import getTargetName from '../targetName/targetNameReq'; @@ -67,6 +67,7 @@ function SubscribeModal({ const platformConf = useAppSelector(selectPlatformConf); const [updateSub] = useUpdateSubMutation(); const [newSub] = useNewSubMutation(); + const dispatch = useAppDispatch(); const onSubmit = () => { form.validate().then((value: SubscribeConfig) => { @@ -115,7 +116,7 @@ function SubscribeModal({ setPlatformStates(platform); form.setFieldValue('cats', []); if (!platformConf[platform].hasTarget) { - getTargetName(platform, 'default').then((res) => { + dispatch(getTargetName(platform, 'default')).then((res) => { form.setFieldsValue({ targetName: res, target: '', @@ -168,7 +169,7 @@ function SubscribeModal({ { required: hasTarget, message: '请输入账号' }, { validator: (value, callback) => new Promise((resolve) => { - getTargetName(form.getFieldValue('platformName'), value) + dispatch(getTargetName(form.getFieldValue('platformName'), value)) .then((res) => { if (res) { form.setFieldsValue({ diff --git a/admin-frontend/src/features/targetName/targetNameReq.ts b/admin-frontend/src/features/targetName/targetNameReq.ts index 538b9a1..a3b469d 100644 --- a/admin-frontend/src/features/targetName/targetNameReq.ts +++ b/admin-frontend/src/features/targetName/targetNameReq.ts @@ -1,15 +1,19 @@ -import { RootState, store } from '../../app/store'; +import { AppThunk } from '../../app/store'; import { baseUrl } from '../../utils/urls'; -export default async function getTargetName(platformName: string, target: string) { - const url = `${baseUrl}target_name?platformName=${platformName}&target=${target}`; - const state = store.getState() as RootState; - const authToken = state.auth.token; - const res = await fetch(url, { - headers: { - Authorization: `Bearer ${authToken}`, - }, - }); - const resObj = await res.json(); - return resObj.targetName as string; -} +// eslint-disable-next-line +export const getTargetName = + (platformName: string, target: string): AppThunk> => async (_, getState) => { + const url = `${baseUrl}target_name?platformName=${platformName}&target=${target}`; + const state = getState(); + const authToken = state.auth.token; + const res = await fetch(url, { + headers: { + Authorization: `Bearer ${authToken}`, + }, + }); + const resObj = await res.json(); + return resObj.targetName as string; + }; + +export default getTargetName;