// Dependencies import { capitalize } from 'shared/utils.mjs' import { linkClasses } from 'shared/components/link.mjs' import { designImages } from 'shared/components/designs/examples.mjs' import { designs } from 'shared/config/designs.mjs' // Context import { ModalContext } from 'shared/context/modal-context.mjs' // Hooks import { useTranslation } from 'next-i18next' import { useContext } from 'react' // Components import { ModalWrapper } from 'shared/components/wrappers/modal.mjs' import Link from 'next/link' import { Difficulty } from 'shared/components/designs/difficulty.mjs' import { lineDrawings } from 'shared/components/designs/linedrawings/index.mjs' import { DocsIcon, NewPatternIcon } from 'shared/components/icons.mjs' import { DesignInfo } from 'shared/components/designs/info.mjs' export const ns = ['designs', 'tags', 'techniques'] export const linkBuilders = { new: (design) => `/new/${design.toLowerCase()}`, docs: (design) => `/docs/designs/${design.toLowerCase()}`, } export const DesignTechnique = ({ technique }) => { const { t } = useTranslation('techniques') return ( {t(`techniques:${technique}`)} ) } export const DesignTag = ({ tag }) => { const { t } = useTranslation(['tags']) return ( {t(tag)} ) } export const DesignLink = ({ name, linkTo = 'new', className = linkClasses }) => ( {name} ) export const DesignCard = ({ name, lineDrawing = false }) => { const { t } = useTranslation(ns) // Context const { setModal } = useContext(ModalContext) const LineDrawing = lineDrawing && lineDrawings[name] ? lineDrawings[name] : ({ className }) =>
const exampleImageUrl = designImages[name] ? designImages[name] : 'https://images.pexels.com/photos/5626595/pexels-photo-5626595.jpeg?cs=srgb&dl=pexels-frida-toth-5626595.jpg&fm=jpg&w=640&h=427&_gl=1*vmxq7y*_ga*MTM0OTk5OTY4NS4xNjYxMjUyMjc0*_ga_8JE65Q40S6*MTY5NTU1NDc0Mi4yNS4xLjE2OTU1NTU1NjIuMC4wLjA.' const bg = lineDrawing ? {} : { backgroundImage: `url(${exampleImageUrl}`, backgroundSize: 'cover', backgroundPosition: 'center center', } return ( ) }