fix: new command not listed in create remote modal

This commit is contained in:
Fritz Heiden 2025-04-08 20:07:42 +02:00
parent 01aff1635d
commit 0c6a302a92
2 changed files with 23 additions and 10 deletions

View File

@ -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);

View File

@ -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 {