diff --git a/src/components/Author/Card.tsx b/src/components/Author/Card.tsx
index b0aacd95..afeb6197 100644
--- a/src/components/Author/Card.tsx
+++ b/src/components/Author/Card.tsx
@@ -10,6 +10,8 @@ import { follow, unfollow } from '../../stores/zine/common'
import { clsx } from 'clsx'
import { useSession } from '../../context/session'
import { FollowingEntity } from '../../graphql/types.gen'
+import { router, useRouter } from '../../stores/router'
+import { openPage } from '@nanostores/router'
interface AuthorCardProps {
caption?: string
@@ -43,6 +45,11 @@ export const AuthorCard = (props: AuthorCardProps) => {
: translit(props.author.name || '', locale() || 'ru')
}
// TODO: reimplement AuthorCard
+ const { changeSearchParam } = useRouter()
+ const handleInitChat = () => {
+ openPage(router, 'inbox')
+ changeSearchParam('openChat', `${props.author.id}`)
+ }
return (
{
'button--subscribe-topic': props.isAuthorsList,
[styles.buttonWrite]: props.liteButtons && props.isAuthorsList
}}
+ onClick={handleInitChat}
>
{t('Write')}
diff --git a/src/components/Nav/AuthModal/types.ts b/src/components/Nav/AuthModal/types.ts
index c8c0add6..2b42379c 100644
--- a/src/components/Nav/AuthModal/types.ts
+++ b/src/components/Nav/AuthModal/types.ts
@@ -7,3 +7,7 @@ export type AuthModalSearchParams = {
export type ConfirmEmailSearchParams = {
token: string
}
+
+export type CreateChatSearchParams = {
+ id: number
+}
diff --git a/src/graphql/query/author-by-slug.ts b/src/graphql/query/author-by-slug.ts
index d25ae0ab..9853edce 100644
--- a/src/graphql/query/author-by-slug.ts
+++ b/src/graphql/query/author-by-slug.ts
@@ -4,6 +4,7 @@ export default gql`
query GetAuthorBySlugQuery($slug: String!) {
getAuthor(slug: $slug) {
_id: slug
+ id
slug
name
bio
diff --git a/src/graphql/query/author-followers.ts b/src/graphql/query/author-followers.ts
index dcb6b44a..5dccac58 100644
--- a/src/graphql/query/author-followers.ts
+++ b/src/graphql/query/author-followers.ts
@@ -4,6 +4,7 @@ export default gql`
query UserSubscribersQuery($slug: String!) {
userSubcribers(slug: $slug) {
_id: slug
+ id
slug
name
bio
diff --git a/src/graphql/query/author-following.ts b/src/graphql/query/author-following.ts
index 3100fe5d..cc6c4edb 100644
--- a/src/graphql/query/author-following.ts
+++ b/src/graphql/query/author-following.ts
@@ -4,6 +4,7 @@ export default gql`
query UserFollowingQuery($slug: String!) {
userFollowing(slug: $slug) {
_id: slug
+ id
slug
name
bio
diff --git a/src/graphql/query/authors-all.ts b/src/graphql/query/authors-all.ts
index 036a02f1..b5a6e65a 100644
--- a/src/graphql/query/authors-all.ts
+++ b/src/graphql/query/authors-all.ts
@@ -4,6 +4,7 @@ export default gql`
query AuthorsAllQuery {
authorsAll {
_id: slug
+ id
slug
name
bio
diff --git a/src/graphql/query/authors-load-by.ts b/src/graphql/query/authors-load-by.ts
index a76bf102..fdafd924 100644
--- a/src/graphql/query/authors-load-by.ts
+++ b/src/graphql/query/authors-load-by.ts
@@ -4,6 +4,7 @@ export default gql`
query AuthorLoadByQuery($by: AuthorsBy, $limit: Int, $offset: Int) {
loadAuthorsBy(by: $by, limit: $limit, offset: $offset) {
_id: slug
+ id
slug
name
bio