mirror of
https://github.com/LemmyNet/lemmy-ui.git
synced 2024-11-01 10:09:56 +00:00
Fix server-side rendering after first load.
This commit is contained in:
parent
e5e8f29c67
commit
2c85c87e44
14 changed files with 35 additions and 16 deletions
|
@ -5,6 +5,7 @@ import {
|
||||||
setIsoData,
|
setIsoData,
|
||||||
showLocal,
|
showLocal,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import {
|
import {
|
||||||
getPageFromString,
|
getPageFromString,
|
||||||
getQueryParams,
|
getQueryParams,
|
||||||
|
@ -67,7 +68,7 @@ export class Communities extends Component<any, CommunitiesState> {
|
||||||
this.handleListingTypeChange = this.handleListingTypeChange.bind(this);
|
this.handleListingTypeChange = this.handleListingTypeChange.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { listCommunitiesResponse } = this.isoData.routeData;
|
const { listCommunitiesResponse } = this.isoData.routeData;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
|
|
|
@ -15,6 +15,7 @@ import {
|
||||||
updateCommunityBlock,
|
updateCommunityBlock,
|
||||||
updatePersonBlock,
|
updatePersonBlock,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import {
|
import {
|
||||||
getPageFromString,
|
getPageFromString,
|
||||||
getQueryParams,
|
getQueryParams,
|
||||||
|
@ -197,7 +198,7 @@ export class Community extends Component<
|
||||||
this.handleFeaturePost = this.handleFeaturePost.bind(this);
|
this.handleFeaturePost = this.handleFeaturePost.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { communityRes, commentsRes, postsRes } = this.isoData.routeData;
|
const { communityRes, commentsRes, postsRes } = this.isoData.routeData;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import {
|
||||||
setIsoData,
|
setIsoData,
|
||||||
showLocal,
|
showLocal,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import { capitalizeFirstLetter } from "@utils/helpers";
|
import { capitalizeFirstLetter } from "@utils/helpers";
|
||||||
import { RouteDataResponse } from "@utils/types";
|
import { RouteDataResponse } from "@utils/types";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
@ -74,7 +75,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
||||||
this.handleCreateEmoji = this.handleCreateEmoji.bind(this);
|
this.handleCreateEmoji = this.handleCreateEmoji.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { bannedRes, instancesRes } = this.isoData.routeData;
|
const { bannedRes, instancesRes } = this.isoData.routeData;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
|
|
|
@ -13,6 +13,7 @@ import {
|
||||||
showLocal,
|
showLocal,
|
||||||
updatePersonBlock,
|
updatePersonBlock,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import {
|
import {
|
||||||
getPageFromString,
|
getPageFromString,
|
||||||
getQueryParams,
|
getQueryParams,
|
||||||
|
@ -263,7 +264,7 @@ export class Home extends Component<any, HomeState> {
|
||||||
this.handleFeaturePost = this.handleFeaturePost.bind(this);
|
this.handleFeaturePost = this.handleFeaturePost.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { trendingCommunitiesRes, commentsRes, postsRes } =
|
const { trendingCommunitiesRes, commentsRes, postsRes } =
|
||||||
this.isoData.routeData;
|
this.isoData.routeData;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { setIsoData } from "@utils/app";
|
import { setIsoData } from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import { RouteDataResponse } from "@utils/types";
|
import { RouteDataResponse } from "@utils/types";
|
||||||
import { Component } from "inferno";
|
import { Component } from "inferno";
|
||||||
import {
|
import {
|
||||||
|
@ -35,7 +36,7 @@ export class Instances extends Component<any, InstancesState> {
|
||||||
super(props, context);
|
super(props, context);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
this.state = {
|
this.state = {
|
||||||
...this.state,
|
...this.state,
|
||||||
instancesRes: this.isoData.routeData.federatedInstancesResponse,
|
instancesRes: this.isoData.routeData.federatedInstancesResponse,
|
||||||
|
|
|
@ -5,6 +5,7 @@ import {
|
||||||
personToChoice,
|
personToChoice,
|
||||||
setIsoData,
|
setIsoData,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import {
|
import {
|
||||||
debounce,
|
debounce,
|
||||||
getIdFromString,
|
getIdFromString,
|
||||||
|
@ -660,7 +661,7 @@ export class Modlog extends Component<
|
||||||
this.handleModChange = this.handleModChange.bind(this);
|
this.handleModChange = this.handleModChange.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { res, communityRes, modUserResponse, userResponse } =
|
const { res, communityRes, modUserResponse, userResponse } =
|
||||||
this.isoData.routeData;
|
this.isoData.routeData;
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ import {
|
||||||
setIsoData,
|
setIsoData,
|
||||||
updatePersonBlock,
|
updatePersonBlock,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import { RouteDataResponse } from "@utils/types";
|
import { RouteDataResponse } from "@utils/types";
|
||||||
import { Component, linkEvent } from "inferno";
|
import { Component, linkEvent } from "inferno";
|
||||||
import {
|
import {
|
||||||
|
@ -163,7 +164,7 @@ export class Inbox extends Component<any, InboxState> {
|
||||||
this.handleEditMessage = this.handleEditMessage.bind(this);
|
this.handleEditMessage = this.handleEditMessage.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { mentionsRes, messagesRes, repliesRes } = this.isoData.routeData;
|
const { mentionsRes, messagesRes, repliesRes } = this.isoData.routeData;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
|
|
|
@ -10,7 +10,11 @@ import {
|
||||||
setIsoData,
|
setIsoData,
|
||||||
updatePersonBlock,
|
updatePersonBlock,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
import { restoreScrollPosition, saveScrollPosition } from "@utils/browser";
|
import {
|
||||||
|
isBrowser,
|
||||||
|
restoreScrollPosition,
|
||||||
|
saveScrollPosition,
|
||||||
|
} from "@utils/browser";
|
||||||
import {
|
import {
|
||||||
capitalizeFirstLetter,
|
capitalizeFirstLetter,
|
||||||
futureDaysToUnixTime,
|
futureDaysToUnixTime,
|
||||||
|
@ -206,7 +210,7 @@ export class Profile extends Component<
|
||||||
this.handleFeaturePost = this.handleFeaturePost.bind(this);
|
this.handleFeaturePost = this.handleFeaturePost.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
this.state = {
|
this.state = {
|
||||||
...this.state,
|
...this.state,
|
||||||
personRes: this.isoData.routeData.personResponse,
|
personRes: this.isoData.routeData.personResponse,
|
||||||
|
|
|
@ -3,6 +3,7 @@ import {
|
||||||
myAuthRequired,
|
myAuthRequired,
|
||||||
setIsoData,
|
setIsoData,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import { RouteDataResponse } from "@utils/types";
|
import { RouteDataResponse } from "@utils/types";
|
||||||
import { Component, linkEvent } from "inferno";
|
import { Component, linkEvent } from "inferno";
|
||||||
import {
|
import {
|
||||||
|
@ -58,7 +59,7 @@ export class RegistrationApplications extends Component<
|
||||||
this.handleApproveApplication = this.handleApproveApplication.bind(this);
|
this.handleApproveApplication = this.handleApproveApplication.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
this.state = {
|
this.state = {
|
||||||
...this.state,
|
...this.state,
|
||||||
appsRes: this.isoData.routeData.listRegistrationApplicationsResponse,
|
appsRes: this.isoData.routeData.listRegistrationApplicationsResponse,
|
||||||
|
|
|
@ -5,6 +5,7 @@ import {
|
||||||
myAuthRequired,
|
myAuthRequired,
|
||||||
setIsoData,
|
setIsoData,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import { amAdmin } from "@utils/roles";
|
import { amAdmin } from "@utils/roles";
|
||||||
import { RouteDataResponse } from "@utils/types";
|
import { RouteDataResponse } from "@utils/types";
|
||||||
import { Component, linkEvent } from "inferno";
|
import { Component, linkEvent } from "inferno";
|
||||||
|
@ -108,7 +109,7 @@ export class Reports extends Component<any, ReportsState> {
|
||||||
this.handleResolvePrivateMessageReport.bind(this);
|
this.handleResolvePrivateMessageReport.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { commentReportsRes, postReportsRes, messageReportsRes } =
|
const { commentReportsRes, postReportsRes, messageReportsRes } =
|
||||||
this.isoData.routeData;
|
this.isoData.routeData;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { enableDownvotes, enableNsfw, myAuth, setIsoData } from "@utils/app";
|
import { enableDownvotes, enableNsfw, myAuth, setIsoData } from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import { getIdFromString, getQueryParams } from "@utils/helpers";
|
import { getIdFromString, getQueryParams } from "@utils/helpers";
|
||||||
import type { QueryParams } from "@utils/types";
|
import type { QueryParams } from "@utils/types";
|
||||||
import { Choice, RouteDataResponse } from "@utils/types";
|
import { Choice, RouteDataResponse } from "@utils/types";
|
||||||
|
@ -69,7 +70,7 @@ export class CreatePost extends Component<
|
||||||
this.handleSelectedCommunityChange.bind(this);
|
this.handleSelectedCommunityChange.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { communityResponse: communityRes, initialCommunitiesRes } =
|
const { communityResponse: communityRes, initialCommunitiesRes } =
|
||||||
this.isoData.routeData;
|
this.isoData.routeData;
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ export class Post extends Component<any, PostState> {
|
||||||
this.state = { ...this.state, commentSectionRef: createRef() };
|
this.state = { ...this.state, commentSectionRef: createRef() };
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const { commentsRes, postRes } = this.isoData.routeData;
|
const { commentsRes, postRes } = this.isoData.routeData;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { getRecipientIdFromProps, myAuth, setIsoData } from "@utils/app";
|
import { getRecipientIdFromProps, myAuth, setIsoData } from "@utils/app";
|
||||||
|
import { isBrowser } from "@utils/browser";
|
||||||
import { RouteDataResponse } from "@utils/types";
|
import { RouteDataResponse } from "@utils/types";
|
||||||
import { Component } from "inferno";
|
import { Component } from "inferno";
|
||||||
import {
|
import {
|
||||||
|
@ -44,7 +45,7 @@ export class CreatePrivateMessage extends Component<
|
||||||
this.handlePrivateMessageCreate.bind(this);
|
this.handlePrivateMessageCreate.bind(this);
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
this.state = {
|
this.state = {
|
||||||
...this.state,
|
...this.state,
|
||||||
recipientRes: this.isoData.routeData.recipientDetailsResponse,
|
recipientRes: this.isoData.routeData.recipientDetailsResponse,
|
||||||
|
|
|
@ -11,7 +11,11 @@ import {
|
||||||
setIsoData,
|
setIsoData,
|
||||||
showLocal,
|
showLocal,
|
||||||
} from "@utils/app";
|
} from "@utils/app";
|
||||||
import { restoreScrollPosition, saveScrollPosition } from "@utils/browser";
|
import {
|
||||||
|
isBrowser,
|
||||||
|
restoreScrollPosition,
|
||||||
|
saveScrollPosition,
|
||||||
|
} from "@utils/browser";
|
||||||
import {
|
import {
|
||||||
capitalizeFirstLetter,
|
capitalizeFirstLetter,
|
||||||
debounce,
|
debounce,
|
||||||
|
@ -270,7 +274,7 @@ export class Search extends Component<any, SearchState> {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Only fetch the data if coming from another route
|
// Only fetch the data if coming from another route
|
||||||
if (FirstLoadService.isFirstLoad) {
|
if (!isBrowser() || FirstLoadService.isFirstLoad) {
|
||||||
const {
|
const {
|
||||||
communityResponse: communityRes,
|
communityResponse: communityRes,
|
||||||
creatorDetailsResponse: creatorDetailsRes,
|
creatorDetailsResponse: creatorDetailsRes,
|
||||||
|
|
Loading…
Reference in a new issue