This commit is contained in:
Untone 2024-02-17 18:44:56 +03:00
parent 560739627a
commit 3f7679710f
2 changed files with 25 additions and 13 deletions

View File

@ -529,6 +529,7 @@
"repeat": "повторить", "repeat": "повторить",
"resend confirmation link": "отправить ссылку ещё раз", "resend confirmation link": "отправить ссылку ещё раз",
"shout": "пост", "shout": "пост",
"shout not found": "публикация не найдена",
"shoutsWithCount": "{count} {count, plural, one {пост} few {поста} other {постов}}", "shoutsWithCount": "{count} {count, plural, one {пост} few {поста} other {постов}}",
"sign in": "войти", "sign in": "войти",
"sign up or sign in": "зарегистрироваться или войти", "sign up or sign in": "зарегистрироваться или войти",

View File

@ -67,7 +67,7 @@ const getTitleAndSubtitle = (
subtitle: string subtitle: string
} => { } => {
let title = article.title let title = article.title
let subtitle = article.subtitle let subtitle: string = article.subtitle || ''
if (!subtitle) { if (!subtitle) {
let tt = article.title?.split('. ') || [] let tt = article.title?.split('. ') || []
@ -79,7 +79,7 @@ const getTitleAndSubtitle = (
if (tt && tt.length > 1) { if (tt && tt.length > 1) {
const sep = article.title?.replace(tt[0], '').split(' ', 1)[0] const sep = article.title?.replace(tt[0], '').split(' ', 1)[0]
title = tt[0] + (sep === '.' || sep === ':' ? '' : sep) title = tt[0] + (sep === '.' || sep === ':' ? '' : sep)
subtitle = capitalize(article.title?.replace(tt[0] + sep, ''), true) subtitle = capitalize(article.title?.replace(tt[0] + sep, ''), true) || ''
} }
} }
@ -131,6 +131,7 @@ export const ArticleCard = (props: ArticleCardProps) => {
scrollTo: 'comments', scrollTo: 'comments',
}) })
} }
return ( return (
<section <section
class={clsx(styles.shoutCard, props.settings?.additionalClass, { class={clsx(styles.shoutCard, props.settings?.additionalClass, {
@ -149,7 +150,9 @@ export const ArticleCard = (props: ArticleCardProps) => {
[aspectRatio()]: props.withAspectRatio, [aspectRatio()]: props.withAspectRatio,
})} })}
> >
{/* Cover Image */}
<Show when={!(props.settings?.noimage || props.settings?.isFeedMode)}> <Show when={!(props.settings?.noimage || props.settings?.isFeedMode)}>
{/* Cover Image Container */}
<div class={styles.shoutCardCoverContainer}> <div class={styles.shoutCardCoverContainer}>
<div <div
class={clsx(styles.shoutCardCover, { class={clsx(styles.shoutCardCover, {
@ -174,7 +177,10 @@ export const ArticleCard = (props: ArticleCardProps) => {
</div> </div>
</div> </div>
</Show> </Show>
{/* Shout Card Content */}
<div class={styles.shoutCardContent}> <div class={styles.shoutCardContent}>
{/* Shout Card Icon */}
<Show <Show
when={ when={
props.article.layout && props.article.layout &&
@ -191,6 +197,7 @@ export const ArticleCard = (props: ArticleCardProps) => {
</div> </div>
</Show> </Show>
{/* Main Topic */}
<Show when={!props.settings?.isGroup && mainTopicSlug}> <Show when={!props.settings?.isGroup && mainTopicSlug}>
<CardTopic <CardTopic
title={mainTopicTitle} title={mainTopicTitle}
@ -201,6 +208,7 @@ export const ArticleCard = (props: ArticleCardProps) => {
/> />
</Show> </Show>
{/* Title and Subtitle */}
<div <div
class={clsx(styles.shoutCardTitlesContainer, { class={clsx(styles.shoutCardTitlesContainer, {
[styles.shoutCardTitlesContainerFeedMode]: props.settings?.isFeedMode, [styles.shoutCardTitlesContainerFeedMode]: props.settings?.isFeedMode,
@ -220,22 +228,23 @@ export const ArticleCard = (props: ArticleCardProps) => {
</Show> </Show>
</a> </a>
</div> </div>
{/* Details */}
<Show when={!(props.settings?.noauthor && props.settings?.nodate)}> <Show when={!(props.settings?.noauthor && props.settings?.nodate)}>
{/* Author and Date */}
<div <div
class={clsx(styles.shoutDetails, { [styles.shoutDetailsFeedMode]: props.settings?.isFeedMode })} class={clsx(styles.shoutDetails, { [styles.shoutDetailsFeedMode]: props.settings?.isFeedMode })}
> >
<Show when={!props.settings?.noauthor}> <Show when={!props.settings?.noauthor}>
<div class={styles.shoutAuthor}> <div class={styles.shoutAuthor}>
<For each={props.article.authors}> <For each={props.article.authors}>
{(a: Author) => { {(a: Author) => (
return (
<AuthorLink <AuthorLink
size={'XS'} size={'XS'}
author={a} author={a}
isFloorImportant={props.settings.isFloorImportant || props.settings?.isWithCover} isFloorImportant={props.settings.isFloorImportant || props.settings?.isWithCover}
/> />
) )}
}}
</For> </For>
</div> </div>
</Show> </Show>
@ -244,6 +253,8 @@ export const ArticleCard = (props: ArticleCardProps) => {
</Show> </Show>
</div> </div>
</Show> </Show>
{/* Description */}
<Show when={props.article.description}> <Show when={props.article.description}>
<section class={styles.shoutCardDescription} innerHTML={props.article.description} /> <section class={styles.shoutCardDescription} innerHTML={props.article.description} />
</Show> </Show>