From 0c6a302a92ec8539d017c964239652c094118028 Mon Sep 17 00:00:00 2001 From: Fritz Heiden Date: Tue, 8 Apr 2025 20:07:42 +0200 Subject: [PATCH] fix: new command not listed in create remote modal --- www/src/modals/create-remote-modal.jsx | 13 +++++++++---- www/src/modals/modal-handler.js | 20 ++++++++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/www/src/modals/create-remote-modal.jsx b/www/src/modals/create-remote-modal.jsx index dfe6633..b64eb7d 100644 --- a/www/src/modals/create-remote-modal.jsx +++ b/www/src/modals/create-remote-modal.jsx @@ -1,4 +1,4 @@ -import { createMemo, createResource, createSignal } from "solid-js"; +import { createMemo, createResource, createSignal, onMount } from "solid-js"; import ValidatedTextInput from "../components/validated-text-input.jsx"; import RemotesService from "../services/remotes-service.js"; import EventEmitter from "../tools/event-emitter.js"; @@ -9,17 +9,22 @@ import ListManager from "../components/list-manager.jsx"; const eventEmitter = new EventEmitter(); const REMOTE_CREATED_EVENT = "success"; const MIN_TITLE_LENGTH = 3; +const modalHandler = new ModalHandler(); function CreateRemoteModal(props) { const [title, setTitle] = createSignal(""); const [commands, setCommands] = createSignal([]); - const [availableCommands] = createResource(RemotesService.getCommands); + const [availableCommands, { refetch: refetchAvailableCommands }] = + createResource(RemotesService.getCommands); const [error, setError] = createSignal(""); const isTitleValid = createMemo(() => title().length >= MIN_TITLE_LENGTH); - const isFormValid = createMemo(() => isTitleValid()); + modalHandler.onShow(() => { + refetchAvailableCommands(); + }); + async function handleCreateRemote() { let remote; try { @@ -108,7 +113,7 @@ function CreateRemoteModal(props) { ); } -CreateRemoteModal.Handler = new ModalHandler(); +CreateRemoteModal.Handler = modalHandler; CreateRemoteModal.onRemoteCreated = (callback) => eventEmitter.on(REMOTE_CREATED_EVENT, callback); diff --git a/www/src/modals/modal-handler.js b/www/src/modals/modal-handler.js index 2f7f35a..ea311ac 100644 --- a/www/src/modals/modal-handler.js +++ b/www/src/modals/modal-handler.js @@ -1,11 +1,23 @@ +import EventEmitter from "../tools/event-emitter"; + +const SHOW_EVENT = "show"; +const HIDE_EVENT = "hide"; + function ModalHandler() { let _ref; let _modalRef; let _modalId; + let eventEmitter = new EventEmitter(); function setRef(ref) { _ref = ref; _modalRef = new bootstrap.Modal(ref); + _ref.addEventListener('hidden.bs.modal', () => { + eventEmitter.dispatchEvent(HIDE_EVENT); + }); + _ref.addEventListener('show.bs.modal', () => { + eventEmitter.dispatchEvent(SHOW_EVENT); + }); } function show() { @@ -21,15 +33,11 @@ function ModalHandler() { } function onHidden(callback) { - _ref.addEventListener('hidden.bs.modal', () => { - callback(); - }); + eventEmitter.on(HIDE_EVENT, callback); } function onShow(callback) { - _ref.addEventListener('show.bs.modal', () => { - callback(); - }); + eventEmitter.on(SHOW_EVENT, callback); } return {