Updated Wrapper component, added queue for all ttp requests, updated some desktop app configuration,
This commit is contained in:
parent
e15ec4bb3f
commit
0903f96ba3
10 changed files with 207 additions and 106 deletions
|
|
@ -16,6 +16,7 @@
|
|||
"dependencies": {
|
||||
"@tensamin/ttp": "workspace:*",
|
||||
"@tensamin/shared": "workspace:*",
|
||||
"@tensamin/storage": "workspace:*",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
"zod": "^4.3.6"
|
||||
|
|
|
|||
|
|
@ -2,14 +2,16 @@ import { useEffect, useState } from "react";
|
|||
import { useUser, type User } from "./context";
|
||||
|
||||
import { failedUser } from "@tensamin/shared/data";
|
||||
import { useStorage } from "@tensamin/storage/context";
|
||||
|
||||
// Wrapper function to pass user data to some component
|
||||
export default function Wrapper(props: {
|
||||
userId?: number;
|
||||
userId?: number | "own";
|
||||
loading: React.ReactNode;
|
||||
component: (user: User) => React.ReactNode;
|
||||
}) {
|
||||
const { get } = useUser();
|
||||
const { load } = useStorage();
|
||||
const [user, setUser] = useState<User | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
|
|
@ -20,6 +22,17 @@ export default function Wrapper(props: {
|
|||
|
||||
let active = true;
|
||||
|
||||
if (props.userId === "own") {
|
||||
load("user_id")
|
||||
.then((id) => {
|
||||
get(id)
|
||||
.then((user) => (active ? setUser(user) : null))
|
||||
.catch(() => setUser(failedUser));
|
||||
})
|
||||
.catch(() => setUser(failedUser));
|
||||
return;
|
||||
}
|
||||
|
||||
get(props.userId)
|
||||
.then((value) => {
|
||||
if (active) {
|
||||
|
|
@ -35,7 +48,7 @@ export default function Wrapper(props: {
|
|||
return () => {
|
||||
active = false;
|
||||
};
|
||||
}, [get, props.userId]);
|
||||
}, [load, get, props.userId]);
|
||||
|
||||
return <>{user ? props.component(user) : props.loading}</>;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue