From 0f28fe891a41212a619c93a41e1c4ed5f18a6a59 Mon Sep 17 00:00:00 2001 From: Untone Date: Wed, 17 Apr 2024 18:47:24 +0300 Subject: [PATCH] post-oauth-fix --- src/components/Views/Author/Author.tsx | 21 ++++++++++++++------- src/context/following.tsx | 11 +++++++---- src/context/session.tsx | 11 +++++++---- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/components/Views/Author/Author.tsx b/src/components/Views/Author/Author.tsx index ed0645d5..0a351f0c 100644 --- a/src/components/Views/Author/Author.tsx +++ b/src/components/Views/Author/Author.tsx @@ -55,13 +55,20 @@ export const AuthorView = (props: Props) => { const [sessionChecked, setSessionChecked] = createSignal(false) createEffect(() => { - if (!sessionChecked() && props.authorSlug && session()?.user?.app_data?.profile?.slug === props.authorSlug) { + if ( + !sessionChecked() && + props.authorSlug && + session()?.user?.app_data?.profile?.slug === props.authorSlug + ) { setSessionChecked(true) - console.info('preloaded my own profile') - const { profile, authors, topics } = session().user.app_data - setFollowers(myFollowers) - setAuthor(profile) - setFollowing([...authors, ...topics]) + const appdata = session()?.user.app_data + if (appdata) { + console.info('preloaded my own profile') + const { authors, followers, topics } = appdata + setFollowers(myFollowers) + setAuthor(profile) + setFollowing([...authors, ...topics]) + } } }) @@ -73,7 +80,7 @@ export const AuthorView = (props: Props) => { const [subscriptionsResult, followersResult, authorResult] = await Promise.all([ apiClient.getAuthorFollows({ slug }), apiClient.getAuthorFollowers({ slug }), - loadAuthor({ slug }) + loadAuthor({ slug }), ]) const { authors, topics } = subscriptionsResult setAuthor(authorResult) diff --git a/src/context/following.tsx b/src/context/following.tsx index ad93eaaf..fc92565e 100644 --- a/src/context/following.tsx +++ b/src/context/following.tsx @@ -80,10 +80,13 @@ export const FollowingProvider = (props: { children: JSX.Element }) => { createEffect(() => { if (author()) { try { - const { authors, followers, topics } = session().user.app_data - setSubscriptions({ authors, topics }) - setFollowers(followers) - if (!authors) fetchData() + const appdata = session()?.user.app_data + if (appdata) { + const { authors, followers, topics } = appdata + setSubscriptions({ authors, topics }) + setFollowers(followers) + if (!authors) fetchData() + } } catch (e) { console.error(e) } diff --git a/src/context/session.tsx b/src/context/session.tsx index 67bd5a93..fa068bc8 100644 --- a/src/context/session.tsx +++ b/src/context/session.tsx @@ -220,10 +220,13 @@ export const SessionProvider = (props: { } try { - const { profile } = session().user.app_data - setAuthor(profile) - addAuthors([profile]) - if (!profile) loadAuthor() + const appdata = session()?.user.app_data + if (appdata) { + const { profile } = appdata + setAuthor(profile) + addAuthors([profile]) + if (!profile) loadAuthor() + } } catch (e) { console.error(e) }