chore: Move to Typescript (#2783)
This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously. closes #1282
This commit is contained in:
69
app/routes/index.tsx
Normal file
69
app/routes/index.tsx
Normal file
@@ -0,0 +1,69 @@
|
||||
import * as React from "react";
|
||||
import { Switch } from "react-router-dom";
|
||||
import DelayedMount from "~/components/DelayedMount";
|
||||
import FullscreenLoading from "~/components/FullscreenLoading";
|
||||
import Route from "~/components/ProfiledRoute";
|
||||
import { matchDocumentSlug as slug } from "~/utils/routeHelpers";
|
||||
|
||||
const Authenticated = React.lazy(
|
||||
() =>
|
||||
import(
|
||||
/* webpackChunkName: "authenticated" */
|
||||
"~/components/Authenticated"
|
||||
)
|
||||
);
|
||||
const AuthenticatedRoutes = React.lazy(
|
||||
() =>
|
||||
import(
|
||||
/* webpackChunkName: "authenticated-routes" */
|
||||
"./authenticated"
|
||||
)
|
||||
);
|
||||
const SharedDocument = React.lazy(
|
||||
() =>
|
||||
import(
|
||||
/* webpackChunkName: "shared-document" */
|
||||
"~/scenes/Document/Shared"
|
||||
)
|
||||
);
|
||||
const Login = React.lazy(
|
||||
() =>
|
||||
import(
|
||||
/* webpackChunkName: "login" */
|
||||
"~/scenes/Login"
|
||||
)
|
||||
);
|
||||
const Logout = React.lazy(
|
||||
() =>
|
||||
import(
|
||||
/* webpackChunkName: "logout" */
|
||||
"~/scenes/Logout"
|
||||
)
|
||||
);
|
||||
|
||||
export default function Routes() {
|
||||
return (
|
||||
<React.Suspense
|
||||
fallback={
|
||||
<DelayedMount delay={2000}>
|
||||
<FullscreenLoading />
|
||||
</DelayedMount>
|
||||
}
|
||||
>
|
||||
<Switch>
|
||||
<Route exact path="/" component={Login} />
|
||||
<Route exact path="/create" component={Login} />
|
||||
<Route exact path="/logout" component={Logout} />
|
||||
<Route exact path="/share/:shareId" component={SharedDocument} />
|
||||
<Route
|
||||
exact
|
||||
path={`/share/:shareId/doc/${slug}`}
|
||||
component={SharedDocument}
|
||||
/>
|
||||
<Authenticated>
|
||||
<AuthenticatedRoutes />
|
||||
</Authenticated>
|
||||
</Switch>
|
||||
</React.Suspense>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user