UNPKG

@isthatuzii/create-nano-app

Version:

Desktop application scaffolding tool for the Nano Framework

61 lines (54 loc) 1.5 kB
import { createSignal, onMount } from "solid-js"; import "./GreetingPanel.css"; import { createGreetingPanelFunctions } from "./GreetingPanel.functions.js"; import api from "../../api/api.js"; function GreetingPanel(props) { const [state, setState] = createSignal({ name: "World", greeting: null, loading: false, error: null }); const functions = createGreetingPanelFunctions( state, setState, props, api ); onMount(() => { functions.initialize(); }); return ( <div class="nano-panel"> <div class="nano-panel-header">Greeting</div> <div class="nano-panel-content"> <label class="nano-label">Name</label> <input type="text" class="nano-input" placeholder="Enter name" value={state().name} onInput={(e) => functions.setName(e.target.value)} /> <button class="nano-button" onClick={functions.sendGreeting} disabled={state().loading} > {state().loading ? "Sending..." : "Send Greeting"} </button> {state().greeting && ( <div class="greeting-output"> {state().greeting.data} </div> )} {state().error && ( <div class="greeting-error"> Error: {state().error} </div> )} </div> </div> ); } export default GreetingPanel;