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..b25ca037 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' @@ -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 }, {}) 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 dc44feba..943f5218 100644 --- a/src/graphql/client/notifier.ts +++ b/src/graphql/client/notifier.ts @@ -4,15 +4,14 @@ 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' +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 @@ -23,7 +22,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() },