/ src / components / Output.tsx
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;