import React, { useCallback, useEffect, useState } from "react"; import Header from "components/header"; import Footer from "components/footer"; import styles from "styles/app.module.scss"; import ruleAddImg from "assets/images/rule_add.svg"; import templateSettingImg from "assets/images/template_setting.svg"; import worktypeSettingImg from "assets/images/worktype_setting.svg"; import groupSettingImg from "assets/images/group_setting.svg"; import { AppDispatch } from "app/store"; import { useTranslation } from "react-i18next"; import { useDispatch, useSelector } from "react-redux"; import { deleteWorkflowAsync, listWorkflowAsync, changeSelectedWorkflow, selectIsLoading, selectWorkflows, } from "features/workflow"; import { DelegationBar } from "components/delegate"; import { selectDelegationAccessToken } from "features/auth/selectors"; import progress_activit from "assets/images/progress_activit.svg"; import { getTranslationID } from "translation"; import { useNavigate } from "react-router-dom"; import { EditWorkflowPopup } from "./editworkflowPopup"; import { AddWorkflowPopup } from "./addworkflowPopup"; const WorkflowPage: React.FC = (): JSX.Element => { const dispatch: AppDispatch = useDispatch(); const [t] = useTranslation(); const navigate = useNavigate(); // 追加Popupの表示制御 const [isShowAddPopup, setIsShowAddPopup] = useState(false); // 編集Popupの表示制御 const [isShowEditPopup, setIsShowEditPopup] = useState(false); // 代行操作用のトークンを取得する const delegationAccessToken = useSelector(selectDelegationAccessToken); const workflows = useSelector(selectWorkflows); const isLoading = useSelector(selectIsLoading); useEffect(() => { dispatch(listWorkflowAsync()); }, [dispatch]); // ワークフロー削除 const onDeleteWorkflow = useCallback( async (workflowId: number) => { if ( /* eslint-disable-next-line no-alert */ !window.confirm(t(getTranslationID("common.message.dialogConfirm"))) ) { return; } const { meta } = await dispatch(deleteWorkflowAsync({ workflowId })); if (meta.requestStatus === "fulfilled") { dispatch(listWorkflowAsync()); } }, [dispatch, t] ); return ( <> {isShowAddPopup && ( { setIsShowAddPopup(false); }} /> )} {isShowEditPopup && ( { setIsShowEditPopup(false); }} /> )}
{delegationAccessToken && }

{t(getTranslationID("workflowPage.label.title"))}

{workflows?.map((workflow) => ( ))}
{/** empty th */} {t(getTranslationID("workflowPage.label.authorID"))} {t(getTranslationID("workflowPage.label.worktype"))} {t( getTranslationID("workflowPage.label.transcriptionist") )} {t(getTranslationID("workflowPage.label.template"))}
{workflow.author.authorId} {workflow.worktype?.worktypeId ?? "-"} {workflow.typists.map((typist, i) => ( <> {typist.typistName} {i !== workflow.typists.length - 1 &&
} ))}
{workflow.template?.fileName ?? "-"}
{!isLoading && (workflows === undefined || workflows.length === 0) && (

{t(getTranslationID("common.message.listEmpty"))}

)} {isLoading && ( Loading )}
); }; export default WorkflowPage;