[FTUI-3] Bug bei @close in Popup?

Begonnen von DocCyber, 15 Februar 2024, 14:18:53

Vorheriges Thema - Nächstes Thema

DocCyber

Hallo zusammen,

Beim Schließen eines Popups lasse ich einen Perl-Code ausführen:
<ftui-popup "id=pop1" @close="sendFhem(`{puCloseHeatingDetails()}`)">Das funktioniert sehr gut, aber ich habe anhand der TOST-Messages festgestellt, dass der Code jeweils doppelt aufgerufen wird.
Möglicherweise liegt hier ein Bug vor; ich sehe keinen anderen Grund.

Vielleicht hat jemand eine Idee, oder @setstate sieht mal hin.

NACHTRAG
Im Übrigen passiert das bei jedem Dialog, der via @close geschlossen wird; es hat also nichts mit meinem spezifischen Code zu tun, denke ich.
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

setstate

Hast du zufällig pop1 mehrfach vergeben?

Der Syntax ist auch nicht ganz richtig:
anstatt:
Zitat<ftui-popup "id=pop1"
würde ich das so schreiben:
Zitat<ftui-popup id="pop1"


DocCyber

Zitat von: setstate am 26 Februar 2024, 18:28:46Der Syntax ist auch nicht ganz richtig:
Das stimmt.
Allerdings war das nur ein (falsch aufgebautes) Beispiel, um es nicht zu verkomplizieren.
Der tatsächliche, komplette Code sieht so aus:
<ftui-popup id="pop_heating"
  [active]="popup_ctrl_heating | map('`[KEOD]{1}G[1234]{1}`: true, none: false')"
  height="18em" width="24em" left="20em" top="10em" timeout="0"
  @close="sendFhem(`{puCloseHeatingDetails()}`)">
  <header class="size-3"><ftui-label [text]="TMP"></ftui-label> </header>
  <ftui-row><ftui-column>
    <ftui-label class="size-3"  text  = "Ist-Temp. "></ftui-label>
    <ftui-label class="size-3"  text  = "Soll-Temp. "></ftui-label>
    <ftui-label class="size-3"  text  = "&nbsp;"></ftui-label>
    <ftui-button popup-close
      width="7em"
      fill="outline"
      color="red"
      value="0" (value)="setreading TMP:dlg-confirmed"
      states="$value">Abbruch
    </ftui-button>
  </ftui-column>
  <ftui-column>
    <ftui-label class="size-3" [text] = "TMP:measured-temp | append(' °C')"></ftui-label>
    <!-- Temperaturwahl bei KG2 nicht möglich (dieser Heizkörper ist demontiert) -->
    <ftui-dropdown
      [disabled] = "popup_ctrl_heating | map('`[EOD]{1}G[1234]{1}`:false, KG4:false, KG2:true')"
      class="size-3"
      [value]="TMP:desired-temp"
      (value)="setreading TMP:desired-temp"
      list=",10.0,15.0,16.0,17.0,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0" >
    </ftui-dropdown>
    <ftui-label class="size-3"  text  = "&nbsp;"></ftui-label>
    <ftui-button popup-close
      width="7em"
      fill="outline"
      color="green"
      value="1" (value)="setreading TMP:dlg-confirmed"
      states="$value">OK
    </ftui-button>
  </ftui-column></ftui-row>
</ftui-popup>

Alle IDs sind unique.

Wie gesagt: der Aufruf funktioniert, aber wird jeweils doppelt ausgeführt
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox