Fix server-side rendering after first load.

This commit is contained in:
dudeami0 2023-06-22 23:30:42 -04:00 committed by Jay Sitter
parent 787a75396b
commit a22fda4b6e
14 changed files with 35 additions and 16 deletions

View file

@ -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<any, CommunitiesState> {
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 = {

View file

@ -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 = {

View file

@ -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<any, AdminSettingsState> {
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 = {

View file

@ -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<any, HomeState> {
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;

View file

@ -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<any, InstancesState> {
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,

View file

@ -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;

View file

@ -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<any, InboxState> {
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 = {

View file

@ -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,

View file

@ -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,

View file

@ -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<any, ReportsState> {
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;

View file

@ -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;

View file

@ -174,7 +174,7 @@ export class Post extends Component<any, PostState> {
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 = {

View file

@ -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,

View file

@ -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<any, SearchState> {
};
// Only fetch the data if coming from another route
if (FirstLoadService.isFirstLoad) {
if (!isBrowser() || FirstLoadService.isFirstLoad) {
const {
communityResponse: communityRes,
creatorDetailsResponse: creatorDetailsRes,