rewrite client providing & fix sign in redirect
This commit is contained in:
parent
942b9dcce8
commit
0caa9aab88
5 changed files with 106 additions and 53 deletions
53
src/App.tsx
53
src/App.tsx
|
@ -1,12 +1,27 @@
|
|||
import { Route, Router } from "@solidjs/router";
|
||||
import { ThemeProvider } from "@suid/material";
|
||||
import { Component, lazy } from "solid-js";
|
||||
import {
|
||||
Component,
|
||||
createRenderEffect,
|
||||
createSignal,
|
||||
ErrorBoundary,
|
||||
lazy,
|
||||
} from "solid-js";
|
||||
import { useRootTheme } from "./material/mui.js";
|
||||
import "./App.css"
|
||||
import {
|
||||
Provider as ClientProvider,
|
||||
createMastoClientFor,
|
||||
type Session,
|
||||
} from "./masto/clients.js";
|
||||
import "./App.css";
|
||||
import { $accounts } from "./accounts/stores.js";
|
||||
import { useStore } from "@nanostores/solid";
|
||||
|
||||
const AccountSignIn = lazy(() => import("./accounts/SignIn.js"));
|
||||
const AccountMastodonOAuth2Callback = lazy(() => import("./accounts/MastodonOAuth2Callback.js"))
|
||||
const TimelineHome = lazy(() => import("./timelines/Home.js"))
|
||||
const AccountMastodonOAuth2Callback = lazy(
|
||||
() => import("./accounts/MastodonOAuth2Callback.js"),
|
||||
);
|
||||
const TimelineHome = lazy(() => import("./timelines/Home.js"));
|
||||
|
||||
const Routing: Component = () => {
|
||||
return (
|
||||
|
@ -14,7 +29,10 @@ const Routing: Component = () => {
|
|||
<Route path="/" component={TimelineHome}></Route>
|
||||
<Route path={"/accounts"}>
|
||||
<Route path={"/sign-in"} component={AccountSignIn} />
|
||||
<Route path={"/oauth2/mastodon"} component={AccountMastodonOAuth2Callback} />
|
||||
<Route
|
||||
path={"/oauth2/mastodon"}
|
||||
component={AccountMastodonOAuth2Callback}
|
||||
/>
|
||||
</Route>
|
||||
</Router>
|
||||
);
|
||||
|
@ -22,10 +40,29 @@ const Routing: Component = () => {
|
|||
|
||||
const App: Component = () => {
|
||||
const theme = useRootTheme();
|
||||
const accts = useStore($accounts);
|
||||
const clientStore = createSignal<Session[]>([]);
|
||||
|
||||
createRenderEffect(() => {
|
||||
const [, setClients] = clientStore;
|
||||
setClients(
|
||||
accts().map((x) => ({ account: x, client: createMastoClientFor(x) })),
|
||||
);
|
||||
});
|
||||
|
||||
return (
|
||||
<ThemeProvider theme={theme()}>
|
||||
<Routing />
|
||||
</ThemeProvider>
|
||||
<ErrorBoundary
|
||||
fallback={(err, reset) => {
|
||||
console.error(err);
|
||||
return <></>;
|
||||
}}
|
||||
>
|
||||
<ThemeProvider theme={theme()}>
|
||||
<ClientProvider value={clientStore}>
|
||||
<Routing />
|
||||
</ClientProvider>
|
||||
</ThemeProvider>
|
||||
</ErrorBoundary>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue