users/cleanup

This commit is contained in:
Seth Trowbridge 2025-10-31 16:51:35 -04:00
parent 8a58cfcba4
commit 6005e6566e
2 changed files with 52 additions and 24 deletions

72
app.js
View File

@ -44,34 +44,62 @@ const rooms = van.state({});
let handle = await FSHandle.getDirectoryHandle();
await LoadHandleFiles();
/** @type {Van.State<TYPES.User|false>} */
const loggedIn = van.state(false);
/** @type {(room_id:string, graphParts:TYPES.GraphParts)=>HTMLElement} */
function Room(room_id, graphParts)
{
const rerender = van.state(0);
return Div.Plain(
Div.Plain("Users:"),
Div.PartGroup(
Object.entries(graphParts.User).map(([user_id, user])=>{
return ()=>{
rerender.val;
return Div.Part(
DOM.div.Plain(user.name),
()=>{
return DOM.button.Plain(
{onclick(){
rerender.val++
loggedIn.val = user;
}},
loggedIn.val == user ? "this is me" : "impersonate"
)
},
)
}
})
),
Div.Plain("Passes:"),
Object.entries(graphParts.Pass).map(([pass_id, pass])=>{
return ()=>{
console.log("rerendering...", rerender.rawVal);
return Div.Plain(
Div.Title(
Div.PartGroup(
Object.entries(graphParts.Pass).map(([pass_id, pass])=>{
return ()=>{
console.log("rerendering...", rerender.rawVal);
rerender.val;
return Div.Part(
DOM.div.Plain(pass.name),
DOM.span.Plain(pass.path),
),
()=>{
return DOM.button.Plain(
{async onclick(){
await pass[pass.live ? "dump" : "load"]();
rerender.val++
}},
pass.live ? "Dump" : "Load"
)
},
)
}
}),
()=>{
return DOM.button.Plain(
{async onclick(){
await pass[pass.live ? "dump" : "load"]();
rerender.val++
}},
pass.live ? "Dump" : "Load"
)
},
)
}
})
),
Div.Plain("Parts"),
Div.PartGroup(
@ -86,7 +114,7 @@ function Room(room_id, graphParts)
{
work.push(Div.Part(
DOM.h5("Pass:", pass.name),
DOM.h5(pass.name),
DOM.p(data.time),
data.work.map(([time, data, user])=>Div.Plain(
DOM.span(time),
@ -94,8 +122,8 @@ function Room(room_id, graphParts)
DOM.strong(data),
)),
Div.Plain(
DOM.button({onclick(){
data.make({}, "NEW");
loggedIn.val && DOM.button({onclick(){
data.make(loggedIn.val, "NEW");
rerender.val++
}}, "Add work!")
)

View File

@ -18,8 +18,8 @@ export default Rooms({
d2:["Build Page preview", ["dev"], "all", {p1:1, p2:1}, "p3"]
},
pass:{
pass_01:["pass 01"],
pass_02:["pass 02"]
pass_01:["January"],
pass_02:["February"]
}
})
});