/
home
/
rekodeb
/
www
/
wp-content
/
plugins
/
envato-elements
/
src
/
js
/
react
/
components
/
InstalledTemplateKits
/
Upload File
HOME
import React, { useRef, useState } from 'react' import GridItem from '../Grid/GridItem' import ItemCard from '../Card/ItemCard' import ButtonWrapper from '../Buttons/ButtonWrapper' import Button from '../Buttons/Button' import ImportSingleTemplate from '../Buttons/ImportSingleTemplate' import TemplatePreviewModal from '../Modal/TemplatePreviewModal' import styles from './TemplateItemCardWrapper.module.scss' const TemplateItemCardWrapper = ({ template }) => { const [isActivationModelOpen, setOpenActivationModal] = useState(false) const cardRef = useRef(null) const templateId = template.id const templateKitId = template.template_kit_id const templateName = template.name const templateScreenShotUrl = template.screenshot_url const templateExistingImports = template.imports const [blockImport, setBlockImport] = useState(template.unmet_requirements && template.unmet_requirements.length > 0) const description = template.metadata.additional_template_information ? template.metadata.additional_template_information.join(' ') : '' return ( <GridItem colWidthPercentage={33} key={templateId}> <ItemCard Images={( <div className={styles.imageWrapper}> <img src={templateScreenShotUrl} alt={templateName} className={styles.image} /> <div className={styles.expandButton} ref={cardRef} onClick={(e) => { if (e.target === cardRef.current) { setOpenActivationModal(true) } }} > {isActivationModelOpen ? ( <TemplatePreviewModal templateScreenShotUrl={templateScreenShotUrl} templatePreviewTitle={templateName} templateKitId={templateKitId} templateId={templateId} existingImports={templateExistingImports} onCloseCallback={() => { setOpenActivationModal(false) }} installRequirements={blockImport} /> ) : null} <Button type='ghost' icon='expand' onClick={() => { setOpenActivationModal(true) }} /> </div> </div> )} Buttons={( <> {blockImport ? ( <> <p className={styles.unmetRequirementsMessage}> {template.unmet_requirements.join(' ')} </p> <Button type='warning' label='Ignore Requirements' icon='cross' onClick={() => setBlockImport(false)} /> </> ) : ( <ButtonWrapper> <ImportSingleTemplate templateKitId={templateKitId} templateId={templateId} existingImports={templateExistingImports} /> </ButtonWrapper> )} </> )} title={templateName} description={description} /> </GridItem> ) } export default TemplateItemCardWrapper