PadApp/pages/leds_buttons/animation.jsx

74 lines
2.1 KiB
React
Raw Normal View History

2022-12-19 23:03:59 +01:00
import { bg, uiElement, floatingMenu, mainBar, text, modeNotInUse, padButtons } from "../../js/color";
import { JuPadBody, JuPadButtons } from "../../js/svg";
import showStatus from "../../stear/extra/Pages/showStatus";
import { SWindow, s, SFrame } from "../../stear/main";
import { fadein, fadeout, subCancel } from "../../stear/utils";
export default new SWindow({
call: async (stear, { find, resolve, close, render, call, event, include }, animation) => {
console.log(animation)
event.onloaded = () => {
fadein(find.main, 200, true);
}
event.onresolve = async () => {
await fadeout(find.main);
}
let cancelSub = subCancel(() => {
resolve(false);
})
return <div style={{
width: "calc(100% - 4rem)",
height: "calc(100% - 4rem)",
backgroundColor: floatingMenu,
padding: "2rem",
overflow:"auto",
textAlign:"center"
}}>
<div style={{textAlign:"left"}}>
<div style={{
fontSize: "2rem",
padding: "0.1rem",
display: "unset",
backgroundColor: text,
backgroundClip: "text",
webkitBackgroundClip: "text",
color: "transparent",
cursor: "pointer",
userSelect: "none",
}}
event={{
pointerdown: () => {
cancelSub();
resolve(false);
}
}}></div>
</div>
<svg xmlns="http://www.w3.org/2000/svg"
style={{maxHeight:"calc(100% - 6rem)"}}
viewBox="0 0 1920 1080">
<path style={{ fill: uiElement }} d={JuPadBody} />
{JuPadButtons.map((b,i)=><path id="clickable" style={{fill:padButtons}} event={{pointerdown:()=>void call(showStatus,{text:"clicked: "+i})}} d={b} />)}
</svg>
<label htmlFor="aniName">Animation Name: </label>
<input id="aniName" type="text" value={animation.name} style={{
height: "1rem",
border: "2px solid",
borderRadius: "0.5rem",
outline: "none",
padding:"0.5rem"}}
event = {{
change:(e)=>{
animation.name = e.target.value;
}
}}/>
</div>;
}
})