feat: some profile page upgrades
This commit is contained in:
25
src/app.tsx
25
src/app.tsx
@@ -1,8 +1,8 @@
|
|||||||
import { FunctionComponent } from "preact";
|
import { FunctionComponent } from "preact";
|
||||||
import { ErrorBoundary, LocationProvider, Route, Router, useLocation } from "preact-iso";
|
import { ErrorBoundary, lazy, LocationProvider, Route, Router, useLocation } from "preact-iso";
|
||||||
import "preact/debug";
|
import "preact/debug";
|
||||||
import LoginPage from "./pages/login";
|
import LoginPage from "./pages/login";
|
||||||
import ProfilePage from "./pages/profile";
|
import { AppProvider } from "./providers/AuthProvider";
|
||||||
|
|
||||||
const HomePage: FunctionComponent = () => {
|
const HomePage: FunctionComponent = () => {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@@ -12,14 +12,17 @@ const HomePage: FunctionComponent = () => {
|
|||||||
|
|
||||||
export function App() {
|
export function App() {
|
||||||
return (
|
return (
|
||||||
<LocationProvider>
|
<AppProvider>
|
||||||
<ErrorBoundary>
|
<LocationProvider>
|
||||||
<Router>
|
<ErrorBoundary>
|
||||||
<Route path="/" component={HomePage} />
|
<Router>
|
||||||
<Route path="/login" component={LoginPage} />
|
<Route path="/" component={HomePage} />
|
||||||
<Route path="/profile" component={ProfilePage} />
|
<Route path="/login" component={LoginPage} />
|
||||||
</Router>
|
<Route path="/profile/*" component={lazy(() => import("./pages/profile"))} />
|
||||||
</ErrorBoundary>
|
<Route default component={() => <h1>404</h1>} />
|
||||||
</LocationProvider>
|
</Router>
|
||||||
|
</ErrorBoundary>
|
||||||
|
</LocationProvider>
|
||||||
|
</AppProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
import { FunctionComponent } from "preact";
|
|
||||||
import Menu from "./menu";
|
|
||||||
|
|
||||||
const Layout: FunctionComponent = (props) => {
|
|
||||||
return (
|
|
||||||
<div class="flex min-w-screen flex-row justify-between">
|
|
||||||
{props.children}
|
|
||||||
<Menu />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Layout;
|
|
||||||
@@ -1,14 +1,25 @@
|
|||||||
import Button from "@/components/ui/Button";
|
import Button from "@/components/ui/Button";
|
||||||
import Input from "@/components/ui/Input";
|
import Input from "@/components/ui/Input";
|
||||||
|
import { useAppContext } from "@/providers/AuthProvider";
|
||||||
import { FunctionComponent } from "preact";
|
import { FunctionComponent } from "preact";
|
||||||
|
import { useLocation } from "preact-iso";
|
||||||
import classes from "./login.module.scss";
|
import classes from "./login.module.scss";
|
||||||
const LoginPage: FunctionComponent = () => {
|
const LoginPage: FunctionComponent = () => {
|
||||||
|
const { isLoggedIn } = useAppContext();
|
||||||
|
const location = useLocation();
|
||||||
return (
|
return (
|
||||||
<div class={classes.login_container}>
|
<div class={classes.login_container}>
|
||||||
<div class={classes.login_card}>
|
<div class={classes.login_card}>
|
||||||
<Input placeholder="Login" textAlign="center" />
|
<Input placeholder="Login" textAlign="center" />
|
||||||
<Input isPassword placeholder="Password" textAlign="center" />
|
<Input isPassword placeholder="Password" textAlign="center" />
|
||||||
<Button onClick={() => {}}>Login</Button>
|
<Button
|
||||||
|
onClick={() => {
|
||||||
|
isLoggedIn.value = true;
|
||||||
|
location.route("/profile/settings");
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Login
|
||||||
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,11 +1,26 @@
|
|||||||
import Layout from "@/components/layout";
|
import Menu from "@/components/menu";
|
||||||
import { FunctionComponent } from "preact";
|
import { FunctionComponent } from "preact";
|
||||||
|
import { Route, Router, useLocation } from "preact-iso";
|
||||||
|
|
||||||
const ProfilePage: FunctionComponent = () => {
|
const ProfilePage: FunctionComponent = () => {
|
||||||
|
const { route } = useLocation();
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<div class="flex min-w-screen flex-row justify-between">
|
||||||
<p>Profile</p>
|
<div class="w-full overflow-x-auto">
|
||||||
</Layout>
|
<Router>
|
||||||
|
<Route path="/settings" component={() => <h1>Test</h1>} />
|
||||||
|
<Route path="/tasks" component={() => <h1>Test2</h1>} />
|
||||||
|
<Route
|
||||||
|
default
|
||||||
|
component={() => {
|
||||||
|
route("/profile/settings", true);
|
||||||
|
return null;
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Router>
|
||||||
|
</div>
|
||||||
|
<Menu />
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user