From 8a58cfcba46ffdbc0ea23337ec2d890fd3736212 Mon Sep 17 00:00:00 2001 From: Seth Trowbridge Date: Fri, 31 Oct 2025 15:59:14 -0400 Subject: [PATCH] fix dirty rendering --- app.js | 32 +++++++++++++++++++------------- graph/graph.js | 5 ++++- mock-user-folder/data/room.js | 12 ++++++------ 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/app.js b/app.js index 485e4a4..e7d1ed6 100644 --- a/app.js +++ b/app.js @@ -54,7 +54,7 @@ function Room(room_id, graphParts) Div.Plain("Passes:"), Object.entries(graphParts.Pass).map(([pass_id, pass])=>{ return ()=>{ - console.log("rerendering...", rerender.val) + console.log("rerendering...", rerender.rawVal); return Div.Plain( Div.Title( DOM.div.Plain(pass.name), @@ -82,23 +82,29 @@ function Room(room_id, graphParts) rerender.val; const work = [] - for(const [_pass_ref, data] of part.pass) + for(const [pass, data] of part.pass) { work.push(Div.Part( - DOM.h5("Pass:", _pass_ref.name), + DOM.h5("Pass:", pass.name), DOM.p(data.time), data.work.map(([time, data, user])=>Div.Plain( DOM.span(time), " ", DOM.strong(data), - )) + )), + Div.Plain( + DOM.button({onclick(){ + data.make({}, "NEW"); + rerender.val++ + }}, "Add work!") + ) )) } return Div.Part( - DOM.h3("Part:", part.name), - ...work + DOM.h3(part.name), + ...work, ); } @@ -113,7 +119,7 @@ function Room(room_id, graphParts) rerender.val; - /** @type {(part:TYPES.Part, index:number, pass:TYPES.Pass, dirty:TYPES.Flag)=>HTMLElement|null} */ + /** @type {(part:TYPES.Part, index:number, pass:TYPES.Pass, dirty:number[])=>HTMLElement|null} */ const Iterator = (part, index, pass, dirty)=>{ const partPass = part.pass.get(pass); @@ -122,10 +128,9 @@ function Room(room_id, graphParts) const time = partPass.time; const latest = partPass.work.find(t=>t[0] == time); - return Div.Plain( part.name, - DOM.p( dirty.need.includes(index) ? "Dirty" : "Good!" ), + DOM.p( dirty.includes(index) ? "Dirty" : "Good!" ), Div.Part( time, " ", latest?.[1] || "" ) @@ -137,21 +142,22 @@ function Room(room_id, graphParts) const work = []; for(const [pass, dirty] of desk.pass) { + work.push(Div.Part( - DOM.h5("Pass:", pass.name), + DOM.h5(pass.name), Div.Part( DOM.h4("Need:"), - desk.need.map((part, index)=>Iterator(part, index, pass, dirty)) + desk.need.map((part, index)=>Iterator(part, index, pass, dirty.need)) ), Div.Part( DOM.h4("Make:"), - desk.make.map((part, index)=>Iterator(part, index, pass, dirty)) + desk.make.map((part, index)=>Iterator(part, index, pass, dirty.make)) ) )) } return Div.Part( - DOM.h3("Desk:", desk.name), + DOM.h3(desk.name), work ) } diff --git a/graph/graph.js b/graph/graph.js index 37d9ecd..16d97b8 100644 --- a/graph/graph.js +++ b/graph/graph.js @@ -201,6 +201,7 @@ const Scan =(desk, pass)=> let makeMin = Infinity; let needMax = -Infinity; + // update needMax for(let i=0; i if(partPassTime > needMax) needMax = partPassTime; } + // update makeMin AND dirty check makes for(let i=0; i } } + // dirty check needs for(let i=0; i dirtyNeed.push(i); } } - + desk.pass.set(pass, {need:dirtyNeed, make:dirtyMake}) }; \ No newline at end of file diff --git a/mock-user-folder/data/room.js b/mock-user-folder/data/room.js index b7d7198..f460bd8 100644 --- a/mock-user-folder/data/room.js +++ b/mock-user-folder/data/room.js @@ -9,17 +9,17 @@ export default Rooms({ dev:["Development", "u1"] }, part:{ - p1:"hey", - p2:"sup" + p1:"Page title", + p2:"Page slug", + p3:"Page preview", }, desk:{ - d1:["Desk 01", ["dev"], "one", {p1:3}, "p1"] + d1:["Write page metas", ["dev"], "all", {}, "p1", "p2"], + d2:["Build Page preview", ["dev"], "all", {p1:1, p2:1}, "p3"] }, pass:{ pass_01:["pass 01"], pass_02:["pass 02"] } }) -}) - - +}); \ No newline at end of file