From 678bb73e1e8c93fe0a324772d405e3cfb1f0f7fb Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Sat, 17 Aug 2024 10:30:59 -0500 Subject: [PATCH] various fixes --- .dist/channel.js | 63 ++++++-------------------------------------- .dist/localuser.js | 59 +++++++++++++++++++++++++++++++++++++++++ .dist/message.js | 13 +++++++++ webpage/channel.ts | 58 +++++----------------------------------- webpage/localuser.ts | 55 ++++++++++++++++++++++++++++++++++++++ webpage/message.ts | 13 +++++++++ webpage/style.css | 7 +++-- 7 files changed, 160 insertions(+), 108 deletions(-) diff --git a/.dist/channel.js b/.dist/channel.js index 734d600..6f911e8 100644 --- a/.dist/channel.js +++ b/.dist/channel.js @@ -184,9 +184,14 @@ class Channel { ids[id] = res; return html; }.bind(this), async function (id) { - ids[id](); - delete ids[id]; - return true; + if (ids[id]) { + ids[id](); + delete ids[id]; + return true; + } + else { + return true; + } }.bind(this), this.readbottom.bind(this)); } constructor(json, owner) { @@ -1038,55 +1043,3 @@ class Channel { } Channel.setupcontextmenu(); export { Channel }; -{ - let last; - const dud = document.createElement("p"); - dud.classList.add("svgtheme"); - document.body.append(dud); - const css = window.getComputedStyle(dud); - function fixsvgtheme() { - //console.log(things); - const thing = css.color.replace("rgb(", "").replace(")", "").split(","); - //sconsole.log(thing); - const r = +thing[0] / 255; - const g = +thing[1] / 255; - const b = +thing[2] / 255; - const max = Math.max(r, g, b); - const min = Math.min(r, g, b); - const l = (max + min) / 2; - let s; - let h; - if (max !== min) { - if (l <= .5) { - s = (max - min) / (max + min); - } - else { - s = (max - min) / (2.0 - max - min); - } - if (r === max) { - h = (g - b) / (max - min); - } - else if (g === max) { - h = 2 + (b - r) / (max - min); - } - else if (b === max) { - h = 4 + (r - g) / (max - min); - } - } - else { - s = 0; - h = 0; - } - const rot = Math.floor(h * 60) + "deg"; - const invert = .5 - (s / 2) + ""; - const brightness = Math.floor((l * 200)) + "%"; - const current = rot + invert + brightness; - if (current !== last) { - last = current; - document.documentElement.style.setProperty('--rot', rot); - document.documentElement.style.setProperty('--invert', invert); - document.documentElement.style.setProperty('--brightness', brightness); - } - } - setInterval(fixsvgtheme, 100); -} diff --git a/.dist/localuser.js b/.dist/localuser.js index 09773b9..f9c043c 100644 --- a/.dist/localuser.js +++ b/.dist/localuser.js @@ -787,6 +787,7 @@ class Localuser { { const userinfos = getBulkInfo(); tas.addColorInput("Accent color:", _ => { + fixsvgtheme(); userinfos.accent_color = _; localStorage.setItem("userinfos", JSON.stringify(userinfos)); document.documentElement.style.setProperty('--accent-color', userinfos.accent_color); @@ -1184,3 +1185,61 @@ class Localuser { } } export { Localuser }; +let fixsvgtheme; +{ + let last; + const dud = document.createElement("p"); + dud.classList.add("svgtheme"); + document.body.append(dud); + const css = window.getComputedStyle(dud); + function fixsvgtheme_() { + //console.log(things); + const color = css.color; + if (color === last) { + return; + } + ; + last = color; + const thing = color.replace("rgb(", "").replace(")", "").split(","); + //sconsole.log(thing); + const r = +thing[0] / 255; + const g = +thing[1] / 255; + const b = +thing[2] / 255; + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + const l = (max + min) / 2; + let s; + let h; + if (max !== min) { + if (l <= .5) { + s = (max - min) / (max + min); + } + else { + s = (max - min) / (2.0 - max - min); + } + if (r === max) { + h = (g - b) / (max - min); + } + else if (g === max) { + h = 2 + (b - r) / (max - min); + } + else if (b === max) { + h = 4 + (r - g) / (max - min); + } + } + else { + s = 0; + h = 0; + } + const rot = Math.floor(h * 60) + "deg"; + const invert = .5 - (s / 2) + ""; + const brightness = Math.floor((l * 200)) + "%"; + document.documentElement.style.setProperty('--rot', rot); + document.documentElement.style.setProperty('--invert', invert); + document.documentElement.style.setProperty('--brightness', brightness); + } + fixsvgtheme = fixsvgtheme_; + setTimeout(fixsvgtheme_, 100); + fixsvgtheme_(); +} +export { fixsvgtheme }; diff --git a/.dist/message.js b/.dist/message.js index 18a1f13..313e9cf 100644 --- a/.dist/message.js +++ b/.dist/message.js @@ -22,6 +22,19 @@ class Message { content; static del; static resolve; + /* + weakdiv:WeakRef; + set div(e:HTMLDivElement){ + if(!e){ + this.weakdiv=null; + return; + } + this.weakdiv=new WeakRef(e); + } + get div(){ + return this.weakdiv?.deref(); + } + //*/ div; member; reactions; diff --git a/webpage/channel.ts b/webpage/channel.ts index b7c2669..617a051 100644 --- a/webpage/channel.ts +++ b/webpage/channel.ts @@ -198,9 +198,13 @@ class Channel{ return html; }.bind(this), async function(this:Channel,id:string){ - ids[id](); - delete ids[id]; - return true; + if(ids[id]){ + ids[id](); + delete ids[id]; + return true; + }else{ + return true; + } }.bind(this), this.readbottom.bind(this) ); @@ -1027,52 +1031,4 @@ class Channel{ } Channel.setupcontextmenu(); export {Channel}; -{ - let last:string; - const dud=document.createElement("p") - dud.classList.add("svgtheme") - document.body.append(dud); - const css=window.getComputedStyle(dud); - function fixsvgtheme(){ - //console.log(things); - const thing=css.color.replace("rgb(","").replace(")","").split(","); - //sconsole.log(thing); - const r=+thing[0]/255; - const g=+thing[1]/255; - const b=+thing[2]/255; - const max=Math.max(r,g,b); - const min=Math.min(r,g,b); - const l=(max+min)/2; - let s:number; - let h:number; - if(max!==min){ - if(l<=.5){ - s=(max-min)/(max+min); - }else{ - s=(max-min)/(2.0-max-min); - } - if(r===max){ - h=(g-b)/(max-min); - }else if(g===max){ - h=2+(b-r)/(max-min); - }else if(b===max){ - h=4+(r-g)/(max-min); - } - }else{ - s=0; - h=0; - } - const rot=Math.floor(h*60)+"deg"; - const invert=.5-(s/2)+""; - const brightness=Math.floor((l*200))+"%"; - const current=rot+invert+brightness; - if(current!==last){ - last=current; - document.documentElement.style.setProperty('--rot', rot); - document.documentElement.style.setProperty('--invert', invert); - document.documentElement.style.setProperty('--brightness', brightness); - } - } - setInterval(fixsvgtheme,100); -} diff --git a/webpage/localuser.ts b/webpage/localuser.ts index e18181b..f0267ff 100644 --- a/webpage/localuser.ts +++ b/webpage/localuser.ts @@ -807,6 +807,7 @@ class Localuser{ { const userinfos=getBulkInfo(); tas.addColorInput("Accent color:",_=>{ + fixsvgtheme(); userinfos.accent_color=_; localStorage.setItem("userinfos",JSON.stringify(userinfos)); document.documentElement.style.setProperty('--accent-color', userinfos.accent_color); @@ -1210,3 +1211,57 @@ class Localuser{ } } export {Localuser}; +let fixsvgtheme:Function; +{ + let last:string; + const dud=document.createElement("p") + dud.classList.add("svgtheme") + document.body.append(dud); + const css=window.getComputedStyle(dud); + function fixsvgtheme_(){ + //console.log(things); + const color=css.color; + if(color===last) {return}; + last=color; + const thing=color.replace("rgb(","").replace(")","").split(","); + //sconsole.log(thing); + const r=+thing[0]/255; + const g=+thing[1]/255; + const b=+thing[2]/255; + const max=Math.max(r,g,b); + const min=Math.min(r,g,b); + const l=(max+min)/2; + + let s:number; + let h:number; + if(max!==min){ + if(l<=.5){ + s=(max-min)/(max+min); + }else{ + s=(max-min)/(2.0-max-min); + } + if(r===max){ + h=(g-b)/(max-min); + }else if(g===max){ + h=2+(b-r)/(max-min); + }else if(b===max){ + h=4+(r-g)/(max-min); + } + }else{ + s=0; + h=0; + } + const rot=Math.floor(h*60)+"deg"; + const invert=.5-(s/2)+""; + const brightness=Math.floor((l*200))+"%"; + + document.documentElement.style.setProperty('--rot', rot); + document.documentElement.style.setProperty('--invert', invert); + document.documentElement.style.setProperty('--brightness', brightness); + + } + fixsvgtheme=fixsvgtheme_; + setTimeout(fixsvgtheme_,100); + fixsvgtheme_(); +} +export {fixsvgtheme}; diff --git a/webpage/message.ts b/webpage/message.ts index 8e2f162..b90c005 100644 --- a/webpage/message.ts +++ b/webpage/message.ts @@ -27,6 +27,19 @@ class Message{ content:MarkDown; static del:Promise; static resolve:Function; + /* + weakdiv:WeakRef; + set div(e:HTMLDivElement){ + if(!e){ + this.weakdiv=null; + return; + } + this.weakdiv=new WeakRef(e); + } + get div(){ + return this.weakdiv?.deref(); + } + //*/ div:HTMLDivElement; member:Member; reactions:messagejson["reactions"]; diff --git a/webpage/style.css b/webpage/style.css index f0e3e2c..3e4d9ad 100644 --- a/webpage/style.css +++ b/webpage/style.css @@ -15,10 +15,12 @@ body { background-color: var(--profile-bg); border-radius: 10%; padding: .2cm; - width: 7cm !important; - height: 8cm; + width: fit-content !important; + min-height: 3in; border: solid, color-mix(in hsl,var(--black),transparent 80%), .03in; box-shadow: inset .03in .35in .2in var(--accent_color); + min-height: 3.25in; + min-width: 7cm; } video{ max-width: 3in; @@ -160,6 +162,7 @@ samp { display: flex; flex-direction: column; box-sizing: border-box; + max-width: 2.75in; }