From 2480a08ada34a0ca207067c7a26ea095e3a4506d Mon Sep 17 00:00:00 2001 From: Rachel Powers <508861+Ryex@users.noreply.github.com> Date: Thu, 25 Apr 2024 15:33:17 -0700 Subject: [PATCH] exchange quantity input for clear button - slight speed up, prevent unneeded deviceMixin updates In future need to let Mixin component subscribe to changes they care about Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com> --- www/src/ts/virtual_machine/base_device.ts | 3 ++- www/src/ts/virtual_machine/device/slot.ts | 26 ++++++++++++++++++- .../virtual_machine/device/slot_add_dialog.ts | 12 ++++++--- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/www/src/ts/virtual_machine/base_device.ts b/www/src/ts/virtual_machine/base_device.ts index c87036b..0f4b571 100644 --- a/www/src/ts/virtual_machine/base_device.ts +++ b/www/src/ts/virtual_machine/base_device.ts @@ -112,9 +112,10 @@ export const VMDeviceMixin = >( _handleDeviceModified(e: CustomEvent) { const id = e.detail; + const activeIc = window.VM.vm.activeIC; if (this.deviceID === id) { this.updateDevice(); - } else { + } else if (id === activeIc.id) { this.requestUpdate(); } } diff --git a/www/src/ts/virtual_machine/device/slot.ts b/www/src/ts/virtual_machine/device/slot.ts index 76b6694..2be3d6f 100644 --- a/www/src/ts/virtual_machine/device/slot.ts +++ b/www/src/ts/virtual_machine/device/slot.ts @@ -45,6 +45,16 @@ export class VMDeviceSlot extends VMDeviceMixin(VMDeviceDBMixin(BaseElement)) { .quantity-input sl-input::part(input) { width: 3rem; } + .clear-occupant::part(base) { + color: var(--sl-color-warning-500); + } + .clear-occupant::part(base):hover, + .clear-occupant::part(base):focus { + color: var(--sl-color-warning-400); + } + .clear-occupant::part(base):active { + color: var(--sl-color-warning-500); + } `, ]; @@ -90,6 +100,11 @@ export class VMDeviceSlot extends VMDeviceMixin(VMDeviceDBMixin(BaseElement)) { />`; const template = this.slotOcccupantTemplate(); + const activeIc = window.VM.vm.activeIC; + const thisIsActiveIc = activeIc.id === this.deviceID; + + const enableQuantityInput = false; + return html`
html`
+ ${ enableQuantityInput ? html` Max Quantity: ${slot.occupant.max_quantity}
- + ` : "" } + + +
`, () => html``, @@ -161,6 +181,10 @@ export class VMDeviceSlot extends VMDeviceMixin(VMDeviceDBMixin(BaseElement)) { `; } + _handleSlotOccupantRemove() { + window.VM.vm.removeDeviceSlotOccupant(this.deviceID, this.slotIndex); + } + _handleSlotClick(_e: Event) { this.dispatchEvent( new CustomEvent("device-modify-slot", { diff --git a/www/src/ts/virtual_machine/device/slot_add_dialog.ts b/www/src/ts/virtual_machine/device/slot_add_dialog.ts index 4bc2079..ecb744f 100644 --- a/www/src/ts/virtual_machine/device/slot_add_dialog.ts +++ b/www/src/ts/virtual_machine/device/slot_add_dialog.ts @@ -131,18 +131,22 @@ export class VMSlotAddDialog extends VMDeviceDBMixin(BaseElement) { } renderSearchResults() { - return html` -
-
+ const enableNone = false; + const none = html` +
None
+ `; + return html` +
+ ${enableNone ? none : ""} ${this._searchResults.map((result) => { const imgSrc = `img/stationpedia/${result.entry.name}.png`; const img = html` `; return html` -
+
${img}
${result.entry.title}