extended = [entry.id, ...extended]}
+ on:contracted={() => extended = extended.filter(v => v !== entry.id)}
+ on:deleted={(event) => { dispatch('deleted', event.detail) }}
+
+ id={entry.id}
+ kind={entry.base.kind}
+ creationDate={new Date(entry.creationDate)}
+ title={entry.base.kind === "date" ? new Date(entry.base.referencedDate).toLocaleDateString() : entry.title}
+ isExtended={extended.includes(entry.id)}
+ >
{#if entry.base.kind === "song" || entry.base.kind === "album"}
{entry.base.artist} ‐ {entry.base.title}
diff --git a/identity-web/src/routes/dashboard/utils/Entry.svelte b/identity-web/src/routes/dashboard/utils/Entry.svelte
index 7381357..3649b97 100644
--- a/identity-web/src/routes/dashboard/utils/Entry.svelte
+++ b/identity-web/src/routes/dashboard/utils/Entry.svelte
@@ -13,6 +13,11 @@
export let title: string | undefined;
export let isExtended = false;
+ let prevExtended = isExtended
+
+ $: if (prevExtended !== isExtended) {
+ dispatch(isExtended ? 'extended' : 'contracted')
+ }
async function processDeletion(id: string) {
await deleteEntry($credentials!, id);