summaryrefslogtreecommitdiff
path: root/ui/lib/components/swatch/EventLog.svelte
blob: 2d8c5c04c1634ae787fc685f9c97c79119b02ea3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<script>
  /*
   * The interface exposed by this component is designed to be compatible with the interface
   * exposed by the `EventCapture` class, so that you can do this:
   *
   *    let capture = $state(new EventCapture());
   *    const someEvent = capture.on('someEvent');
   *
   *    // …
   *
   *    <EventLog events={capture.events} clear={capture.clear.bind(capture)} />
   */

  let { events, clear = () => {} } = $props();

  function onclick() {
    clear();
  }
</script>

<button {onclick}>clear</button>
<table>
  <thead>
    <tr>
      <th>event</th>
      <th>arguments</th>
    </tr>
  </thead>
  <tbody>
    {#each events as { event, args }}
      <tr>
        <td>{event}</td>
        <td><code>{JSON.stringify(args)}</code></td>
      </tr>
    {/each}
  </tbody>
</table>