This commit is contained in:
2025-08-24 13:59:16 -04:00
parent 3347452ec4
commit 9b918b1c6a
3 changed files with 17 additions and 10 deletions

View File

@@ -6,10 +6,13 @@ import pkg from "../package.json";
import "./style.css";
import api from "./api";
import Cookies from "js-cookie";
import { mePromise } from "./profile";
const Profile = () => {
let dialogRef!: HTMLDialogElement;
const [profile] = createResource(async () => api.profile.get());
const [profile] = createResource(() =>
mePromise.then(() => api.profile.get())
);
return (
<>

View File

@@ -3,7 +3,8 @@ import { ApiType } from "./fn";
import api from "./api";
import hash from "object-hash";
export const [me] = createResource(() => api.whoami.post().then((r) => r.data));
export const mePromise = api.whoami.post().then((r) => r.data);
export const [me] = createResource(() => mePromise);
const playerProfiles: {
[humanKey: string]: Resource<ApiType<typeof api.profile.get>>;

View File

@@ -9,11 +9,19 @@ import { human } from "./human";
import dayjs from "dayjs";
import db from "./db";
import { liveTable, WsOut, WsIn } from "./table";
import { Human } from "@prisma/client";
const api = new Elysia({ prefix: "/api" })
.post("/whoami", async ({ cookie: { token } }) => {
let human;
if (token.value == null) {
let human: Human | null;
if (
token.value == null ||
(human = await db.human.findUnique({
where: {
token: token.value,
},
})) == null
) {
human = await db.human.create({
data: {},
});
@@ -22,13 +30,8 @@ const api = new Elysia({ prefix: "/api" })
expires: dayjs().add(1, "year").toDate(),
httpOnly: true,
});
} else {
human = await db.human.findUniqueOrThrow({
where: {
token: token.value,
},
});
}
return human.key;
})
.use(human)