From a207aeeb44746fd655544140446ae5fa192fb24f Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 4 Mar 2024 15:32:48 +0300 Subject: [PATCH 1/3] new-api --- codegen.yml | 27 ------------------- .../NotificationView/NotificationGroup.tsx | 12 ++++----- .../_shared/GroupAvatar/GroupAvatar.tsx | 3 +-- src/context/notifications.tsx | 2 +- src/graphql/client/notifier.ts | 6 ++--- 5 files changed, 11 insertions(+), 39 deletions(-) diff --git a/codegen.yml b/codegen.yml index 4daa6b5c..eb4811ba 100644 --- a/codegen.yml +++ b/codegen.yml @@ -25,33 +25,6 @@ generates: useTypeImports: true outputPath: './src/graphql/types/core.gen.ts' # namingConvention: change-case#CamelCase # for generated types - - # Generate types for notifier - src/graphql/schema/notifier.gen.ts: - schema: 'https://notifier.discours.io' - plugins: - - 'typescript' - - 'typescript-operations' - - 'typescript-urql' - config: - skipTypename: true - useTypeImports: true - outputPath: './src/graphql/types/notifier.gen.ts' - # namingConvention: change-case#CamelCase # for generated types - - # internal types for auth - # src/graphql/schema/auth.gen.ts: - # schema: 'https://auth.discours.io/graphql' - # plugins: - # - 'typescript' - # - 'typescript-operations' - # - 'typescript-urql' - # config: - # skipTypename: true - # useTypeImports: true - # outputPath: './src/graphql/types/auth.gen.ts' - # namingConvention: change-case#CamelCase # for generated types - hooks: afterAllFileWrite: - prettier --ignore-path .gitignore --write --plugin-search-dir=. src/graphql/schema/*.gen.ts diff --git a/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx b/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx index 9e931649..3b3d8462 100644 --- a/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx +++ b/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx @@ -4,7 +4,7 @@ import { For, Show } from 'solid-js' import { useLocalize } from '../../../context/localize' import { useNotifications } from '../../../context/notifications' -import { NotificationGroup as Group } from '../../../graphql/schema/notifier.gen' +import { NotificationGroup as Group } from '../../../graphql/schema/core.gen' import { router, useRouter } from '../../../stores/router' import { ArticlePageSearchParams } from '../../Article/FullArticle' import { GroupAvatar } from '../../_shared/GroupAvatar' @@ -39,8 +39,8 @@ const getTitle = (title: string) => { return shoutTitle } -const reactionsCaption = (threadId: string) => - threadId.includes('::') ? 'Some new replies to your comment' : 'Some new comments to your publication' +const threadCaption = (threadId: string) => + threadId.includes(':') ? 'Some new replies to your comment' : 'Some new comments to your publication' export const NotificationGroup = (props: NotificationGroupProps) => { const { t, formatTime, formatDate } = useLocalize() @@ -63,12 +63,12 @@ export const NotificationGroup = (props: NotificationGroupProps) => { return ( <> - {(n: Group) => ( + {(n: Group, index) => ( <> - {t(reactionsCaption(n.id), { commentsCount: n.reactions.length })}{' '} + {t(threadCaption(n.thread), { commentsCount: n.reactions.length })}{' '}
handleClick(n.id)} + onClick={(_) => handleClick(n.thread)} >
diff --git a/src/components/_shared/GroupAvatar/GroupAvatar.tsx b/src/components/_shared/GroupAvatar/GroupAvatar.tsx index 7c63520e..087e9b88 100644 --- a/src/components/_shared/GroupAvatar/GroupAvatar.tsx +++ b/src/components/_shared/GroupAvatar/GroupAvatar.tsx @@ -2,14 +2,13 @@ import { clsx } from 'clsx' import { For } from 'solid-js' import { Author } from '../../../graphql/schema/core.gen' -import { NotificationAuthor } from '../../../graphql/schema/notifier.gen' import { Userpic } from '../../Author/Userpic' import styles from './GroupAvatar.module.scss' type Props = { class?: string - authors: Author[] | NotificationAuthor[] + authors: Author[] } export const GroupAvatar = (props: Props) => { diff --git a/src/context/notifications.tsx b/src/context/notifications.tsx index 36507e17..d4344035 100644 --- a/src/context/notifications.tsx +++ b/src/context/notifications.tsx @@ -8,7 +8,7 @@ import { Portal } from 'solid-js/web' import { NotificationsPanel } from '../components/NotificationsPanel' import { ShowIfAuthenticated } from '../components/_shared/ShowIfAuthenticated' import { notifierClient } from '../graphql/client/notifier' -import { NotificationGroup, QueryLoad_NotificationsArgs } from '../graphql/schema/notifier.gen' +import { NotificationGroup, QueryLoad_NotificationsArgs } from '../graphql/schema/core.gen' import { SSEMessage, useConnect } from './connect' import { useSession } from './session' diff --git a/src/graphql/client/notifier.ts b/src/graphql/client/notifier.ts index dc44feba..aee0ec71 100644 --- a/src/graphql/client/notifier.ts +++ b/src/graphql/client/notifier.ts @@ -4,10 +4,10 @@ import markSeenAfterMutation from '../mutation/notifier/mark-seen-after' import markThreadSeenMutation from '../mutation/notifier/mark-seen-thread' import loadNotifications from '../query/notifier/notifications-load' import { - MutationMark_Seen_AfterArgs, + MutationNotifications_Seen_AfterArgs, NotificationsResult, QueryLoad_NotificationsArgs, -} from '../schema/notifier.gen' +} from '../schema/core.gen' export const notifierClient = { private: null, @@ -23,7 +23,7 @@ export const notifierClient = { await notifierClient.private.mutation(markSeenMutation, { notification_id }).toPromise() }, - markSeenAfter: async (options: MutationMark_Seen_AfterArgs): Promise => { + markSeenAfter: async (options: MutationNotifications_Seen_AfterArgs): Promise => { // call when 'mark all as seen' cliecked await notifierClient.private.mutation(markSeenAfterMutation, options).toPromise() }, From 1e27546b3eec31d04993cf0f89dce05448d364ad Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 4 Mar 2024 15:35:34 +0300 Subject: [PATCH 2/3] group-index-fix --- src/context/notifications.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/context/notifications.tsx b/src/context/notifications.tsx index d4344035..b25ca037 100644 --- a/src/context/notifications.tsx +++ b/src/context/notifications.tsx @@ -51,7 +51,7 @@ export const NotificationsProvider = (props: { children: JSX.Element }) => { const unread = notificationsResult?.unread || 0 const newGroupsEntries = groups.reduce((acc, group: NotificationGroup) => { - acc[group.id] = group + acc[group.thread] = group return acc }, {}) From ed23e1f7a87d12947806c1e1b603cb14f7868998 Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 4 Mar 2024 15:51:34 +0300 Subject: [PATCH 3/3] updated-schema --- src/context/session.tsx | 1 - src/graphql/client/notifier.ts | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/context/session.tsx b/src/context/session.tsx index e6086097..73659a6c 100644 --- a/src/context/session.tsx +++ b/src/context/session.tsx @@ -215,7 +215,6 @@ export const SessionProvider = (props: { if (token) { if (!inboxClient.private) { apiClient.connect(token) - notifierClient.connect(token) inboxClient.connect(token) } if (!author()) loadAuthor() diff --git a/src/graphql/client/notifier.ts b/src/graphql/client/notifier.ts index aee0ec71..943f5218 100644 --- a/src/graphql/client/notifier.ts +++ b/src/graphql/client/notifier.ts @@ -8,11 +8,10 @@ import { NotificationsResult, QueryLoad_NotificationsArgs, } from '../schema/core.gen' +import { apiClient } from './core' export const notifierClient = { - private: null, - connect: (token: string) => (notifierClient.private = createGraphQLClient('notifier', token)), - + private: apiClient.private, getNotifications: async (params: QueryLoad_NotificationsArgs): Promise => { const resp = await notifierClient.private.query(loadNotifications, params).toPromise() return resp.data?.load_notifications