From c627678acdabd4acee9ab3cc91ab2e44bc3ef0b0 Mon Sep 17 00:00:00 2001 From: dudeami0 Date: Thu, 22 Jun 2023 23:30:42 -0400 Subject: [PATCH] Fix server-side rendering after first load. --- src/shared/components/community/communities.tsx | 3 ++- src/shared/components/community/community.tsx | 3 ++- src/shared/components/home/admin-settings.tsx | 3 ++- src/shared/components/home/home.tsx | 3 ++- src/shared/components/home/instances.tsx | 3 ++- src/shared/components/modlog.tsx | 3 ++- src/shared/components/person/inbox.tsx | 3 ++- src/shared/components/person/profile.tsx | 8 ++++++-- .../components/person/registration-applications.tsx | 3 ++- src/shared/components/person/reports.tsx | 3 ++- src/shared/components/post/create-post.tsx | 3 ++- src/shared/components/post/post.tsx | 2 +- .../components/private_message/create-private-message.tsx | 3 ++- src/shared/components/search.tsx | 8 ++++++-- 14 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/shared/components/community/communities.tsx b/src/shared/components/community/communities.tsx index a84ec055..35e89c36 100644 --- a/src/shared/components/community/communities.tsx +++ b/src/shared/components/community/communities.tsx @@ -5,6 +5,7 @@ import { setIsoData, showLocal, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { getPageFromString, getQueryParams, @@ -67,7 +68,7 @@ export class Communities extends Component { this.handleListingTypeChange = this.handleListingTypeChange.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { listCommunitiesResponse } = this.isoData.routeData; this.state = { diff --git a/src/shared/components/community/community.tsx b/src/shared/components/community/community.tsx index 111b47cd..3e7615a9 100644 --- a/src/shared/components/community/community.tsx +++ b/src/shared/components/community/community.tsx @@ -15,6 +15,7 @@ import { updateCommunityBlock, updatePersonBlock, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { getPageFromString, getQueryParams, @@ -197,7 +198,7 @@ export class Community extends Component< this.handleFeaturePost = this.handleFeaturePost.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { communityRes, commentsRes, postsRes } = this.isoData.routeData; this.state = { diff --git a/src/shared/components/home/admin-settings.tsx b/src/shared/components/home/admin-settings.tsx index 7ac69fed..6ab5b659 100644 --- a/src/shared/components/home/admin-settings.tsx +++ b/src/shared/components/home/admin-settings.tsx @@ -4,6 +4,7 @@ import { setIsoData, showLocal, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { capitalizeFirstLetter } from "@utils/helpers"; import { RouteDataResponse } from "@utils/types"; import classNames from "classnames"; @@ -74,7 +75,7 @@ export class AdminSettings extends Component { this.handleCreateEmoji = this.handleCreateEmoji.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { bannedRes, instancesRes } = this.isoData.routeData; this.state = { diff --git a/src/shared/components/home/home.tsx b/src/shared/components/home/home.tsx index bad771fc..da1be70b 100644 --- a/src/shared/components/home/home.tsx +++ b/src/shared/components/home/home.tsx @@ -13,6 +13,7 @@ import { showLocal, updatePersonBlock, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { getPageFromString, getQueryParams, @@ -263,7 +264,7 @@ export class Home extends Component { this.handleFeaturePost = this.handleFeaturePost.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { trendingCommunitiesRes, commentsRes, postsRes } = this.isoData.routeData; diff --git a/src/shared/components/home/instances.tsx b/src/shared/components/home/instances.tsx index b54c96af..9c38cf41 100644 --- a/src/shared/components/home/instances.tsx +++ b/src/shared/components/home/instances.tsx @@ -1,4 +1,5 @@ import { setIsoData } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { RouteDataResponse } from "@utils/types"; import { Component } from "inferno"; import { @@ -35,7 +36,7 @@ export class Instances extends Component { super(props, context); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { this.state = { ...this.state, instancesRes: this.isoData.routeData.federatedInstancesResponse, diff --git a/src/shared/components/modlog.tsx b/src/shared/components/modlog.tsx index 722f6e70..e8c707ed 100644 --- a/src/shared/components/modlog.tsx +++ b/src/shared/components/modlog.tsx @@ -5,6 +5,7 @@ import { personToChoice, setIsoData, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { debounce, getIdFromString, @@ -660,7 +661,7 @@ export class Modlog extends Component< this.handleModChange = this.handleModChange.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { res, communityRes, modUserResponse, userResponse } = this.isoData.routeData; diff --git a/src/shared/components/person/inbox.tsx b/src/shared/components/person/inbox.tsx index 395875be..3c913701 100644 --- a/src/shared/components/person/inbox.tsx +++ b/src/shared/components/person/inbox.tsx @@ -11,6 +11,7 @@ import { setIsoData, updatePersonBlock, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { RouteDataResponse } from "@utils/types"; import { Component, linkEvent } from "inferno"; import { @@ -163,7 +164,7 @@ export class Inbox extends Component { this.handleEditMessage = this.handleEditMessage.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { mentionsRes, messagesRes, repliesRes } = this.isoData.routeData; this.state = { diff --git a/src/shared/components/person/profile.tsx b/src/shared/components/person/profile.tsx index d0003687..6e0530d9 100644 --- a/src/shared/components/person/profile.tsx +++ b/src/shared/components/person/profile.tsx @@ -10,7 +10,11 @@ import { setIsoData, updatePersonBlock, } from "@utils/app"; -import { restoreScrollPosition, saveScrollPosition } from "@utils/browser"; +import { + isBrowser, + restoreScrollPosition, + saveScrollPosition, +} from "@utils/browser"; import { capitalizeFirstLetter, futureDaysToUnixTime, @@ -206,7 +210,7 @@ export class Profile extends Component< this.handleFeaturePost = this.handleFeaturePost.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { this.state = { ...this.state, personRes: this.isoData.routeData.personResponse, diff --git a/src/shared/components/person/registration-applications.tsx b/src/shared/components/person/registration-applications.tsx index d9eb6ad0..5e92c073 100644 --- a/src/shared/components/person/registration-applications.tsx +++ b/src/shared/components/person/registration-applications.tsx @@ -3,6 +3,7 @@ import { myAuthRequired, setIsoData, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { RouteDataResponse } from "@utils/types"; import { Component, linkEvent } from "inferno"; import { @@ -58,7 +59,7 @@ export class RegistrationApplications extends Component< this.handleApproveApplication = this.handleApproveApplication.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { this.state = { ...this.state, appsRes: this.isoData.routeData.listRegistrationApplicationsResponse, diff --git a/src/shared/components/person/reports.tsx b/src/shared/components/person/reports.tsx index 8f5eaf36..9d04c8a7 100644 --- a/src/shared/components/person/reports.tsx +++ b/src/shared/components/person/reports.tsx @@ -5,6 +5,7 @@ import { myAuthRequired, setIsoData, } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { amAdmin } from "@utils/roles"; import { RouteDataResponse } from "@utils/types"; import { Component, linkEvent } from "inferno"; @@ -108,7 +109,7 @@ export class Reports extends Component { this.handleResolvePrivateMessageReport.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { commentReportsRes, postReportsRes, messageReportsRes } = this.isoData.routeData; diff --git a/src/shared/components/post/create-post.tsx b/src/shared/components/post/create-post.tsx index fe941830..ed686f31 100644 --- a/src/shared/components/post/create-post.tsx +++ b/src/shared/components/post/create-post.tsx @@ -1,4 +1,5 @@ import { enableDownvotes, enableNsfw, myAuth, setIsoData } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { getIdFromString, getQueryParams } from "@utils/helpers"; import type { QueryParams } from "@utils/types"; import { Choice, RouteDataResponse } from "@utils/types"; @@ -69,7 +70,7 @@ export class CreatePost extends Component< this.handleSelectedCommunityChange.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { communityResponse: communityRes, initialCommunitiesRes } = this.isoData.routeData; diff --git a/src/shared/components/post/post.tsx b/src/shared/components/post/post.tsx index f0aa3ff5..54823f22 100644 --- a/src/shared/components/post/post.tsx +++ b/src/shared/components/post/post.tsx @@ -174,7 +174,7 @@ export class Post extends Component { this.state = { ...this.state, commentSectionRef: createRef() }; // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { commentsRes, postRes } = this.isoData.routeData; this.state = { diff --git a/src/shared/components/private_message/create-private-message.tsx b/src/shared/components/private_message/create-private-message.tsx index 840a4425..7d876c6b 100644 --- a/src/shared/components/private_message/create-private-message.tsx +++ b/src/shared/components/private_message/create-private-message.tsx @@ -1,4 +1,5 @@ import { getRecipientIdFromProps, myAuth, setIsoData } from "@utils/app"; +import { isBrowser } from "@utils/browser"; import { RouteDataResponse } from "@utils/types"; import { Component } from "inferno"; import { @@ -44,7 +45,7 @@ export class CreatePrivateMessage extends Component< this.handlePrivateMessageCreate.bind(this); // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { this.state = { ...this.state, recipientRes: this.isoData.routeData.recipientDetailsResponse, diff --git a/src/shared/components/search.tsx b/src/shared/components/search.tsx index 473b18c4..3d04c500 100644 --- a/src/shared/components/search.tsx +++ b/src/shared/components/search.tsx @@ -11,7 +11,11 @@ import { setIsoData, showLocal, } from "@utils/app"; -import { restoreScrollPosition, saveScrollPosition } from "@utils/browser"; +import { + isBrowser, + restoreScrollPosition, + saveScrollPosition, +} from "@utils/browser"; import { capitalizeFirstLetter, debounce, @@ -270,7 +274,7 @@ export class Search extends Component { }; // Only fetch the data if coming from another route - if (FirstLoadService.isFirstLoad) { + if (!isBrowser() || FirstLoadService.isFirstLoad) { const { communityResponse: communityRes, creatorDetailsResponse: creatorDetailsRes,