import { useEffect } from 'react' import { useState } from 'react' const LogItem = (props) => { let color = "yellowgreen" let icon = global.cdn("/files/ok.svg") if (props.type == "error") { color = "#f45000" icon = global.cdn("/files/close.svg") } else if (props.type == "warning") { color = "#dfe127" icon = global.cdn("/files/warning.svg") } return
{">"} {props.children}
} export default (props) => { let [items, setItems] = useState([ // { text: "Requesting DNS...", type: "ok", date: new Date() }, // { // text: "Lorem ipsum is placeholder text commonly used in the graphic, print, and publishing industries\ // for previewing layouts and visual mockups.", type: "error", date: new Date() ]); let [autoscrolldown, setAutoscrolldown] = useState(true); props.function.add = (text, type, date) => { if (typeof text == "object") { items.push({ text: text.text, type: text.type, date: text.date || new Date() }) setItems([...items]) } else { items.push({ text, type: type || "ok", date: date || new Date() }) setItems([...items]) } } useEffect(() => { if (items.length > 0) { if (autoscrolldown) { let el = document.getElementById("logger") el.scrollTo(0, el.scrollHeight) } } global.setScroller("logger"); }) let lgrbtm = null return <>
{ props.onclose?.() }}>
{/* */} { global.loggeronstop?.() }} onMouseEnter={() => { document.getElementById("loggerstop").style.width = "25px"; }} onMouseLeave={() => { document.getElementById("loggerstop").style.width = "0px"; }} /> {lang.stop} {items.length > 0 ? { }} /> { let el = document.getElementById("logger") el.scrollTo(0, el.scrollHeight) setTimeout(() => { setAutoscrolldown(true) }, 300); }} />
{ setAutoscrolldown(false) }} onTouchMove={() => { setAutoscrolldown(false) }} onMouseMove={() => { if (global.mousedown) setAutoscrolldown(false) }} onMouseDown={() => { global.mousedown = true; }} onMouseUp={() => { global.mousedown = false; }} onScroll={(e) => { if (!lgrbtm) { lgrbtm = document.getElementById("loggerbtm") } if (((e.target as any).scrollTop + 450) < (e.target as any).scrollHeight - 20) { lgrbtm.style.display = "block" } else { lgrbtm.style.display = "none" setAutoscrolldown(true) } }}> {items.map(it => { return {it.text} })}
: null}
}