import React from 'react'; // Utils import { TemplateCategory, TemplateRecord, TemplateType } from '../customTemplateSection'; import { hexToRgba, removeSThroughOne } from '../../../../utils/helper'; import { Products } from '../../../../utils/products'; // Components import TempCard from '../TemplatesCard'; import Tabs from '../../../GenericUIBlocks/Tabs'; import Typography from '../../../GenericUIBlocks/Typography'; import GeneralSelect from '../../../GenericUIBlocks/GeneralSelect'; import Input from '../../../GenericUIBlocks/Input'; import Dialog from '../../../GenericUIBlocks/Dialog'; // Icons import DesignIcon from '../../../../assets/images/templates/template-default-design'; import Designer from '../../../../assets/images/templates/designer'; const galleryDialogStyles = { maxWidth: '1090px', minHeight: 'calc(100% - 50px)', }; type CustomTemplateSectionProps = { product: any, openGalleryModal: boolean, selectedCategory: TemplateCategory | null, templateCategories: TemplateCategory[], currentTemplateType: TemplateType | undefined, templateTypes: TemplateType[] | null | undefined, designerQueryAmount?: string | number; search: any, searchApplied: boolean, loader: boolean, platformName: any, myTemplates: TemplateRecord[], teamTemplates: TemplateRecord[], olcTemplates: TemplateRecord[], pagination: any, setSearch: any, handleSearch: any, removeSearchInput: any, searchKeyDown: any, currentTemplateTypeRef: any, setCurrentTemplateType: any, setSelectedCategory: any, handleLoadTemplateModel: any, handleTabChange: any, handleDialogChange: any, closeGalleryModal: any, setOpenGalleryModal: any setHireDesignerModal: any; }; const ModalGallery = (props: CustomTemplateSectionProps) => { const { product, openGalleryModal, selectedCategory, templateCategories, currentTemplateType, templateTypes, designerQueryAmount, search, searchApplied, loader, platformName, myTemplates, teamTemplates, olcTemplates, pagination, setSearch, handleSearch, removeSearchInput, searchKeyDown, currentTemplateTypeRef, setSelectedCategory, handleLoadTemplateModel, handleTabChange, handleDialogChange, closeGalleryModal, setOpenGalleryModal, setHireDesignerModal, } = props; const primaryColorExtract = getComputedStyle(document.documentElement).getPropertyValue('--primary-color').trim(); const primaryColorRGBA = hexToRgba(primaryColorExtract, 0.5); const currentTemplates = currentTemplateType?.id === '1' ? myTemplates : currentTemplateType?.id === '2' ? teamTemplates : currentTemplateType?.id === '3' ? olcTemplates : [] const uniqueCurrentTemplates = Array.from( new Map(currentTemplates.map((item) => [item.id, item])).values() ); return ( <> item?.id === product?.id)?.title || product?.productType } isGallery={true} >
setSearch(e.target.value.trimStart())} placeholder="Search templates by name or ID" onClick={handleSearch} searchApplied={searchApplied} removeSearchInput={removeSearchInput} inputIcon={true} gellerySearch={true} />
{currentTemplateType?.id === '3' && templateCategories?.length > 1 && (
)} {removeSThroughOne(`${currentTemplates.length > 0 ? pagination.total : 0} templates`)}
{!loader && !searchApplied && currentTemplateTypeRef.current?.id === '1' && (
product?.size === "4x6") || product?.paperSize === "4x6" ? "postcard-4x6" : product?.id === '15' && product?.size?.find((product: any) => product?.size === "6x11") || product?.paperSize === "6x11" ? "postcard-6x11" : product?.id === '14' && product?.size?.find((product: any) => product?.size === "6x9") || product?.paperSize === "6x9" ? "postcard-6x9" : product?.id === '5' || product?.id === '16' ? 'personalLetter' : product?.id === '2' || product?.id === '4' || product?.id === '18' || product?.id === '38' ? 'professionalLetter' : product?.id === '9' ? 'biFold' : product?.id === '11' || product?.id === "21" ? 'triFold' : null}`} onClick={() => handleDialogChange('design-own')} style={{ boxShadow: `inset 0 0 0 2px ${primaryColorRGBA}` }} > Design Your Own
Design Your Own
)} {!loader && !searchApplied && currentTemplateTypeRef.current?.id !== '2' && designerQueryAmount && (
product?.size === "4x6") || product?.paperSize === "4x6" ? "postcard-4x6" : product?.id === '15' && product?.size?.find((product: any) => product?.size === "6x11") || product?.paperSize === "6x11" ? "postcard-6x11" : product?.id === '14' && product?.size?.find((product: any) => product?.size === "6x9") || product?.paperSize === "6x9" ? "postcard-6x9" : product?.id === '5' || product?.id === '16' ? 'personalLetter' : product?.id === '2' || product?.id === '4' || product?.id === '18' || product?.id === '38' ? 'professionalLetter' : product?.id === '9' ? 'biFold' : product?.id === '11' || product?.id === "21" ? 'triFold' : null}`} onClick={() => { setOpenGalleryModal(false); setHireDesignerModal(true); }} style={{ boxShadow: `inset 0 0 0 2px ${primaryColorRGBA}` }} > Hire a Designer
Hire a Designer +${designerQueryAmount}
)}
); } export default ModalGallery;