This commit is contained in:
Untone 2024-03-06 15:37:16 +03:00
commit 3e2d7416b7
7 changed files with 28 additions and 10 deletions

View File

@ -83,6 +83,7 @@
"Comment successfully deleted": "Comment successfully deleted",
"Commentator": "Commentator",
"Comments": "Comments",
"CommentsWithCount": "{count, plural, =0 {{count} comments} one {{count} comment} few {{count} comments} other {{count} comments}}",
"Communities": "Communities",
"Community Discussion Rules": "Community Discussion Rules",
"Community Principles": "Community Principles",

View File

@ -88,6 +88,7 @@
"Comment": "Комментировать",
"Commentator": "Комментатор",
"Comments": "Комментарии",
"CommentsWithCount": "{count, plural, =0 {{count} комментариев} one {{count} комментарий} few {{count} комментария} other {{count} комментариев}}",
"Communities": "Сообщества",
"Community Discussion Rules": "Правила дискуссий в сообществе",
"Community Principles": "Принципы сообщества",

View File

@ -30,6 +30,7 @@ type Props = {
showArticleLink?: boolean
clickedReply?: (id: number) => void
clickedReplyId?: number
onDelete?: (id: number) => void
}
export const Comment = (props: Props) => {
@ -64,7 +65,10 @@ export const Comment = (props: Props) => {
if (isConfirmed) {
await deleteReaction(props.comment.id)
// TODO: Учесть то что deleteReaction может вернуть error
if (props.onDelete) {
props.onDelete(props.comment.id)
}
await showSnackbar({ body: t('Comment successfully deleted') })
}
} catch (error) {

View File

@ -115,12 +115,15 @@ export const TopicBadge = (props: Props) => {
</div>
</div>
<div class={styles.stats}>
<span class={styles.statsItem}>{t('shoutsWithCount', { count: props.topic?.stat?.shouts })}</span>
<span class={styles.statsItem}>{t('authorsWithCount', { count: props.topic?.stat?.authors })}</span>
<span class={styles.statsItem}>{t('shoutsWithCount', {count: props.topic?.stat?.shouts})}</span>
<span class={styles.statsItem}>{t('authorsWithCount', {count: props.topic?.stat?.authors})}</span>
<span class={styles.statsItem}>
{t('followersWithCount', { count: props.topic?.stat?.followers })}
{t('FollowersWithCount', {count: props.topic?.stat?.followers})}
</span>
<Show when={props.topic?.stat?.comments}>
<span class={styles.statsItem}>{t('CommentsWithCount', {count: props.topic?.stat?.comments ?? 0})}</span>
</Show>
</div>
</div>
</div>
)
}

View File

@ -12,7 +12,6 @@ import { capitalize } from '../../../utils/capitalize'
import { dummyFilter } from '../../../utils/dummyFilter'
import { getImageUrl } from '../../../utils/getImageUrl'
import { scrollHandler } from '../../../utils/scroll'
import { TopicCard } from '../../Topic/Card'
import { Loading } from '../../_shared/Loading'
import { SearchField } from '../../_shared/SearchField'

View File

@ -127,9 +127,8 @@ export const AuthorView = (props: Props) => {
}
createEffect(() => {
const a = author()
if (a) {
fetchComments(a)
if (author()) {
fetchComments(author())
}
})
@ -139,6 +138,9 @@ export const AuthorView = (props: Props) => {
: getImageUrl('production/image/logo_image.png'),
)
const description = createMemo(() => getDescription(author()?.bio))
const handleDeleteComment = (id: number) => {
setCommented((prev) => prev.filter((comment) => comment.id !== id))
}
return (
<div class={styles.authorPage}>
@ -233,7 +235,14 @@ export const AuthorView = (props: Props) => {
<div class="col-md-20 col-lg-18">
<ul class={stylesArticle.comments}>
<For each={commented()?.sort(byCreated).reverse()}>
{(comment) => <Comment comment={comment} class={styles.comment} showArticleLink />}
{(comment) => (
<Comment
comment={comment}
class={styles.comment}
showArticleLink={true}
onDelete={(id) => handleDeleteComment(id)}
/>
)}
</For>
</ul>
</div>

View File

@ -135,6 +135,7 @@ export const apiClient = {
user?: string
}): Promise<AuthorFollows> => {
const response = await publicGraphQLClient.query(authorFollows, params).toPromise()
console.log('!!! response:', response)
return response.data.get_author_follows
},