start implementation

This commit is contained in:
Fritz Heiden 2025-04-07 15:44:41 +02:00
parent 3a33f82220
commit fa89bd904f
2 changed files with 19 additions and 2 deletions

View File

@ -0,0 +1,11 @@
import { mergeProps } from "solid-js";
function ListManager(props) {
props = mergeProps(
{ items: [], availableItems: [], itemToString: () => "" },
props
);
return <></>;
}
export default ListManager;

View File

@ -1,9 +1,10 @@
import { createMemo, createSignal } from "solid-js"; import { createMemo, createResource, createSignal } from "solid-js";
import ValidatedTextInput from "../components/validated-text-input.jsx"; import ValidatedTextInput from "../components/validated-text-input.jsx";
import RemotesService from "../services/remotes-service.js"; import RemotesService from "../services/remotes-service.js";
import EventEmitter from "../tools/event-emitter.js"; import EventEmitter from "../tools/event-emitter.js";
import ModalHandler from "./modal-handler.js"; import ModalHandler from "./modal-handler.js";
import Modal from "./modal.jsx"; import Modal from "./modal.jsx";
import ListManager from "../components/list-manager.jsx";
const eventEmitter = new EventEmitter(); const eventEmitter = new EventEmitter();
const REMOTE_CREATED_EVENT = "success"; const REMOTE_CREATED_EVENT = "success";
@ -12,6 +13,7 @@ const MIN_TITLE_LENGTH = 3;
function CreateRemoteModal(props) { function CreateRemoteModal(props) {
const [title, setTitle] = createSignal(""); const [title, setTitle] = createSignal("");
const [commands, setCommands] = createSignal([]); const [commands, setCommands] = createSignal([]);
const [availableCommands] = createResource(RemotesService.getCommands);
const [error, setError] = createSignal(""); const [error, setError] = createSignal("");
const isTitleValid = createMemo(() => title().length >= MIN_TITLE_LENGTH); const isTitleValid = createMemo(() => title().length >= MIN_TITLE_LENGTH);
@ -67,7 +69,11 @@ function CreateRemoteModal(props) {
/> />
</div> </div>
</div> </div>
<ListManager
items={commands()}
availableItems={availableCommands()}
itemToString={(command) => command.getName()}
/>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
Cancel Cancel