diff --git a/src/UI/Wikipedia/WikipediaArticle.svelte b/src/UI/Wikipedia/WikipediaArticle.svelte index dd0f61aa07..b2a35eec6c 100644 --- a/src/UI/Wikipedia/WikipediaArticle.svelte +++ b/src/UI/Wikipedia/WikipediaArticle.svelte @@ -1,35 +1,38 @@ - - - - +{#if $wikipediaDetails.articleUrl} + + + + +{/if} {#if $wikipediaDetails.wikidata} {/if} +{#if $wikipediaDetails.articleUrl} -{#if $wikipediaDetails.firstParagraph === "" || $wikipediaDetails.firstParagraph === undefined} - - - -{:else} + {#if $wikipediaDetails.firstParagraph === "" || $wikipediaDetails.firstParagraph === undefined} + + + + {:else} @@ -47,4 +50,5 @@ + {/if} {/if} diff --git a/src/UI/Wikipedia/WikipediaPanel.svelte b/src/UI/Wikipedia/WikipediaPanel.svelte index 8112dc15d5..8ca905fc77 100644 --- a/src/UI/Wikipedia/WikipediaPanel.svelte +++ b/src/UI/Wikipedia/WikipediaPanel.svelte @@ -2,57 +2,63 @@ /** * Shows one or more wikidata info boxes or wikipedia articles in a tabbed component. */ - import type { FullWikipediaDetails } from "../../Logic/Web/Wikipedia" - import Wikipedia from "../../Logic/Web/Wikipedia" - import Locale from "../i18n/Locale" - import { Store } from "../../Logic/UIEventSource" - import { Tab, TabGroup, TabList, TabPanel, TabPanels } from "@rgossiaux/svelte-headlessui" - import WikipediaTitle from "./WikipediaTitle.svelte" - import WikipediaArticle from "./WikipediaArticle.svelte" - import { onDestroy } from "svelte" + import type { FullWikipediaDetails } from "../../Logic/Web/Wikipedia"; + import Wikipedia from "../../Logic/Web/Wikipedia"; + import Locale from "../i18n/Locale"; + import { Store } from "../../Logic/UIEventSource"; + import { Tab, TabGroup, TabList, TabPanel, TabPanels } from "@rgossiaux/svelte-headlessui"; + import WikipediaTitle from "./WikipediaTitle.svelte"; + import WikipediaArticle from "./WikipediaArticle.svelte"; + import { onDestroy } from "svelte"; /** * Either a wikidata item or a ':
' link */ - export let wikiIds: Store + export let wikiIds: Store; let wikipediaStores: Store[]> = Locale.language.bind((language) => wikiIds.map((wikiIds) => wikiIds.map((id) => Wikipedia.fetchArticleAndWikidata(id, language))) - ) - let _wikipediaStores + ); + let _wikipediaStores; onDestroy( wikipediaStores.addCallbackAndRunD((wikipediaStores) => { - _wikipediaStores = wikipediaStores + _wikipediaStores = wikipediaStores; }) - ) + ); {#if _wikipediaStores !== undefined} - - - {#each _wikipediaStores as store (store.tag)} - (selected ? "tab-selected" : "tab-unselected")}> - - - {/each} - - - {#each _wikipediaStores as store (store.tag)} - - - - {/each} - - + {#if _wikipediaStores.length === 1} + + {:else} + + + {#each _wikipediaStores as store (store.tag)} + (selected ? "tab-selected" : "tab-unselected")}> + + + {/each} + + + {#each _wikipediaStores as store (store.tag)} + + + + {/each} + + + {/if} {/if}