diff options
author | Jakob Stendahl <14180120+JakobST1n@users.noreply.github.com> | 2021-10-11 20:02:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-11 20:02:04 +0200 |
commit | c67531161e56488166a33232f87566309ba8676e (patch) | |
tree | 846e59a020e80bea48557d5a06af5728e44961ff /src_frontend/Components/Editor/Controls.svelte | |
parent | e6880cd8ccf82d993f222cb14b4860581654acb8 (diff) | |
parent | c1b6eec770b885a9829e1f62bad5cc99389ca429 (diff) | |
download | Luxcena-Neo-c67531161e56488166a33232f87566309ba8676e.tar.gz Luxcena-Neo-c67531161e56488166a33232f87566309ba8676e.zip |
Merge pull request #24 from JakobST1n/rebuild
v1.0.0
Diffstat (limited to 'src_frontend/Components/Editor/Controls.svelte')
-rw-r--r-- | src_frontend/Components/Editor/Controls.svelte | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src_frontend/Components/Editor/Controls.svelte b/src_frontend/Components/Editor/Controls.svelte new file mode 100644 index 0000000..302aa7a --- /dev/null +++ b/src_frontend/Components/Editor/Controls.svelte @@ -0,0 +1,83 @@ +<script> + import { onMount } from "svelte"; + import PrettyVar from "../../ComponentLib/PrettyVar.svelte"; + import { openSocket } from "../../stores/socketStore"; + + let brightnessValue = 0; + let power_on = false; + let variables = {}; + + function setBrightness() { + if (!power_on) { openSocket.emit("power:set", true); } + openSocket.emit("brightness:set", brightnessValue); + } + function setPower() { openSocket.emit("power:set", power_on); } + function setVar(ev) { + openSocket.emit("var:set", ev.target.id, ev.target.value); + } + + openSocket.on("power", (power) => power_on = power); + openSocket.on("brightness", (value) => brightnessValue = value); + openSocket.on("vars", (vars) => variables = vars); + openSocket.on("var", (name, value) => { + name = name.replace("variable/", ""); + if (value.value == null) { + delete variables[name]; + } else { + variables[name] = value; + } + variables = variables; + }); + + onMount(() => { + openSocket.emit("power:get"); + openSocket.emit("brightness:get"); + openSocket.emit("vars:get") + }); +</script> + +<style> + label { + width: 100%; + font-size: 12px; + color: var(--grey-500); + } + .var-group { + display: flex; + } + input[type=range] { + width: 100%; + } + input[type=text] { + margin-top: 5px; + display: block; + width: 100%; + background-color: #737373; + padding: 5px; + color: white; + border: none; + box-sizing: border-box; + border-radius: 5px; + } +</style> + +<div> + <div class="var-group"> + <label for="power">Power</label> + <input type="checkbox" id="power" bind:checked={power_on} on:change={setPower} /> + </div> + <div> + <label for="brightness">Brightness</label> + <div class="var-group"> + <input id="brightness" type="range" min=0 max=255 bind:value={brightnessValue} on:change={setBrightness} /> + {brightnessValue} + </div> + </div> + + {#each Object.entries(variables) as [name, value]} + <div> + <label for="{name}"><PrettyVar varText={name} /></label> + <input type="text" id="{name}" bind:value={value.value} on:blur={setVar} /> + </div> + {/each} +</div>
\ No newline at end of file |