diff --git a/src/components/Author/AuthorRatingControl.tsx b/src/components/Author/AuthorRatingControl.tsx index 7591267e..3175c30a 100644 --- a/src/components/Author/AuthorRatingControl.tsx +++ b/src/components/Author/AuthorRatingControl.tsx @@ -1,11 +1,11 @@ import type { Author } from '../../graphql/schema/core.gen' import { clsx } from 'clsx' +import { Show, createSignal } from 'solid-js' + +import { apiClient } from '../../graphql/client/core' import styles from './AuthorRatingControl.module.scss' -import { Show, createSignal } from 'solid-js' -import { useLocalize } from '../../context/localize' -import { apiClient } from '../../graphql/client/core' interface AuthorRatingControlProps { author: Author @@ -15,12 +15,13 @@ interface AuthorRatingControlProps { export const AuthorRatingControl = (props: AuthorRatingControlProps) => { const isUpvoted = false const isDownvoted = false - const { t } = useLocalize() // eslint-disable-next-line unicorn/consistent-function-scoping const handleRatingChange = async (isUpvote: boolean) => { console.log('handleRatingChange', { isUpvote }) if (props.author?.slug) { - await apiClient.rateAuthor({ rated_slug: props.author?.slug, value: isUpvote ? 1 : -1 }) + const value = isUpvote ? 1 : -1 + await apiClient.rateAuthor({ rated_slug: props.author?.slug, value }) + setRating((r) => r + value) } } diff --git a/src/components/Views/Inbox.tsx b/src/components/Views/Inbox.tsx index 5ef7f4ad..28e4958b 100644 --- a/src/components/Views/Inbox.tsx +++ b/src/components/Views/Inbox.tsx @@ -8,8 +8,8 @@ import { useInbox } from '../../context/inbox' import { useLocalize } from '../../context/localize' import { useSession } from '../../context/session' import { useRouter } from '../../stores/router' -import { AuthorsSortBy, useAuthorsStore } from '../../stores/zine/authors' import { showModal } from '../../stores/ui' +import { AuthorsSortBy, useAuthorsStore } from '../../stores/zine/authors' import { Icon } from '../_shared/Icon' import { Popover } from '../_shared/Popover' import SimplifiedEditor from '../Editor/SimplifiedEditor' @@ -59,10 +59,7 @@ export const InboxView = (props: Props) => { const { author } = useSession() const currentUserId = createMemo(() => author()?.id) const { changeSearchParams, searchParams } = useRouter() - const { sortedAuthors } = useAuthorsStore({ - authors: props.authors, - sortBy: (searchParams()?.by as AuthorsSortBy) || 'name', - }) + const messagesContainerRef: { current: HTMLDivElement } = { current: null, } diff --git a/src/graphql/client/core.ts b/src/graphql/client/core.ts index 63f6417a..38ed9705 100644 --- a/src/graphql/client/core.ts +++ b/src/graphql/client/core.ts @@ -18,6 +18,7 @@ import { createGraphQLClient } from '../createGraphQLClient' import createArticle from '../mutation/core/article-create' import deleteShout from '../mutation/core/article-delete' import updateArticle from '../mutation/core/article-update' +import rateAuthor from '../mutation/core/author-rate' import followMutation from '../mutation/core/follow' import reactionCreate from '../mutation/core/reaction-create' import reactionDestroy from '../mutation/core/reaction-destroy' @@ -44,7 +45,6 @@ import topicBySlug from '../query/core/topic-by-slug' import topicsAll from '../query/core/topics-all' import userFollowedTopics from '../query/core/topics-by-author' import topicsRandomQuery from '../query/core/topics-random' -import rateAuthor from '../mutation/core/author-rate' const publicGraphQLClient = createGraphQLClient('core') diff --git a/src/pages/inbox.page.tsx b/src/pages/inbox.page.tsx index 76ff3050..13f77c07 100644 --- a/src/pages/inbox.page.tsx +++ b/src/pages/inbox.page.tsx @@ -1,10 +1,12 @@ +import type { PageProps } from './types' + +import { createSignal, onMount } from 'solid-js' + import { PageLayout } from '../components/_shared/PageLayout' import { ShowOnlyOnClient } from '../components/_shared/ShowOnlyOnClient' import { InboxView } from '../components/Views/Inbox' import { InboxProvider } from '../context/inbox' import { useLocalize } from '../context/localize' -import type { PageProps } from './types' -import { createSignal, onMount } from 'solid-js' import { loadAllAuthors } from '../stores/zine/authors' export const InboxPage = (props: PageProps) => { diff --git a/src/stores/zine/authors.ts b/src/stores/zine/authors.ts index aa468a49..35422d72 100644 --- a/src/stores/zine/authors.ts +++ b/src/stores/zine/authors.ts @@ -61,7 +61,7 @@ export const loadAuthor = async ({ author_id, }: { slug: string - author_id: number + author_id?: number }): Promise => { const author = await apiClient.getAuthor({ slug, author_id }) addAuthors([author])