18 lines
1.3 KiB
Svelte
18 lines
1.3 KiB
Svelte
<script lang="ts">
|
|
import LiveCharacters from '$lib/components/LiveCharacters.svelte';
|
|
let { data } = $props();
|
|
</script>
|
|
<p class="eyebrow">APPLICATION-USER AGGREGATION</p><h1>Characters</h1>
|
|
<p class="muted">Connect each character explicitly. ESI does not expose all characters on an EVE account.</p>
|
|
{#if data.mode !== 'demo' && data.identityEnabled}<form method="POST" action="/auth/eve"><button>Connect EVE Character</button></form>{/if}
|
|
{#if data.error}<p class="error" role="alert">{data.error}</p>{/if}
|
|
{#if data.userId && data.convexUrl && data.mode !== 'demo'}<LiveCharacters />{/if}
|
|
{#each data.characters as character (character.id)}
|
|
<section class="panel"><div class="row spread"><h2>{character.name}</h2><span class="muted">{character.assets.status}</span></div>
|
|
<small>Character {character.id}</small>
|
|
<p class="muted">Assets synchronized: {character.assets.syncedAt ? new Date(character.assets.syncedAt).toISOString() : 'Not yet'}<br />Granted scopes: {character.scopes.join(', ') || 'None'}</p>
|
|
{#if character.assets.error}<p class="warning">{character.assets.error}</p>{/if}
|
|
</section>
|
|
{:else}<section class="panel"><p>No connected characters. Your first verified EVE login creates your application user; further connections attach to that user.</p></section>{/each}
|
|
<p><a href="/assets">Open asset report →</a></p>
|