import React from 'react'; import { Empty, Form, Modal, Select, } from '@arco-design/web-react'; import { Cookie, SubscribeConfig, SubscribeGroupDetail } from '../../utils/type'; import { useNewCookieTargetMutation } from '../cookieManager/cookieConfigSlice'; import { useGetSubsQuery } from '../subsribeConfigManager/subscribeConfigSlice'; import { useAppSelector } from '../../app/hooks'; import { selectPlatformConf } from '../globalConf/globalConfSlice'; interface SubscribeModalProp { cookie:Cookie| null visible: boolean; setVisible: (arg0: boolean) => void; } export default function CookieTargetModal({ cookie, visible, setVisible, }: SubscribeModalProp) { if (!cookie) { return ; } const [newCookieTarget] = useNewCookieTargetMutation(); const FormItem = Form.Item; // 筛选出当前Cookie支持的平台 const platformConf = useAppSelector(selectPlatformConf); const platformThatSiteSupport = Object.values(platformConf).reduce((p, c) => { if (c.siteName in p) { p[c.siteName].push(c.platformName); } else { p[c.siteName] = [c.platformName]; } return p; }, {} as Record); const supportedPlatform = platformThatSiteSupport[cookie.site_name]; const { data: subs } = useGetSubsQuery(); const pureSubs:SubscribeConfig[] = subs ? Object.values(subs) .reduce(( pv:Array, cv:SubscribeGroupDetail, ) => pv.concat(cv.subscribes), []) : []; const filteredSubs = pureSubs.filter((sub) => supportedPlatform.includes(sub.platformName)); const [index, setIndex] = React.useState(-1); const handleSubmit = (idx:number) => { const postPromise: ReturnType = newCookieTarget({ cookieId: cookie.id, platformName: filteredSubs[idx].platformName, target: filteredSubs[idx].target, }); postPromise.then(() => { setVisible(false); }); }; const { Option } = Select; return ( setVisible(false)} onOk={() => handleSubmit(index)} >
); }