Tables
Pretty HTML tables
First Name | Last Name | City | State | |
---|---|---|---|---|
No data |
<script>
let loading = false
let users = []
const titleize = s => s.replace(/^([a-z])/, (_, r) => r.toUpperCase())
async function update() {
loading = true
users = []
users = (await (await fetch('https://randomuser.me/api/?results=10')).json()).results
loading = false
}
onMount(() => update())
</script>
<button class="button is-primary" on:click={update}>Update</button>
<button class="button is-primary" on:click={() => users = []}>No Data</button>
<br>
<br>
<table class="table is-fullwidth">
<thead>
<tr>
<th></th>
<th>First Name</th>
<th>Last Name</th>
<th>City</th>
<th>State</th>
</tr>
</thead>
<tbody>
{#each users as user}
<tr>
<td><figure class="image"><img class="is-rounded" src="{user.picture.thumbnail}" alt=""></figure></td>
<td>{titleize(user.name.first)}</td>
<td>{titleize(user.name.last)}</td>
<td>{titleize(user.location.city)}</td>
<td>{titleize(user.location.state)}</td>
</tr>
{:else}
{#if !loading}
<tr>
<td colspan="5">
<section class="section">
<div class="content has-text-grey has-text-centered">
<p><i class="far fa-3x fa-frown"></i></p>
<p>No data</p>
</div>
</section>
</td>
</tr>
{/if}
{/each}
</tbody>
</table>