fix(timeline): show EventPill provenance even when the event has no date
The provenance token (abgeleitet/kuratiert) was nested inside the
{#if dateLabel} block, so an undated or UNKNOWN-precision event — e.g.
one in the undated bucket — rendered no provenance at all. Compose the
subtitle as an optional "{date} · " prefix in front of the always-present
provenance instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,9 @@ const dateLabel = $derived(timelineDateLabel(entry.eventDate, entry.precision, e
|
|||||||
const provenance = $derived(
|
const provenance = $derived(
|
||||||
entry.derived ? m.timeline_provenance_derived() : m.timeline_provenance_curated()
|
entry.derived ? m.timeline_provenance_derived() : m.timeline_provenance_curated()
|
||||||
);
|
);
|
||||||
|
// Provenance always shows; the date is an optional prefix so an undated event
|
||||||
|
// still reads "abgeleitet"/"kuratiert" (REQ-007).
|
||||||
|
const subtitle = $derived(dateLabel ? `${dateLabel} · ${provenance}` : provenance);
|
||||||
const canEdit = $derived(!entry.derived && entry.eventId != null);
|
const canEdit = $derived(!entry.derived && entry.eventId != null);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -46,9 +49,7 @@ const canEdit = $derived(!entry.derived && entry.eventId != null);
|
|||||||
>{entry.title}</span
|
>{entry.title}</span
|
||||||
>
|
>
|
||||||
{/if}
|
{/if}
|
||||||
{#if dateLabel}
|
<span class="block font-sans text-xs text-ink-3">{subtitle}</span>
|
||||||
<span class="block font-sans text-xs text-ink-3">{dateLabel} · {provenance}</span>
|
|
||||||
{/if}
|
|
||||||
</span>
|
</span>
|
||||||
{#if canEdit}
|
{#if canEdit}
|
||||||
<a
|
<a
|
||||||
|
|||||||
@@ -120,4 +120,23 @@ describe('EventPill', () => {
|
|||||||
expect(document.body.textContent).not.toContain('persönlich');
|
expect(document.body.textContent).not.toContain('persönlich');
|
||||||
expect(document.body.textContent).not.toContain('SEASON');
|
expect(document.body.textContent).not.toContain('SEASON');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('still shows the provenance token when the event has no date label (REQ-007)', () => {
|
||||||
|
// An undated / UNKNOWN-precision event (e.g. in the undated bucket) yields a
|
||||||
|
// null dateLabel; provenance must not be gated behind the date.
|
||||||
|
const entry = makeEntry({
|
||||||
|
kind: 'EVENT',
|
||||||
|
derived: true,
|
||||||
|
derivedType: 'BIRTH',
|
||||||
|
title: 'Geburt: Hans',
|
||||||
|
senderName: '',
|
||||||
|
receiverName: '',
|
||||||
|
precision: 'UNKNOWN',
|
||||||
|
eventDate: undefined,
|
||||||
|
documentId: undefined
|
||||||
|
});
|
||||||
|
expect(timelineDateLabel(entry.eventDate, entry.precision, entry.eventDateEnd)).toBeNull();
|
||||||
|
render(EventPill, { entry });
|
||||||
|
expect(document.body.textContent).toContain(m.timeline_provenance_derived());
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user