Wow this took like 1 min wtf

This commit is contained in:
Atridad Lahiji 2023-05-30 16:44:01 -06:00
parent 7344821448
commit 29741253d0
No known key found for this signature in database
2 changed files with 57 additions and 4 deletions

View file

@ -121,6 +121,8 @@ const RoomBody: React.FC = () => {
useEffect(() => { useEffect(() => {
window.addEventListener("beforeunload", () => channel.presence.leave()); window.addEventListener("beforeunload", () => channel.presence.leave());
return () => { return () => {
localStorage.removeItem(`${roomId}_story_name`);
localStorage.removeItem(`${roomId}_room_scale`);
window.removeEventListener("beforeunload", () => window.removeEventListener("beforeunload", () =>
channel.presence.leave() channel.presence.leave()
); );
@ -131,8 +133,16 @@ const RoomBody: React.FC = () => {
// Init story name // Init story name
useEffect(() => { useEffect(() => {
if (sessionData && roomFromDb) { if (sessionData && roomFromDb) {
setStoryNameText(roomFromDb.storyName || ""); setStoryNameText(
setRoomScale(roomFromDb.scale || "ERROR"); localStorage.getItem(`${roomId}_story_name`) ||
roomFromDb.storyName ||
""
);
setRoomScale(
localStorage.getItem(`${roomId}_room_scale`) ||
roomFromDb.scale ||
"ERROR"
);
} }
}, [roomFromDb, sessionData]); }, [roomFromDb, sessionData]);
@ -367,7 +377,13 @@ const RoomBody: React.FC = () => {
placeholder="Scale (Comma Separated)" placeholder="Scale (Comma Separated)"
className="input input-bordered m-auto" className="input input-bordered m-auto"
value={roomScale} 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> <label className="label mx-auto">{"Story Name:"} </label>
@ -377,7 +393,13 @@ const RoomBody: React.FC = () => {
placeholder="Story Name" placeholder="Story Name"
className="input input-bordered m-auto" className="input input-bordered m-auto"
value={storyNameText} 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"> <div className="flex flex-row flex-wrap text-center items-center justify-center gap-2">

View file

@ -9,6 +9,7 @@ import {
deleteFromCache, deleteFromCache,
} from "redicache-ts"; } from "redicache-ts";
import { env } from "~/env.mjs"; import { env } from "~/env.mjs";
import { Vote } from "@prisma/client";
const client = cacheClient(env.REDIS_URL); const client = cacheClient(env.REDIS_URL);
@ -36,6 +37,35 @@ export const voteRouter = createTRPCRouter({
return votesCount; 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 set: protectedProcedure
.input(z.object({ value: z.string(), roomId: z.string() })) .input(z.object({ value: z.string(), roomId: z.string() }))
.mutation(async ({ ctx, input }) => { .mutation(async ({ ctx, input }) => {
@ -71,6 +101,7 @@ export const voteRouter = createTRPCRouter({
if (vote) { if (vote) {
await deleteFromCache(client, env.APP_ENV, `kv_votecount_admin`); 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"); await publishToChannel(`${vote.roomId}`, "VOTE_UPDATE", "UPDATE");
} }