{ if (event.key === "Escape" && selectedId) void closeDetails(); }} />

Issues

{de ? "Arbeit im Blick. Über alle Integrationen." : "Work in focus. Across your integrations."}

{#if !sources.length}

{de ? "Noch keine Integration eingerichtet" : "No integrations configured"}

{de ? "Verbinde einen Anbieter, um Issues zu sehen." : "Connect a provider to view issues."}

{:else}
({ value: item.id, label: item.label }))} ariaLabel={de ? "Integration auswählen" : "Select integration"} onChange={value => { sourceId = value; }} />
{#if viewMode === "board" && source} {#key sourceKey}{/key} {:else}
{ repositoryFilter = value; selectedId = ""; }} /> { stateFilter = value; }} />
{#if error}{/if}
{#if filtered.length}
IssueStatus{de ? "Zugewiesen" : "Assignee"}
{/if} {#each groups as group (group.repository)} {@const collapsed = collapsedRepositories.has(JSON.stringify([sourceKey, group.repository]))} {#if !collapsed} {#each group.issues as issue (issue.id)} {/each} {/if} {:else}

{loading && !issues.length ? (de ? "Issues werden geladen" : "Loading issues") : error && !issues.length ? (de ? "Issues konnten nicht geladen werden" : "Could not load issues") : (de ? "Keine passenden Issues" : "No matching issues")}

{de ? "Suche und Filter gelten für die bereits geladenen Einträge." : "Search and filters apply to the items already loaded."}

{/each} {#if nextCursor}{/if}
{filtered.length !== issues.length ? `${filtered.length} / ` : ""}{issues.length} {de ? "geladene Issues" : "loaded issues"}{#if loading}{de ? "Aktualisierung im Hintergrund …" : "Updating in background …"}{/if}
{#if selected} {/if} {/if} {/if}