diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json
index 8df3deff..2dc94b46 100644
--- a/public/locales/ru/translation.json
+++ b/public/locales/ru/translation.json
@@ -532,7 +532,7 @@
"resend confirmation link": "отправить ссылку ещё раз",
"shout": "пост",
"shout not found": "публикация не найдена",
- "shoutsWithCount": "{count} {count, plural, one {пост} few {поста} other {постов}}",
+ "shoutsWithCount": "{count} {count, plural, one {публикация} few {публикации} other {публикаций}}",
"sign in": "войти",
"sign up or sign in": "зарегистрироваться или войти",
"sign up": "зарегистрироваться",
diff --git a/src/components/Author/AuthorBadge/AuthorBadge.tsx b/src/components/Author/AuthorBadge/AuthorBadge.tsx
index bc7c3bbd..75687bfc 100644
--- a/src/components/Author/AuthorBadge/AuthorBadge.tsx
+++ b/src/components/Author/AuthorBadge/AuthorBadge.tsx
@@ -27,6 +27,7 @@ type Props = {
inviteView?: boolean
onInvite?: (id: number) => void
selected?: boolean
+ subscriptionsMode?: boolean
}
export const AuthorBadge = (props: Props) => {
const { mediaMatches } = useMediaQuery()
@@ -114,7 +115,7 @@ export const AuthorBadge = (props: Props) => {
-
+
0}>
{t('PublicationsWithCount', { count: props.author.stat?.shouts ?? 0 })}
diff --git a/src/components/Author/AuthorCard/AuthorCard.tsx b/src/components/Author/AuthorCard/AuthorCard.tsx
index 65e14027..1423e3f7 100644
--- a/src/components/Author/AuthorCard/AuthorCard.tsx
+++ b/src/components/Author/AuthorCard/AuthorCard.tsx
@@ -312,9 +312,9 @@ export const AuthorCard = (props: Props) => {
{(subscription) =>
isAuthor(subscription) ? (
-
+
) : (
-
+
)
}
diff --git a/src/components/Topic/TopicBadge/TopicBadge.module.scss b/src/components/Topic/TopicBadge/TopicBadge.module.scss
index f219910a..b830a7c8 100644
--- a/src/components/Topic/TopicBadge/TopicBadge.module.scss
+++ b/src/components/Topic/TopicBadge/TopicBadge.module.scss
@@ -1,12 +1,11 @@
.TopicBadge {
- margin-bottom: 2rem;
+ margin-bottom: 4.8rem;
gap: 1rem;
.content {
align-items: flex-start;
display: flex;
flex-direction: row;
- margin-bottom: .8rem;
}
.basicInfo {
@@ -46,18 +45,64 @@
.info {
@include font-size(1.4rem);
-
border: none;
- display: flex;
- flex-direction: column;
+ //display: flex;
+ //flex-direction: column;
&:hover {
background: unset;
+ color: inherit;
+
+ .title {
+ background: var(--background-color-invert);
+ color: var(--default-color-invert);
+ }
+ }
+
+ .title {
+ @include font-size(2.2rem);
+ font-weight: bold;
+ }
+
+ .description {
+ @include font-size(1.6rem);
+ line-height: 1.4;
+ margin: 0.8rem 0;
+ -webkit-line-clamp: 2;
+ }
+ }
+
+ .actions {
+ display: flex;
+ flex-direction: row;
+ gap: 1rem;
+ margin-bottom: -1rem;
+ }
+
+ .subscribeButton {
+ border-radius: 0.8rem !important;
+ margin-right: 0 !important;
+ width: 9em;
+ }
+}
+
+.TopicBadgeSubscriptionsMode {
+ margin-bottom: 2rem;
+
+ .content {
+ margin-bottom: 0.8rem;
+ }
+
+ .info {
+ &:hover {
+ .title {
+ background-color: var(--blue-500);
+ color: var(--white-500);
+ }
}
.title {
@include font-size(1.4rem);
-
font-weight: 500;
line-height: 1em;
color: var(--blue-500);
@@ -66,7 +111,9 @@
.description {
color: var(--black-400);
+ @include font-size(1.2rem);
font-weight: 500;
+ margin: 0;
}
}
@@ -88,7 +135,6 @@
color: var(--secondary-color);
display: flex;
- margin: 0 0 1em;
@include media-breakpoint-down(md) {
flex-wrap: wrap;
@@ -101,6 +147,7 @@
.statsItem {
@include font-size(1.4rem);
+ font-weight: 500;
margin-right: 1.6rem;
white-space: nowrap;
diff --git a/src/components/Topic/TopicBadge/TopicBadge.tsx b/src/components/Topic/TopicBadge/TopicBadge.tsx
index 2ba9a5b5..4eaee460 100644
--- a/src/components/Topic/TopicBadge/TopicBadge.tsx
+++ b/src/components/Topic/TopicBadge/TopicBadge.tsx
@@ -15,6 +15,7 @@ type Props = {
topic: Topic
minimizeSubscribeButton?: boolean
showStat?: boolean
+ subscriptionsMode?: boolean
}
export const TopicBadge = (props: Props) => {
@@ -47,23 +48,27 @@ export const TopicBadge = (props: Props) => {
lang() === 'en' ? capitalize(props.topic.slug.replaceAll('-', ' ')) : props.topic.title
return (
-
+
-
-
{t('shoutsWithCount', { count: props.topic?.stat?.shouts })}
-
{t('authorsWithCount', { count: props.topic?.stat?.authors })}
-
- {t('FollowersWithCount', { count: props.topic?.stat?.followers })}
-
-
+
+
+
+ {t('shoutsWithCount', { count: props.topic?.stat?.shouts })}
- {t('CommentsWithCount', { count: props.topic?.stat?.comments ?? 0 })}
+ {t('authorsWithCount', { count: props.topic?.stat?.authors })}
-
-
+
+ {t('FollowersWithCount', { count: props.topic?.stat?.followers })}
+
+
+
+ {t('CommentsWithCount', { count: props.topic?.stat?.comments ?? 0 })}
+
+
+
+
)
}
diff --git a/src/components/Views/AllTopics/AllTopics.tsx b/src/components/Views/AllTopics/AllTopics.tsx
index 20e14709..ac42b78a 100644
--- a/src/components/Views/AllTopics/AllTopics.tsx
+++ b/src/components/Views/AllTopics/AllTopics.tsx
@@ -82,7 +82,7 @@ export const AllTopics = (props: Props) => {
const AllTopicsHead = () => (
-
+
{t('Topics')}
{t('Subscribe what you like to tune your personal feed')}
@@ -131,7 +131,7 @@ export const AllTopics = (props: Props) => {
0}>
-
+
{(letter, index) => (
@@ -182,7 +182,7 @@ export const AllTopics = (props: Props) => {