source dump of claude code
at main 34 lines 982 B view raw
1import { useState } from 'react' 2import { major, minor, patch } from 'semver' 3 4export function getSemverPart(version: string): string { 5 return `${major(version, { loose: true })}.${minor(version, { loose: true })}.${patch(version, { loose: true })}` 6} 7 8export function shouldShowUpdateNotification( 9 updatedVersion: string, 10 lastNotifiedSemver: string | null, 11): boolean { 12 const updatedSemver = getSemverPart(updatedVersion) 13 return updatedSemver !== lastNotifiedSemver 14} 15 16export function useUpdateNotification( 17 updatedVersion: string | null | undefined, 18 initialVersion: string = MACRO.VERSION, 19): string | null { 20 const [lastNotifiedSemver, setLastNotifiedSemver] = useState<string | null>( 21 () => getSemverPart(initialVersion), 22 ) 23 24 if (!updatedVersion) { 25 return null 26 } 27 28 const updatedSemver = getSemverPart(updatedVersion) 29 if (updatedSemver !== lastNotifiedSemver) { 30 setLastNotifiedSemver(updatedSemver) 31 return updatedSemver 32 } 33 return null 34}