improved line editor and price editor
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("com.diffplug.spotless") version "latest.release"
|
id("com.diffplug.spotless") version "7.0.4"
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|||||||
@@ -2,18 +2,30 @@
|
|||||||
let { editable = false, value = $bindable(null) } = $props();
|
let { editable = false, value = $bindable(null) } = $props();
|
||||||
let editing = $state(false);
|
let editing = $state(false);
|
||||||
|
|
||||||
function toggleEdit(){
|
let editValue = value;
|
||||||
editing = !editing;
|
|
||||||
|
function applyEdit(){
|
||||||
|
value = editValue;
|
||||||
|
editing=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetEdit(){
|
||||||
|
editing = false;
|
||||||
|
editValue = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function startEdit(){
|
||||||
|
editing = editable;
|
||||||
}
|
}
|
||||||
|
|
||||||
function typed(ev){
|
function typed(ev){
|
||||||
if (ev.keyCode == 13) toggleEdit();
|
if (ev.keyCode == 13) applyEdit();
|
||||||
|
if (ev.keyCode == 27) resetEdit();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if editable && editing}
|
{#if editable && editing}
|
||||||
<input bind:value onkeyup={typed} />
|
<input bind:value={editValue} onkeyup={typed} autofocus />
|
||||||
{:else}
|
{:else}
|
||||||
<div onclick={toggleEdit}>{value}</div>
|
<div onclick={startEdit}>{value}</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
@@ -2,18 +2,25 @@
|
|||||||
let { editable = false, currency, value = $bindable(null) } = $props();
|
let { editable = false, currency, value = $bindable(null) } = $props();
|
||||||
let editing = $state(false);
|
let editing = $state(false);
|
||||||
|
|
||||||
function toggleEdit(){
|
let editValue = value/100;
|
||||||
editing = !editing;
|
|
||||||
if (editing){
|
function applyEdit(){
|
||||||
value /= 100;
|
value = editValue * 100;
|
||||||
}
|
editing = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetEdit(){
|
||||||
|
editValue = value/100;
|
||||||
|
editing = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function startEdit(){
|
||||||
|
editing = editable;
|
||||||
}
|
}
|
||||||
|
|
||||||
function typed(ev){
|
function typed(ev){
|
||||||
if (ev.keyCode == 13) {
|
if (ev.keyCode == 13) applyEdit();
|
||||||
toggleEdit();
|
if (ev.keyCode == 27) resetEdit();
|
||||||
value *= 100;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -22,8 +29,8 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
{#if editable && editing}
|
{#if editable && editing}
|
||||||
<input type="number" step=".01" bind:value onkeyup={typed} /> {currency}
|
<input type="number" step=".01" bind:value={editValue} onkeyup={typed} /> {currency}
|
||||||
{:else}
|
{:else}
|
||||||
<div onclick={toggleEdit}>{Number(value/100).toFixed(2)} {currency}</div>
|
<div onclick={startEdit}>{Number(value/100).toFixed(2)} {currency}</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user