<script lang="ts"> import { getVersionUpdates } from '$lib/apis'; import { getOllamaVersion } from '$lib/apis/ollama'; import { WEBUI_BUILD_HASH, WEBUI_VERSION } from '$lib/constants'; import { WEBUI_NAME, config, showChangelog } from '$lib/stores'; import { compareVersion } from '$lib/utils'; import { onMount, getContext } from 'svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte'; const i18n = getContext('i18n'); let ollamaVersion = ''; let updateAvailable = null; let version = { current: '', latest: '' }; const checkForVersionUpdates = async () => { updateAvailable = null; version = await getVersionUpdates(localStorage.token).catch((error) => { return { current: WEBUI_VERSION, latest: WEBUI_VERSION }; }); console.log(version); updateAvailable = compareVersion(version.latest, version.current); console.log(updateAvailable); }; onMount(async () => { ollamaVersion = await getOllamaVersion(localStorage.token).catch((error) => { return ''; }); checkForVersionUpdates(); }); </script> <div class="flex flex-col h-full justify-between space-y-3 text-sm mb-6"> <div class=" space-y-3"> <div> <div class=" mb-2.5 text-sm font-medium flex space-x-2 items-center"> <div> {$WEBUI_NAME} {$i18n.t('Version')} </div> </div> <div class="flex w-full justify-between items-center"> <div class="flex flex-col text-xs text-gray-700 dark:text-gray-200"> <div class="flex gap-1"> <Tooltip content={WEBUI_BUILD_HASH}> v{WEBUI_VERSION} </Tooltip> <a href="https://github.com/open-webui/open-webui/releases/tag/v{version.latest}" target="_blank" > {updateAvailable === null ? $i18n.t('Checking for updates...') : updateAvailable ? `(v${version.latest} ${$i18n.t('available!')})` : $i18n.t('(latest)')} </a> </div> <button class=" underline flex items-center space-x-1 text-xs text-gray-500 dark:text-gray-500" on:click={() => { showChangelog.set(true); }} > <div>{$i18n.t("See what's new")}</div> </button> </div> <button class=" text-xs px-3 py-1.5 bg-gray-100 hover:bg-gray-200 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-medium" on:click={() => { checkForVersionUpdates(); }} > {$i18n.t('Check for updates')} </button> </div> </div> {#if ollamaVersion} <hr class=" dark:border-gray-850" /> <div> <div class=" mb-2.5 text-sm font-medium">{$i18n.t('Ollama Version')}</div> <div class="flex w-full"> <div class="flex-1 text-xs text-gray-700 dark:text-gray-200"> {ollamaVersion ?? 'N/A'} </div> </div> </div> {/if} <hr class=" dark:border-gray-850" /> <div class="flex space-x-1"> <a href="https://discord.gg/5rJgQTnV4s" target="_blank"> <img alt="Discord" src="https://img.shields.io/badge/Discord-Open_WebUI-blue?logo=discord&logoColor=white" /> </a> <a href="https://twitter.com/OpenWebUI" target="_blank"> <img alt="X (formerly Twitter) Follow" src="https://img.shields.io/twitter/follow/OpenWebUI" /> </a> <a href="https://github.com/open-webui/open-webui" target="_blank"> <img alt="Github Repo" src="https://img.shields.io/github/stars/open-webui/open-webui?style=social&label=Star us on Github" /> </a> </div> <div class="mt-2 text-xs text-gray-400 dark:text-gray-500"> {#if !$WEBUI_NAME.includes('Open WebUI')} <span class=" text-gray-500 dark:text-gray-300 font-medium">{$WEBUI_NAME}</span> - {/if} {$i18n.t('Created by')} <a class=" text-gray-500 dark:text-gray-300 font-medium" href="https://github.com/tjbck" target="_blank">Timothy J. Baek</a > </div> </div> </div>