/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React from 'react'; import { Modal, Button, Checkbox } from '@douyinfe/semi-ui'; import { getTaskLogsColumns } from '../TaskLogsColumnDefs'; const ColumnSelectorModal = ({ showColumnSelector, setShowColumnSelector, visibleColumns, handleColumnVisibilityChange, handleSelectAll, initDefaultColumns, COLUMN_KEYS, isAdminUser, copyText, openContentModal, t, }) => { // Get all columns for display in selector const allColumns = getTaskLogsColumns({ t, COLUMN_KEYS, copyText, openContentModal, isAdminUser, }); return ( setShowColumnSelector(false)} footer={
} >
v === true)} indeterminate={ Object.values(visibleColumns).some((v) => v === true) && !Object.values(visibleColumns).every((v) => v === true) } onChange={(e) => handleSelectAll(e.target.checked)} > {t('全选')}
{allColumns.map((column) => { // Skip admin-only columns for non-admin users if (!isAdminUser && column.key === COLUMN_KEYS.CHANNEL) { return null; } return (
handleColumnVisibilityChange(column.key, e.target.checked) } > {column.title}
); })}
); }; export default ColumnSelectorModal;