Output.tsx
1 import { Component, createEffect, createSignal, on, Show } from "solid-js"; 2 3 const Output: Component<{ generator: () => any; noRefresh?: boolean }> = ( 4 props 5 ) => { 6 const [value, setValue] = createSignal(); 7 8 createEffect(on(() => props.generator(), setValue)); 9 const refresh = () => setValue(props.generator()); 10 11 return ( 12 <div class="flex gap-4"> 13 <textarea 14 class="font-mono bg-#24273a text-white rounded px-4 py-2 field-sizing-content outline-none resize-none" 15 readonly 16 > 17 {JSON.stringify(value())} 18 </textarea> 19 <Show when={!props.noRefresh}> 20 <button type="button" onClick={refresh}> 21 refresh 22 </button> 23 </Show> 24 </div> 25 ); 26 }; 27 28 export default Output;