From ede51bebb587c16e1a912959877619e8455afba3 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 8 Dec 2025 19:51:32 -0500 Subject: [PATCH] use semver to compare versions in product updates --- src/components/ProductUpdates.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/components/ProductUpdates.tsx b/src/components/ProductUpdates.tsx index f0857160..dae64480 100644 --- a/src/components/ProductUpdates.tsx +++ b/src/components/ProductUpdates.tsx @@ -20,6 +20,7 @@ import { import { useTranslations } from "next-intl"; import { Transition } from "@headlessui/react"; import * as React from "react"; +import { gt, valid } from "semver"; import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover"; import { Button } from "./ui/button"; import { Badge } from "./ui/badge"; @@ -72,11 +73,15 @@ export default function ProductUpdates({ if (!data) return null; + const latestVersion = data?.latestVersion?.data?.pangolin.latestVersion; + const currentVersion = env.app.version; + const showNewVersionPopup = Boolean( - data?.latestVersion?.data && - ignoredVersionUpdate !== - data.latestVersion.data?.pangolin.latestVersion && - env.app.version !== data.latestVersion.data?.pangolin.latestVersion + latestVersion && + valid(latestVersion) && + valid(currentVersion) && + ignoredVersionUpdate !== latestVersion && + gt(latestVersion, currentVersion) ); const filteredUpdates = data.updates.filter(