Skip to content

Commit

Permalink
Revert "Remove delay between page loading and being blurred"
Browse files Browse the repository at this point in the history
This reverts commit 5197206.
  • Loading branch information
matc-pub committed Apr 18, 2024
1 parent bbce909 commit 8e5599e
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 110 deletions.
2 changes: 1 addition & 1 deletion lemmy-translations
2 changes: 1 addition & 1 deletion src/client/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { initializeSite } from "@utils/app";
import { hydrate } from "inferno-hydrate";
import { BrowserRouter } from "inferno-router";
import App from "../shared/components/app/app";
import { App } from "../shared/components/app/app";
import { lazyHighlightjs } from "../shared/lazy-highlightjs";
import { loadUserLanguage } from "../shared/services/I18NextService";
import { verifyDynamicImports } from "../shared/dynamic-imports";
Expand Down
2 changes: 1 addition & 1 deletion src/server/handlers/catch-all-handler.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { StaticRouter, matchPath } from "inferno-router";
import { Match } from "inferno-router/dist/Route";
import { renderToString } from "inferno-server";
import { GetSiteResponse, LemmyHttp } from "lemmy-js-client";
import App from "../../shared/components/app/app";
import { App } from "../../shared/components/app/app";
import {
InitialFetchRequest,
IsoDataOptionalSite,
Expand Down
197 changes: 90 additions & 107 deletions src/shared/components/app/app.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
import { isAnonymousPath, isAuthPath, setIsoData } from "@utils/app";
import {
Component,
RefObject,
createRef,
forwardRef,
linkEvent,
} from "inferno";
import { Component, createRef, linkEvent } from "inferno";
import { Provider } from "inferno-i18next-dess";
import { Route, Switch } from "inferno-router";
import { IsoDataOptionalSite } from "../../interfaces";
Expand All @@ -22,99 +16,9 @@ import AnonymousGuard from "../common/anonymous-guard";
import { destroyTippy, setupTippy } from "../../tippy";
import AdultConsentModal from "../common/adult-consent-modal";

interface AppProps {
ref: RefObject<HTMLDivElement>;
}

function handleJumpToContent(event) {
event.preventDefault();
}

class App extends Component<AppProps, any> {
private isoData: IsoDataOptionalSite = setIsoData(this.context);

render() {
const siteRes = this.isoData.site_res;
const siteView = siteRes?.site_view;

return (
<div id="app" className="lemmy-site" ref={this.props.ref}>
<button
type="button"
className="btn skip-link bg-light position-absolute start-0 z-3"
onClick={linkEvent(this, handleJumpToContent)}
>
{I18NextService.i18n.t("jump_to_content", "Jump to content")}
</button>
{siteView && <Theme defaultTheme={siteView.local_site.default_theme} />}
<Navbar siteRes={siteRes} />
<div className="mt-4 p-0 fl-1">
<Switch>
{routes.map(
({
path,
component: RouteComponent,
fetchInitialData,
getQueryParams,
}) => (
<Route
key={path}
path={path}
exact
component={routeProps => {
if (!fetchInitialData) {
FirstLoadService.falsify();
}

let queryProps = routeProps;
if (getQueryParams && this.isoData.site_res) {
// ErrorGuard will not render its children when
// site_res is missing, this guarantees that props
// will always contain the query params.
queryProps = {
...routeProps,
...getQueryParams(
routeProps.location.search,
this.isoData.site_res,
),
};
}

return (
<ErrorGuard>
<div tabIndex={-1}>
{RouteComponent &&
(isAuthPath(path ?? "") ? (
<AuthGuard {...routeProps}>
<RouteComponent {...queryProps} />
</AuthGuard>
) : isAnonymousPath(path ?? "") ? (
<AnonymousGuard>
<RouteComponent {...queryProps} />
</AnonymousGuard>
) : (
<RouteComponent {...queryProps} />
))}
</div>
</ErrorGuard>
);
}}
/>
),
)}
<Route component={ErrorPage} />
</Switch>
</div>
<Footer site={siteRes} />
</div>
);
}
}

const AppForwardRef = forwardRef((props, ref) => <App {...props} ref={ref} />);

export default class AppWrapper extends Component<any, any> {
export class App extends Component<any, any> {
private isoData: IsoDataOptionalSite = setIsoData(this.context);
private readonly mainContentRef = createRef<HTMLElement>();
private readonly rootRef = createRef<HTMLDivElement>();

componentDidMount(): void {
Expand All @@ -125,17 +29,96 @@ export default class AppWrapper extends Component<any, any> {
destroyTippy();
}

handleJumpToContent(event) {
event.preventDefault();
this.mainContentRef.current?.focus();
}

render() {
const contentWarning =
this.isoData.site_res?.site_view.site.content_warning;
const siteRes = this.isoData.site_res;
const siteView = siteRes?.site_view;

return (
<Provider i18next={I18NextService.i18n}>
{contentWarning && (
<AdultConsentModal contentWarning={contentWarning} />
)}
<AppForwardRef ref={this.rootRef} />
</Provider>
<>
<Provider i18next={I18NextService.i18n}>
<div id="app" className="lemmy-site" ref={this.rootRef}>
<button
type="button"
className="btn skip-link bg-light position-absolute start-0 z-3"
onClick={linkEvent(this, this.handleJumpToContent)}
>
{I18NextService.i18n.t("jump_to_content", "Jump to content")}
</button>
{siteView && (
<Theme defaultTheme={siteView.local_site.default_theme} />
)}
<Navbar siteRes={siteRes} />
{siteRes?.site_view.site.content_warning && (
<AdultConsentModal
contentWarning={siteRes.site_view.site.content_warning}
/>
)}
<div className="mt-4 p-0 fl-1">
<Switch>
{routes.map(
({
path,
component: RouteComponent,
fetchInitialData,
getQueryParams,
}) => (
<Route
key={path}
path={path}
exact
component={routeProps => {
if (!fetchInitialData) {
FirstLoadService.falsify();
}

let queryProps = routeProps;
if (getQueryParams && this.isoData.site_res) {
// ErrorGuard will not render its children when
// site_res is missing, this guarantees that props
// will always contain the query params.
queryProps = {
...routeProps,
...getQueryParams(
routeProps.location.search,
this.isoData.site_res,
),
};
}

return (
<ErrorGuard>
<div tabIndex={-1}>
{RouteComponent &&
(isAuthPath(path ?? "") ? (
<AuthGuard {...routeProps}>
<RouteComponent {...queryProps} />
</AuthGuard>
) : isAnonymousPath(path ?? "") ? (
<AnonymousGuard>
<RouteComponent {...queryProps} />
</AnonymousGuard>
) : (
<RouteComponent {...queryProps} />
))}
</div>
</ErrorGuard>
);
}}
/>
),
)}
<Route component={ErrorPage} />
</Switch>
</div>
<Footer site={siteRes} />
</div>
</Provider>
</>
);
}
}

0 comments on commit 8e5599e

Please sign in to comment.