Wow this took like 1 min wtf
This commit is contained in:
parent
7344821448
commit
29741253d0
2 changed files with 57 additions and 4 deletions
|
@ -121,6 +121,8 @@ const RoomBody: React.FC = () => {
|
|||
useEffect(() => {
|
||||
window.addEventListener("beforeunload", () => channel.presence.leave());
|
||||
return () => {
|
||||
localStorage.removeItem(`${roomId}_story_name`);
|
||||
localStorage.removeItem(`${roomId}_room_scale`);
|
||||
window.removeEventListener("beforeunload", () =>
|
||||
channel.presence.leave()
|
||||
);
|
||||
|
@ -131,8 +133,16 @@ const RoomBody: React.FC = () => {
|
|||
// Init story name
|
||||
useEffect(() => {
|
||||
if (sessionData && roomFromDb) {
|
||||
setStoryNameText(roomFromDb.storyName || "");
|
||||
setRoomScale(roomFromDb.scale || "ERROR");
|
||||
setStoryNameText(
|
||||
localStorage.getItem(`${roomId}_story_name`) ||
|
||||
roomFromDb.storyName ||
|
||||
""
|
||||
);
|
||||
setRoomScale(
|
||||
localStorage.getItem(`${roomId}_room_scale`) ||
|
||||
roomFromDb.scale ||
|
||||
"ERROR"
|
||||
);
|
||||
}
|
||||
}, [roomFromDb, sessionData]);
|
||||
|
||||
|
@ -367,7 +377,13 @@ const RoomBody: React.FC = () => {
|
|||
placeholder="Scale (Comma Separated)"
|
||||
className="input input-bordered m-auto"
|
||||
value={roomScale}
|
||||
onChange={(event) => setRoomScale(event.target.value)}
|
||||
onChange={(event) => {
|
||||
setRoomScale(event.target.value);
|
||||
localStorage.setItem(
|
||||
`${roomId}_room_scale`,
|
||||
event.target.value
|
||||
);
|
||||
}}
|
||||
/>
|
||||
|
||||
<label className="label mx-auto">{"Story Name:"} </label>
|
||||
|
@ -377,7 +393,13 @@ const RoomBody: React.FC = () => {
|
|||
placeholder="Story Name"
|
||||
className="input input-bordered m-auto"
|
||||
value={storyNameText}
|
||||
onChange={(event) => setStoryNameText(event.target.value)}
|
||||
onChange={(event) => {
|
||||
setStoryNameText(event.target.value);
|
||||
localStorage.setItem(
|
||||
`${roomId}_story_name`,
|
||||
event.target.value
|
||||
);
|
||||
}}
|
||||
/>
|
||||
|
||||
<div className="flex flex-row flex-wrap text-center items-center justify-center gap-2">
|
||||
|
|
|
@ -9,6 +9,7 @@ import {
|
|||
deleteFromCache,
|
||||
} from "redicache-ts";
|
||||
import { env } from "~/env.mjs";
|
||||
import { Vote } from "@prisma/client";
|
||||
|
||||
const client = cacheClient(env.REDIS_URL);
|
||||
|
||||
|
@ -36,6 +37,35 @@ export const voteRouter = createTRPCRouter({
|
|||
return votesCount;
|
||||
}
|
||||
}),
|
||||
getAllByRoomId: protectedProcedure
|
||||
.input(z.object({ roomId: z.string() }))
|
||||
.query(async ({ ctx, input }) => {
|
||||
const cachedResult = await fetchFromCache<Vote[]>(
|
||||
client,
|
||||
env.APP_ENV,
|
||||
`kv_votes_${input.roomId}`
|
||||
);
|
||||
|
||||
if (cachedResult) {
|
||||
return cachedResult;
|
||||
} else {
|
||||
const votesByRoomId = await ctx.prisma.vote.findMany({
|
||||
where: {
|
||||
roomId: input.roomId,
|
||||
},
|
||||
});
|
||||
|
||||
await writeToCache(
|
||||
client,
|
||||
env.APP_ENV,
|
||||
`kv_votes_${input.roomId}`,
|
||||
JSON.stringify(votesByRoomId),
|
||||
69
|
||||
);
|
||||
|
||||
return votesByRoomId;
|
||||
}
|
||||
}),
|
||||
set: protectedProcedure
|
||||
.input(z.object({ value: z.string(), roomId: z.string() }))
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
|
@ -71,6 +101,7 @@ export const voteRouter = createTRPCRouter({
|
|||
|
||||
if (vote) {
|
||||
await deleteFromCache(client, env.APP_ENV, `kv_votecount_admin`);
|
||||
await deleteFromCache(client, env.APP_ENV, `kv_votes_${input.roomId}`);
|
||||
|
||||
await publishToChannel(`${vote.roomId}`, "VOTE_UPDATE", "UPDATE");
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue