/* 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 CardPro from '../../common/ui/CardPro'; import ModelsTable from './ModelsTable'; import ModelsActions from './ModelsActions'; import ModelsFilters from './ModelsFilters'; import ModelsTabs from './ModelsTabs'; import EditModelModal from './modals/EditModelModal'; import EditVendorModal from './modals/EditVendorModal'; import { useModelsData } from '../../../hooks/models/useModelsData'; import { useIsMobile } from '../../../hooks/common/useIsMobile'; import { createCardProPagination } from '../../../helpers/utils'; const ModelsPage = () => { const modelsData = useModelsData(); const isMobile = useIsMobile(); const { // Edit state showEdit, editingModel, closeEdit, refresh, // Actions state selectedKeys, setSelectedKeys, setEditingModel, setShowEdit, batchDeleteModels, // Filters state formInitValues, setFormApi, searchModels, loading, searching, // Description state compactMode, setCompactMode, // Vendor state showAddVendor, setShowAddVendor, showEditVendor, setShowEditVendor, editingVendor, setEditingVendor, loadVendors, // Translation t, } = modelsData; return ( <> { setShowAddVendor(false); setShowEditVendor(false); setEditingVendor({ id: undefined }); }} editingVendor={showEditVendor ? editingVendor : { id: undefined }} refresh={() => { loadVendors(); refresh(); }} /> } actionsArea={
} paginationArea={createCardProPagination({ currentPage: modelsData.activePage, pageSize: modelsData.pageSize, total: modelsData.modelCount, onPageChange: modelsData.handlePageChange, onPageSizeChange: modelsData.handlePageSizeChange, isMobile: isMobile, t: modelsData.t, })} t={modelsData.t} >
); }; export default ModelsPage;