import React, { useState } from 'react'; import { Button, Empty, Message, Popconfirm, Space, Table, Tag, Typography, } from '@arco-design/web-react'; import { useParams } from 'react-router-dom'; import { useDeleteSubMutation, useGetSubsQuery } from './subscribeConfigSlice'; import { useAppSelector } from '../../app/hooks'; import { selectPlatformConf } from '../globalConf/globalConfSlice'; import { SubscribeConfig } from '../../utils/type'; import SubscribeModal from './SubscribeModal'; export default function SubscribeManager() { const { data: subs } = useGetSubsQuery(); const [deleteSub, { isLoading: deleteIsLoading }] = useDeleteSubMutation(); const { groupNumber } = useParams(); const platformConf = useAppSelector(selectPlatformConf); const isLoading = deleteIsLoading; const [showModal, setShowModal] = useState(false); const [formInitVal, setFormInitVal] = useState(null as SubscribeConfig | null); const handleNewSub = () => { setFormInitVal(null); setShowModal(true); }; const handleEdit = (sub: SubscribeConfig) => () => { setFormInitVal(sub); setShowModal(true); }; const columns = [ { title: '平台名称', dataIndex: 'platformName', render: (col: string, record: SubscribeConfig) => ( {platformConf[record.platformName].name} ), width: '7em', }, { title: '帐号名称', dataIndex: 'targetName', width: '10em' }, { title: '订阅帐号', dataIndex: 'target', width: '10em' }, { title: '订阅分类', dataIndex: 'cats', ellipsis: true, render: (col: string[], record: SubscribeConfig) => ( { record.cats.map((catNumber: number) => ( {platformConf[record.platformName].categories[catNumber]} )) } ), width: '20em', }, { title: '订阅标签', dataIndex: 'tags', render: (col: string[], record: SubscribeConfig) => ( { record.tags.length === 0 ? 全部标签 : record.tags.map((tag: string) => ( {tag} )) } ), width: '20em', }, { title: '操作', dataIndex: 'op', render: (_: null, record: SubscribeConfig) => ( { deleteSub({ groupNumber: parseInt(groupNumber || '0', 10), target: record.target, platformName: record.platformName, }); }} > ), width: '16em', }, ]; if (subs && groupNumber) { return ( <> {subs[groupNumber].name} {groupNumber} `${record.platformName}-${record.target}`} loading={isLoading} scroll={{ x: true }} /> ); } return ; }