import { FC } from 'react'; import { FaEdit, FaPlus } from 'react-icons/fa'; import { GetConfigurationValue, LocalizeText, ProductTypeEnum, SanitizeHtml } from '../../../../../api'; import { Text } from '../../../../../common'; import { useCatalogData } from '../../../../../hooks'; import { useCatalogAdmin } from '../../../CatalogAdminContext'; import { CatalogHeaderView } from '../../catalog-header/CatalogHeaderView'; import { CatalogAddOnBadgeWidgetView } from '../widgets/CatalogAddOnBadgeWidgetView'; import { CatalogItemGridWidgetView } from '../widgets/CatalogItemGridWidgetView'; import { CatalogLimitedItemWidgetView } from '../widgets/CatalogLimitedItemWidgetView'; import { CatalogPurchaseWidgetView } from '../widgets/CatalogPurchaseWidgetView'; import { CatalogSpinnerWidgetView } from '../widgets/CatalogSpinnerWidgetView'; import { CatalogTotalPriceWidget } from '../widgets/CatalogTotalPriceWidget'; import { CatalogViewProductWidgetView } from '../widgets/CatalogViewProductWidgetView'; import { CatalogLayoutProps } from './CatalogLayout.types'; export const CatalogLayoutDefaultView: FC = props => { const { page = null } = props; const { currentOffer = null, currentPage = null } = useCatalogData(); const catalogAdmin = useCatalogAdmin(); const adminMode = catalogAdmin?.adminMode ?? false; return (
{ /* Admin: quick actions */ } { adminMode && !catalogAdmin.editingPageData &&
} { /* Product detail card */ } { currentOffer &&
{ /* Preview area */ }
{ (currentOffer.product.productType !== ProductTypeEnum.BADGE) && <> } { (currentOffer.product.productType === ProductTypeEnum.BADGE) && }
{ /* Product info + purchase */ }
{ /* Title row */ }
{ currentOffer.localizationName } { adminMode && catalogAdmin.setEditingOffer(currentOffer) } /> }
{ adminMode &&
ID: { currentOffer.product.productClassId } Offer: { currentOffer.offerId } { currentOffer.product.productType.toUpperCase() }
}
{ /* Price */ } { /* Spinner */ } { /* Actions */ }
} { /* Welcome/description card */ } { !currentOffer &&
{ !!page.localization.getImage(1) && }
} { /* Item grid */ }
{ GetConfigurationValue('catalog.headers') && }
); };