diff --git a/theme-source/partials/list.tsx b/theme-source/partials/list.tsx index 3801eac015518c9e04f76080b199369a4cf07b49..5c2ee82a2e3a065b669f6440b0e64a12c44e6694 100644 --- a/theme-source/partials/list.tsx +++ b/theme-source/partials/list.tsx @@ -43,96 +43,28 @@ export function List({ subtags, tag, content, metadata, file, config }) { }} > {content.map(page => ( - <div + <Card key={page.file} - css={{ - '@media (min-width: 37.56rem)': { - width: 'calc(50% - 0.75rem)', - }, - '@media (min-width: 62rem)': { - width: 'calc(33.3333% - 0.75rem)', - }, - margin: '10px 0', - overflow: 'hidden', - textAlign: 'justify', - backgroundColor: 'white', - boxShadow: - '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)', - display: 'flex', - flexDirection: 'column', - }} - > - <a href={`/${page.file}`}> - <div - css={{ - height: 120, - backgroundColor: '#0288d1', - backgroundImage: page.metadata.image - ? `url('${relURL(page.metadata.image, page.file)}')` - : undefined, - backgroundSize: 'cover', - backgroundRepeat: 'no-repeat', - backgroundPosition: '50% 50%', - }} - ></div> - </a> - <div - css={css` - margin: 10px 0; - height: 50px; - `} - > - <a href={`/${page.file}`}> - <h5 - css={{ - textAlign: 'center', - fontSize: '1.3rem', - margin: '0 10px', - }} - > - {page.metadata.title} - </h5> - </a> - </div> - <div css={{ padding: '0px 10px' }}> - {page.metadata.perex + file={page.file} + image={page.metadata.image} + title={page.metadata.title} + text={ + page.metadata.perex ? page.metadata.perex : page.metadata.perex_e ? truncate(page.metadata.perex_e) : page.content ? truncate(striptags(page.content)) - : null} - </div> - <div css={{ flexGrow: 1 }}></div> - <div - css={{ - padding: 10, - display: 'flex', - justifyContent: 'space-between', - flexWrap: 'wrap', - }} - > - <span - css={{ - color: '#a2a2a2', - textAlign: 'left', - display: 'inline-block', - }} - > + : null + } + caption={ + <> {dateFilter(page.metadata.published, 'D. M. YYYY')} napsal {page.metadata.author.gender === 'F' ? 'a' : ''}{' '} {page.metadata.author.name} - </span> - <a - style={{ - textAlign: 'right', - }} - href={`/${page.file}`} - > - ÄŚĂst dál - </a> - </div> - </div> + </> + } + /> ))} </div> <Paginator metadata={metadata} file={file} config={config} /> @@ -183,3 +115,87 @@ export function List({ subtags, tag, content, metadata, file, config }) { </div> ) } + +function Card({ file, image, title, text, caption }) { + return ( + <div + css={{ + '@media (min-width: 37.56rem)': { + width: 'calc(50% - 0.75rem)', + }, + '@media (min-width: 62rem)': { + width: 'calc(33.3333% - 0.75rem)', + }, + margin: '10px 0', + overflow: 'hidden', + textAlign: 'justify', + backgroundColor: 'white', + boxShadow: + '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)', + display: 'flex', + flexDirection: 'column', + }} + > + <a href={`/${file}`}> + <div + css={{ + height: 120, + backgroundColor: '#0288d1', + backgroundImage: image + ? `url('${relURL(image, file)}')` + : undefined, + backgroundSize: 'cover', + backgroundRepeat: 'no-repeat', + backgroundPosition: '50% 50%', + }} + ></div> + </a> + <div + css={css` + margin: 10px 0; + height: 50px; + `} + > + <a href={`/${file}`}> + <h5 + css={{ + textAlign: 'center', + fontSize: '1.3rem', + margin: '0 10px', + }} + > + {title} + </h5> + </a> + </div> + <div css={{ padding: '0px 10px' }}>{text}</div> + <div css={{ flexGrow: 1 }}></div> + <div + css={{ + padding: 10, + display: 'flex', + justifyContent: 'space-between', + flexWrap: 'wrap', + }} + > + <span + css={{ + color: '#a2a2a2', + textAlign: 'left', + display: 'inline-block', + }} + > + {caption} + </span> + <a + style={{ + textAlign: 'right', + }} + href={`/${file}`} + > + ÄŚĂst dál + </a> + </div> + </div> + ) +}