diff --git a/DEPENDENCIES b/DEPENDENCIES index da27e2af0..ecc509099 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -446,7 +446,7 @@ npm/npmjs/-/resolve/1.22.8, MIT AND ISC, approved, #15315 npm/npmjs/-/resolve/2.0.0-next.5, MIT AND ISC, approved, #3078 npm/npmjs/-/reusify/1.0.4, MIT, approved, clearlydefined npm/npmjs/-/rimraf/3.0.2, ISC, approved, clearlydefined -npm/npmjs/-/rollup/4.24.0, MIT, approved, clearlydefined +npm/npmjs/-/rollup/4.24.0, MIT AND (ISC AND MIT), approved, #16917 npm/npmjs/-/run-parallel/1.2.0, MIT, approved, clearlydefined npm/npmjs/-/safe-array-concat/1.1.2, MIT, approved, clearlydefined npm/npmjs/-/safe-regex-test/1.0.3, MIT, approved, clearlydefined @@ -690,22 +690,22 @@ npm/npmjs/@react-hook/latest/1.0.3, MIT, approved, clearlydefined npm/npmjs/@reduxjs/toolkit/2.2.7, MIT AND (BSD-2-Clause AND ISC AND MIT) AND Apache-2.0, approved, #14170 npm/npmjs/@remix-run/router/1.19.2, MIT, approved, clearlydefined npm/npmjs/@rollup/pluginutils/5.1.2, MIT, approved, #16428 -npm/npmjs/@rollup/rollup-android-arm-eabi/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-android-arm64/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-darwin-arm64/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-darwin-x64/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-arm-gnueabihf/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-arm-musleabihf/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-arm64-gnu/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-arm64-musl/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-powerpc64le-gnu/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-riscv64-gnu/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-s390x-gnu/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-x64-gnu/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-linux-x64-musl/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-win32-arm64-msvc/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-win32-ia32-msvc/4.24.0, MIT, approved, clearlydefined -npm/npmjs/@rollup/rollup-win32-x64-msvc/4.24.0, MIT, approved, clearlydefined +npm/npmjs/@rollup/rollup-android-arm-eabi/4.24.0, MIT AND (ISC AND MIT), approved, #16904 +npm/npmjs/@rollup/rollup-android-arm64/4.24.0, MIT AND (ISC AND MIT), approved, #16918 +npm/npmjs/@rollup/rollup-darwin-arm64/4.24.0, MIT AND (ISC AND MIT), approved, #16908 +npm/npmjs/@rollup/rollup-darwin-x64/4.24.0, MIT AND (ISC AND MIT), approved, #16901 +npm/npmjs/@rollup/rollup-linux-arm-gnueabihf/4.24.0, MIT AND (ISC AND MIT), approved, #16906 +npm/npmjs/@rollup/rollup-linux-arm-musleabihf/4.24.0, MIT AND (ISC AND MIT), approved, #16914 +npm/npmjs/@rollup/rollup-linux-arm64-gnu/4.24.0, MIT AND (ISC AND MIT), approved, #16910 +npm/npmjs/@rollup/rollup-linux-arm64-musl/4.24.0, MIT AND (ISC AND MIT), approved, #16912 +npm/npmjs/@rollup/rollup-linux-powerpc64le-gnu/4.24.0, MIT AND (ISC AND MIT), approved, #16916 +npm/npmjs/@rollup/rollup-linux-riscv64-gnu/4.24.0, MIT AND (ISC AND MIT), approved, #16907 +npm/npmjs/@rollup/rollup-linux-s390x-gnu/4.24.0, MIT AND (ISC AND MIT), approved, #16919 +npm/npmjs/@rollup/rollup-linux-x64-gnu/4.24.0, MIT AND (ISC AND MIT), approved, #16915 +npm/npmjs/@rollup/rollup-linux-x64-musl/4.24.0, MIT AND (ISC AND MIT), approved, #16911 +npm/npmjs/@rollup/rollup-win32-arm64-msvc/4.24.0, MIT AND (ISC AND MIT), approved, #16909 +npm/npmjs/@rollup/rollup-win32-ia32-msvc/4.24.0, MIT AND (ISC AND MIT), approved, #16913 +npm/npmjs/@rollup/rollup-win32-x64-msvc/4.24.0, MIT AND (ISC AND MIT), approved, #16902 npm/npmjs/@rtsao/scc/1.1.0, MIT, approved, clearlydefined npm/npmjs/@sinclair/typebox/0.27.8, MIT, approved, clearlydefined npm/npmjs/@sinonjs/commons/3.0.1, BSD-3-Clause, approved, #12905 diff --git a/src/assets/locales/de/main.json b/src/assets/locales/de/main.json index 2e38d65f9..9d7f4b777 100644 --- a/src/assets/locales/de/main.json +++ b/src/assets/locales/de/main.json @@ -2316,6 +2316,10 @@ "title": "Assigned Catena-X Portal Roles", "changeRoleBtn": "Change Portal Role", "errorMsg": "Sie sind nicht berechtigt, Ihre eigenen Administrator-Rollen zu ändern. Bitte wenden Sie sich an einen anderen Administrator." + }, + "table": { + "emptySearchTable": "Keine Ergebnisse gefunden", + "emptyTable": "Keine Einträge vorhanden" } }, "global": { diff --git a/src/assets/locales/en/main.json b/src/assets/locales/en/main.json index 8ce25b01e..a65dda4dc 100644 --- a/src/assets/locales/en/main.json +++ b/src/assets/locales/en/main.json @@ -2290,6 +2290,10 @@ "title": "Assigned Catena-X Portal Roles", "changeRoleBtn": "Change Portal Role", "errorMsg": "You are not authorized to change your own admin roles. Please contact another admin." + }, + "table": { + "emptySearchTable": "No results found", + "emptyTable": "No items to display" } }, "global": { diff --git a/src/components/overlays/AddAppUserRoles/UserListContent.tsx b/src/components/overlays/AddAppUserRoles/UserListContent.tsx index 0dfa3a9a2..37eb7c933 100644 --- a/src/components/overlays/AddAppUserRoles/UserListContent.tsx +++ b/src/components/overlays/AddAppUserRoles/UserListContent.tsx @@ -30,6 +30,7 @@ import { updatePartnerSelector } from 'features/control/updates' import { setSelectedUserToAdd } from 'features/admin/userDeprecated/actions' import Patterns from 'types/Patterns' import { useFetchAppUsersSearchQuery } from 'features/admin/appuserApiSlice' +import { PAGES } from 'types/Constants' interface FetchHookArgsType { appId: string | undefined @@ -42,6 +43,10 @@ export default function UserListContent() { const dispatch = useDispatch() const { appId } = useParams() + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } const [expr, setExpr] = useState('') const [refresh, setRefresh] = useState(0) @@ -94,6 +99,7 @@ export default function UserListContent() { }, ]} checkboxSelection + mappedTableSearchTranslation={mappedTableSearchTranslation} /> ) } diff --git a/src/components/pages/Admin/components/RegistrationRequests/components/RequestList/index.tsx b/src/components/pages/Admin/components/RegistrationRequests/components/RequestList/index.tsx index 662270e9f..ff5167952 100644 --- a/src/components/pages/Admin/components/RegistrationRequests/components/RequestList/index.tsx +++ b/src/components/pages/Admin/components/RegistrationRequests/components/RequestList/index.tsx @@ -37,6 +37,7 @@ import { type GridEventListener } from '@mui/x-data-grid' import './RequestListStyle.scss' import { refetch } from 'features/admin/registration/slice' import { isCompanyName } from 'types/Patterns' +import { PAGES } from 'types/Constants' interface FetchHookArgsType { statusFilter: string @@ -67,6 +68,10 @@ export const RequestList = ({ const [filterStatus, setFilterStatus] = useState( AppFilterType.INREVIEW ) + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } const [fetchHookArgs, setFetchHookArgs] = useState() const setView = (e: React.MouseEvent) => { const viewValue = e.currentTarget.value @@ -156,6 +161,7 @@ export const RequestList = ({ )}${t('content.admin.registration-requests.introText2')}`} defaultFilter={group} filterViews={filterView} + mappedTableSearchTranslation={mappedTableSearchTranslation} /> ) diff --git a/src/components/pages/AdminCredential/AdminCredentialElements.tsx b/src/components/pages/AdminCredential/AdminCredentialElements.tsx index 9c91ea95c..40be85055 100644 --- a/src/components/pages/AdminCredential/AdminCredentialElements.tsx +++ b/src/components/pages/AdminCredential/AdminCredentialElements.tsx @@ -48,7 +48,7 @@ import { StatusTag, Tooltips, } from '@catena-x/portal-shared-components' -import { ROLES } from 'types/Constants' +import { PAGES, ROLES } from 'types/Constants' import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore' import { userHasSsiCredentialRole } from 'services/AccessService' @@ -97,6 +97,10 @@ export default function AdminCredentialElements() { const [approveCredential] = useApproveCredentialMutation() const [declineCredential] = useDeclineCredentialMutation() const [revokeCredential] = useRevokeCredentialMutation() + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } const setView = (e: React.MouseEvent) => { const viewValue = e.currentTarget.value @@ -425,6 +429,7 @@ export default function AdminCredentialElements() { setSortOption(value) }} disableColumnSelector={true} + mappedTableSearchTranslation={mappedTableSearchTranslation} /> diff --git a/src/components/pages/AppOverview/AddRoles.tsx b/src/components/pages/AppOverview/AddRoles.tsx index 2cb62b6cf..11adc3edb 100644 --- a/src/components/pages/AppOverview/AddRoles.tsx +++ b/src/components/pages/AppOverview/AddRoles.tsx @@ -194,6 +194,7 @@ export default function AddRoles() { rows={appRolesData} getRowId={(row) => uniqueId(row.urn)} hasBorder={false} + noRowsMsg={t('shared.table.emptyTable')} /> diff --git a/src/components/pages/CompanyData/components/CompanyAddressList.tsx b/src/components/pages/CompanyData/components/CompanyAddressList.tsx index 1505ee887..d4aab48a4 100644 --- a/src/components/pages/CompanyData/components/CompanyAddressList.tsx +++ b/src/components/pages/CompanyData/components/CompanyAddressList.tsx @@ -212,7 +212,7 @@ export const CompanyAddressList = ({ searchPlaceholder={t('content.companyData.table.search')} columnHeadersBackgroundColor={'#FFFFFF'} searchDebounce={1000} - noRowsMsg={t('content.companyData.table.noRowsMsg')} + noRowsMsg={t('shared.table.emptyTable')} title={t('content.companyData.table.title')} getRowId={(row: { [key: string]: string }) => row.createdAt} rows={inputs.concat(outputs)} diff --git a/src/components/pages/CompanySubscriptions/index.tsx b/src/components/pages/CompanySubscriptions/index.tsx index 9f035a2ec..62cb86699 100644 --- a/src/components/pages/CompanySubscriptions/index.tsx +++ b/src/components/pages/CompanySubscriptions/index.tsx @@ -46,6 +46,7 @@ import { useUnsubscribeServiceMutation, } from 'features/serviceSubscription/serviceSubscriptionApiSlice' import { Box } from '@mui/material' +import { PAGES } from 'types/Constants' interface FetchHookArgsType { statusId: string @@ -75,6 +76,11 @@ export default function CompanySubscriptions() { const [enableErrorMessage, setEnableErrorMessage] = useState(false) const [currentActive, setCurrentActive] = useState(0) + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } + const setView = (e: React.MouseEvent) => { const viewValue = e.currentTarget.value setFilterStatus(viewValue) @@ -222,6 +228,7 @@ export default function CompanySubscriptions() { fetchHookRefresh={refresh} getRowId={(row: { [key: string]: string }) => row.subscriptionId} columns={companySubscriptionsCols} + mappedTableSearchTranslation={mappedTableSearchTranslation} /> ) diff --git a/src/components/pages/EdcConnector/index.tsx b/src/components/pages/EdcConnector/index.tsx index a8cd76b83..b40b6736b 100644 --- a/src/components/pages/EdcConnector/index.tsx +++ b/src/components/pages/EdcConnector/index.tsx @@ -65,6 +65,7 @@ import ConnectorDetailsOverlay from './ConnectorDetailsOverlay' import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline' import ArrowForwardIcon from '@mui/icons-material/ArrowForward' import { Box } from '@mui/material' +import { PAGES } from 'types/Constants' const EdcConnector = () => { const { t } = useTranslation() @@ -107,6 +108,10 @@ const EdcConnector = () => { const [notificationMessage, setNotificationMessage] = useState( t('content.edcconnector.snackbar.successmessage') ) + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } const [ viewConfigurationDetailsOverlayOpen, setViewConfigurationDetailsOverlayOpen, @@ -506,6 +511,7 @@ const EdcConnector = () => { onCellClick={(params: GridCellParams) => { onTableCellClick(params) }} + mappedTableSearchTranslation={mappedTableSearchTranslation} /> @@ -523,6 +529,7 @@ const EdcConnector = () => { onCellClick={(params: GridCellParams) => { onTableCellClick(params) }} + mappedTableSearchTranslation={mappedTableSearchTranslation} /> diff --git a/src/components/pages/IDPManagement/IDPList.tsx b/src/components/pages/IDPManagement/IDPList.tsx index 094fbc5d2..a3176f768 100644 --- a/src/components/pages/IDPManagement/IDPList.tsx +++ b/src/components/pages/IDPManagement/IDPList.tsx @@ -385,6 +385,8 @@ export const IDPList = ({ isManagementOSP }: { isManagementOSP?: boolean }) => { }, } + const rowItems = (isManagementOSP ? idpsManagedData : idpsData) ?? [] + return ( { isManagementOSP ? renderManagementOSPMenu(row) : renderMenu(row), }, ]} - rows={(isManagementOSP ? idpsManagedData : idpsData) ?? []} + rows={rowItems} getRowId={(row: { [key: string]: string }) => row.identityProviderId} hasBorder={false} searchPlaceholder={ @@ -482,6 +484,13 @@ export const IDPList = ({ isManagementOSP }: { isManagementOSP?: boolean }) => { onButtonClick={() => dispatch(show(OVERLAYS.ADD_IDP))} buttonLabel={t('content.onboardingServiceProvider.addIdentityProvider')} sx={isManagementOSP ? style : undefined} + noRowsMsg={ + !rowItems.length + ? searchExpr + ? t('shared.table.emptySearchTable') + : t('shared.table.emptyTable') + : '' + } /> ) } diff --git a/src/components/pages/InviteBusinessPartner/components/InviteList/index.tsx b/src/components/pages/InviteBusinessPartner/components/InviteList/index.tsx index 4bb369ccb..09944cf60 100644 --- a/src/components/pages/InviteBusinessPartner/components/InviteList/index.tsx +++ b/src/components/pages/InviteBusinessPartner/components/InviteList/index.tsx @@ -33,6 +33,7 @@ import dayjs from 'dayjs' import { setSearchInput } from 'features/appManagement/actions' import { updateInviteSelector } from 'features/control/updates' import { isCompanyName } from 'types/Patterns' +import { PAGES } from 'types/Constants' interface FetchHookArgsType { expr: string @@ -57,6 +58,10 @@ export const InviteList = ({ const dispatch = useDispatch() const [refresh, setRefresh] = useState(0) const searchInputData = useSelector(updateInviteSelector) + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } const validateSearchText = (expr: string) => { const validateExpr = isCompanyName(expr) @@ -135,6 +140,7 @@ export const InviteList = ({ ), }, ]} + mappedTableSearchTranslation={mappedTableSearchTranslation} /> ) diff --git a/src/components/pages/OnboardingServiceProvider/OnboardingServiceProvider.tsx b/src/components/pages/OnboardingServiceProvider/OnboardingServiceProvider.tsx index 686fb9d9c..5ceed3f1b 100644 --- a/src/components/pages/OnboardingServiceProvider/OnboardingServiceProvider.tsx +++ b/src/components/pages/OnboardingServiceProvider/OnboardingServiceProvider.tsx @@ -51,6 +51,7 @@ import { InputType } from 'components/shared/basic/Input/BasicInput' import { type IHashMap } from 'types/MainTypes' import { success } from 'services/NotifyService' import WarningAmberIcon from '@mui/icons-material/WarningAmber' +import { PAGES } from 'types/Constants' const OnboardingServiceProvider = () => { const { t } = useTranslation() @@ -65,6 +66,10 @@ const OnboardingServiceProvider = () => { const [callbackData, setCallbackData] = useState< RegistartionStatusCallbackType | undefined >(undefined) + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } const handleTabChange = ( _e: SyntheticEvent, @@ -398,6 +403,7 @@ const OnboardingServiceProvider = () => { sortable: false, }, ]} + mappedTableSearchTranslation={mappedTableSearchTranslation} /> diff --git a/src/components/pages/PartnerNetwork/index.tsx b/src/components/pages/PartnerNetwork/index.tsx index 9e80d58ca..c10878c7f 100644 --- a/src/components/pages/PartnerNetwork/index.tsx +++ b/src/components/pages/PartnerNetwork/index.tsx @@ -170,7 +170,6 @@ const PartnerNetwork = () => { loading={loading} rows={allItems} rowsCount={allItems?.length} - noRowsMsg={t('content.companyData.table.noRowsMsg')} nextPage={() => { setPage(page + 1) }} @@ -179,6 +178,13 @@ const PartnerNetwork = () => { memberData.meta.page < memberData.meta.totalPages - 1 } hideFooterPagination={true} + noRowsMsg={ + !allItems.length + ? expr || bpn + ? t('shared.table.emptySearchTable') + : t('shared.table.emptyTable') + : '' + } /> diff --git a/src/components/pages/SemanticHub/ModelTable.tsx b/src/components/pages/SemanticHub/ModelTable.tsx index 8de17ecd8..fade6bca7 100644 --- a/src/components/pages/SemanticHub/ModelTable.tsx +++ b/src/components/pages/SemanticHub/ModelTable.tsx @@ -45,6 +45,7 @@ type SelectedFilter = { const ModelTable = ({ onModelSelect }: ModelTableProps) => { const { t } = useTranslation() const dispatch = useDispatch() + const [searchExpr, setSearchExpr] = useState('') const { modelList, loadingModelList, deleteModelId, uploadedModel, error } = useSelector(semanticModelsSelector) const [models, setModels] = useState([]) @@ -126,6 +127,7 @@ const ModelTable = ({ onModelSelect }: ModelTableProps) => { status: selectedFilter.status[0], }), } + setSearchExpr(value) dispatch(fetchSemanticModels({ filter })) } @@ -202,7 +204,13 @@ const ModelTable = ({ onModelSelect }: ModelTableProps) => { }) ) } - noRowsMsg={t('global.noData.heading')} + noRowsMsg={ + !models.length + ? searchExpr + ? t('shared.table.emptySearchTable') + : t('shared.table.emptyTable') + : '' + } />
{modelList.totalPages !== pageNumber && ( diff --git a/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx b/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx index 9876c654d..6398d7f31 100644 --- a/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx +++ b/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx @@ -20,8 +20,8 @@ import { IconButton, - PageLoadingTable, StatusTag, + PageLoadingTable, } from '@catena-x/portal-shared-components' import { useTranslation } from 'react-i18next' import ArrowForwardIcon from '@mui/icons-material/ArrowForward' @@ -54,6 +54,12 @@ export const TechnicalUserTable = () => { const [group, setGroup] = useState( ServiceAccountStatusFilter.SHOW_ALL ) + + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } + const setView = (e: React.MouseEvent) => { const viewValue = e.currentTarget.value setGroup(viewValue) @@ -208,6 +214,7 @@ export const TechnicalUserTable = () => { ), }, ]} + mappedTableSearchTranslation={mappedTableSearchTranslation} />
) diff --git a/src/components/shared/frame/UserList/index.tsx b/src/components/shared/frame/UserList/index.tsx index c56248041..5ff94c82b 100644 --- a/src/components/shared/frame/UserList/index.tsx +++ b/src/components/shared/frame/UserList/index.tsx @@ -34,6 +34,7 @@ import './style.scss' import { setSearchInput } from 'features/appManagement/actions' import { appManagementSelector } from 'features/appManagement/slice' import { isSearchUserEmail } from 'types/Patterns' +import { PAGES } from 'types/Constants' interface FetchHookArgsType { appId?: string @@ -86,6 +87,10 @@ export const UserList = ({ const dispatch = useDispatch() const [refresh, setRefresh] = useState(0) const searchInputData = useSelector(appManagementSelector) + const mappedTableSearchTranslation = { + [PAGES.NO_SEARCH_TABLE_DATA]: t('shared.table.emptySearchTable'), + [PAGES.NO_TABLE_DATA]: t('shared.table.emptyTable'), + } const validateSearchText = (expr: string) => { const validateExpr = isSearchUserEmail(expr) @@ -181,6 +186,7 @@ export const UserList = ({ }, ]} disableColumnMenu + mappedTableSearchTranslation={mappedTableSearchTranslation} /> ) diff --git a/src/components/shared/templates/StaticTemplateResponsive/index.tsx b/src/components/shared/templates/StaticTemplateResponsive/index.tsx index 8ddb24efe..8ba383ef7 100644 --- a/src/components/shared/templates/StaticTemplateResponsive/index.tsx +++ b/src/components/shared/templates/StaticTemplateResponsive/index.tsx @@ -39,6 +39,7 @@ import { uniqueId } from 'lodash' import TitleDescriptionAndSectionlink from './Cards/TitleDescriptionAndSectionlink' import { StandardLibrariesTableColumns } from './Cards/StandardLibrariesTableColumns' import { type StandardLibraryType } from 'features/staticContent/staticContentApiSlice' +import { useTranslation } from 'react-i18next' const TemplateConfig = ({ provider, @@ -239,6 +240,7 @@ export const StaticTemplateResponsive = ({ baseUrl: string stdLibraries?: StandardLibraryType }) => { + const { t } = useTranslation() const [showScroll, setShowScroll] = useState(false) const theme = useTheme() const isMobile = useMediaQuery(theme.breakpoints.down('md'), { @@ -313,6 +315,7 @@ export const StaticTemplateResponsive = ({ rows={stdLibraries.rows} getRowId={(row) => uniqueId(row.uid)} hasBorder={false} + noRowsMsg={t('shared.table.emptyTable')} /> )} diff --git a/src/types/Constants.ts b/src/types/Constants.ts index 720421831..457870074 100644 --- a/src/types/Constants.ts +++ b/src/types/Constants.ts @@ -108,6 +108,8 @@ export enum PAGES { COMPANY_SUBSCRIPTIONS_DETAIL = 'companySubscriptionsDetail', COMPANY_DATA = 'companyData', ONBOARDING_SERVICE_PROVIDER_MANAGEMENT = 'onboardingServiceProviderManagement', + NO_TABLE_DATA = 'noItemsToDisplay', + NO_SEARCH_TABLE_DATA = 'noSearchItemsToDisplay', } export enum OVERLAYS {