From 3ce53728ea49598acd6772eac4937f33564c7663 Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 6 May 2024 21:16:13 +0300 Subject: [PATCH] drafts-reload-session --- .../Views/DraftsView/DraftsView.tsx | 18 +++--- src/graphql/client/core.ts | 2 +- .../query/core/articles-load-drafts.ts | 61 ++++++++++--------- 3 files changed, 44 insertions(+), 37 deletions(-) diff --git a/src/components/Views/DraftsView/DraftsView.tsx b/src/components/Views/DraftsView/DraftsView.tsx index acbc30db..957f7ffe 100644 --- a/src/components/Views/DraftsView/DraftsView.tsx +++ b/src/components/Views/DraftsView/DraftsView.tsx @@ -13,16 +13,20 @@ import { Loading } from '../../_shared/Loading' import styles from './DraftsView.module.scss' export const DraftsView = () => { - const { session } = useSession() + const { author, loadSession } = useSession() const [drafts, setDrafts] = createSignal([]) createEffect( on( - () => session(), - async (s) => { - if (s) { - const loadedDrafts = await apiClient.getDrafts() - setDrafts(loadedDrafts.reverse() || []) + () => author(), + async (a) => { + if (a) { + const { shouts: loadedDrafts, error } = await apiClient.getDrafts() + if (error) { + console.warn(error) + await loadSession() + } + setDrafts(loadedDrafts || []) } }, ), @@ -46,7 +50,7 @@ export const DraftsView = () => { return (
- }> + }>
diff --git a/src/graphql/client/core.ts b/src/graphql/client/core.ts index e80f2e6d..9c083e86 100644 --- a/src/graphql/client/core.ts +++ b/src/graphql/client/core.ts @@ -175,7 +175,7 @@ export const apiClient = { console.debug('[graphql.client.core] deleteShout:', response) }, - getDrafts: async (): Promise => { + getDrafts: async (): Promise => { const response = await apiClient.private.query(draftsLoad, {}).toPromise() console.debug('[graphql.client.core] getDrafts:', response) return response.data.get_shouts_drafts diff --git a/src/graphql/query/core/articles-load-drafts.ts b/src/graphql/query/core/articles-load-drafts.ts index f81d0a2f..136a14bf 100644 --- a/src/graphql/query/core/articles-load-drafts.ts +++ b/src/graphql/query/core/articles-load-drafts.ts @@ -3,40 +3,43 @@ import { gql } from '@urql/core' export default gql` query LoadDraftsQuery { get_shouts_drafts { - id - title - subtitle - slug - layout - cover - # community - media - main_topic - topics { + error + shouts { id title - body + subtitle slug - stat { - shouts - authors - followers + layout + cover + # community + media + main_topic + topics { + id + title + body + slug + stat { + shouts + authors + followers + } + } + authors { + id + name + slug + pic + created_at } - } - authors { - id - name - slug - pic created_at - } - created_at - published_at - featured_at - stat { - viewed - rating - commented + published_at + featured_at + stat { + viewed + rating + commented + } } } }