import { Button, H4, HTMLTable, Spinner, } from "@blueprintjs/core"; import React, { FunctionComponent } from "react"; import { StashService } from "../../core/StashService"; interface IProps { } export const SettingsAboutPanel: FunctionComponent = (props: IProps) => { const { data, error, loading } = StashService.useVersion(); const { data: dataLatest, error: errorLatest, loading: loadingLatest, refetch, networkStatus } = StashService.useLatestVersion(); function maybeRenderTag() { if (!data || !data.version || !data.version.version) { return; } return ( Version: {data.version.version} ); } function maybeRenderLatestVersion() { if (!dataLatest || !dataLatest.latestversion || !dataLatest.latestversion.shorthash || !dataLatest.latestversion.url) { return; } if (!data || !data.version || !data.version.hash) { return ( <>{dataLatest.latestversion.shorthash}> ); } if (data.version.hash !== dataLatest.latestversion.shorthash) { return ( <> {dataLatest.latestversion.shorthash} [NEW] Download > ); } return ( <>{dataLatest.latestversion.shorthash}> ); } function renderLatestVersion() { if (!data || !data.version || !data.version.version) { return; } //if there is no "version" latest version check is obviously not supported return ( Latest Version Build Hash: {maybeRenderLatestVersion()} refetch()} text="Check for new version" /> ); } function renderVersion() { if (!data || !data.version) { return; } return ( <> {maybeRenderTag()} Build hash: {data.version.hash} Build time: {data.version.build_time} > ); } return ( <> About Stash home at Github Stash Wiki page Join our Discord channel Support us through Open Collective {!data || loading ? : undefined} {!!error ? {error.message} : undefined} {!!errorLatest ? {errorLatest.message} : undefined} {renderVersion()} {!dataLatest || loadingLatest || networkStatus === 4 ? : <>{renderLatestVersion()}>} > ); };