Skip to content

Commit ba79c27

Browse files
authored
Merge branch 'master' into pvinis-patch-1
2 parents eacb3c7 + 34ebe4f commit ba79c27

File tree

8 files changed

+53
-30
lines changed

8 files changed

+53
-30
lines changed

.github/workflows/push.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
with:
1919
name: ${{ github.sha }}
2020
path: ./**
21+
include-hidden-files: true
2122

2223
install:
2324
needs: setup

@types/global.d.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
interface Window {}
22

3-
interface Process {
4-
env: {
5-
PUBLIC_URL: string
6-
NODE_ENV: 'development' | 'production'
3+
declare global {
4+
namespace NodeJS {
5+
interface ProcessEnv {
6+
PUBLIC_URL: string
7+
NODE_ENV: 'development' | 'production'
8+
}
79
}
810
}
11+
12+
export {}

src/components/common/VersionSelector.tsx

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ const getReleasedVersions = ({
155155
releasedVersions: string[]
156156
minVersion?: string
157157
maxVersion?: string
158-
}) => {
158+
}): string[] => {
159159
const latestMajorReleaseVersion =
160160
getLatestMajorReleaseVersion(releasedVersions)
161161

@@ -181,32 +181,36 @@ const getFirstMajorRelease = ({
181181
releasedVersions: string[]
182182
versionToCompare: string
183183
}) =>
184-
releasedVersions.find(
185-
(releasedVersion) =>
184+
releasedVersions.find((releasedVersion) => {
185+
const releasedVersionValid = semver.valid(semver.coerce(releasedVersion))
186+
const versionToCompareValid = semver.valid(semver.coerce(versionToCompare))
187+
188+
return (
186189
semver.lt(releasedVersion, versionToCompare) &&
187-
semver.diff(
188-
semver.valid(semver.coerce(releasedVersion)),
189-
semver.valid(semver.coerce(versionToCompare))
190-
) === 'minor'
191-
)
190+
releasedVersionValid &&
191+
versionToCompareValid &&
192+
semver.diff(releasedVersionValid, versionToCompareValid) === 'minor'
193+
)
194+
})
192195

193196
// Return if version exists in the ones returned from GitHub
194197
const doesVersionExist = ({
195198
version,
196199
allVersions,
197200
minVersion,
198201
}: {
199-
version: string
202+
version: string | null
200203
allVersions: string[]
201204
minVersion?: string
202-
}) => {
205+
}): boolean => {
203206
try {
207+
if (version === null) {
208+
return false
209+
}
210+
204211
return (
205-
version &&
206212
allVersions.includes(version) &&
207-
// Also compare the version against a `minVersion`, this is used
208-
// to not allow the user to have a `fromVersion` newer than `toVersion`
209-
(!minVersion || (minVersion && semver.gt(version, minVersion)))
213+
(!minVersion || semver.gt(version, minVersion))
210214
)
211215
} catch (_error) {
212216
return false
@@ -234,8 +238,8 @@ const VersionSelector = ({
234238
packageName,
235239
})
236240
const [allVersions, setAllVersions] = useState<string[]>([])
237-
const [fromVersionList, setFromVersionList] = useState([])
238-
const [toVersionList, setToVersionList] = useState([])
241+
const [fromVersionList, setFromVersionList] = useState<string[]>([])
242+
const [toVersionList, setToVersionList] = useState<string[]>([])
239243
const [hasVersionsFromURL, setHasVersionsFromURL] = useState<boolean>(false)
240244

241245
const [localFromVersion, setLocalFromVersion] = useState<string>('')
@@ -281,7 +285,7 @@ const VersionSelector = ({
281285
getFirstMajorRelease({
282286
releasedVersions: sanitizedVersions,
283287
versionToCompare: toVersionToBeSet,
284-
})
288+
}) || sanitizedVersions[sanitizedVersions.length - 1] // Fallback to last version if no major release found
285289

286290
setFromVersionList(
287291
getReleasedVersions({

src/components/pages/Home.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { DarkModeButton } from '../common/DarkModeButton'
2424
import { updateURL } from '../../utils/update-url'
2525
import { deviceSizes } from '../../utils/device-sizes'
2626
import { lightTheme, darkTheme, type Theme } from '../../theme'
27+
import { CheckboxValueType } from 'antd/es/checkbox/Group'
2728

2829
const Page = styled.div<{ theme?: Theme }>`
2930
background-color: ${({ theme }) => theme.background};
@@ -104,7 +105,7 @@ const getAppInfoInURL = () => {
104105

105106
return {
106107
appPackage: pkg as string,
107-
appName: name as string | null,
108+
appName: name as string | undefined,
108109
}
109110
}
110111

@@ -198,9 +199,11 @@ const Home = () => {
198199
setShouldShowDiff(false)
199200
}
200201

201-
const handleSettingsChange = (settingsValues: string[]) => {
202-
const normalizedIncomingSettings = settingsValues.reduce((acc, val) => {
203-
acc[val] = true
202+
const handleSettingsChange = (settingsValues: CheckboxValueType[]) => {
203+
const normalizedIncomingSettings = settingsValues.reduce<
204+
Record<string, boolean>
205+
>((acc, val) => {
206+
acc[String(val)] = true
204207
return acc
205208
}, {})
206209

src/serviceWorker.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ const isLocalhost = Boolean(
2020
)
2121
)
2222

23-
export function register(config) {
23+
interface ServiceWorkerConfig {
24+
onSuccess?: (registration: ServiceWorkerRegistration) => void
25+
onUpdate?: (registration: ServiceWorkerRegistration) => void
26+
}
27+
28+
export function register(config?: ServiceWorkerConfig) {
2429
if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
2530
// The URL constructor is available in all browsers that support SW.
2631
const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)
@@ -54,7 +59,7 @@ export function register(config) {
5459
}
5560
}
5661

57-
function registerValidSW(swUrl, config) {
62+
function registerValidSW(swUrl: string, config?: ServiceWorkerConfig) {
5863
navigator.serviceWorker
5964
.register(swUrl)
6065
.then((registration) => {
@@ -98,7 +103,7 @@ function registerValidSW(swUrl, config) {
98103
})
99104
}
100105

101-
function checkValidServiceWorker(swUrl, config) {
106+
function checkValidServiceWorker(swUrl: string, config?: ServiceWorkerConfig) {
102107
// Check if the service worker can be found. If it can't reload the page.
103108
fetch(swUrl)
104109
.then((response) => {

src/utils.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,15 @@ export const getVersionsContentInDiff = ({
115115
}
116116

117117
const cleanedToVersion = semver.valid(semver.coerce(toVersion))
118+
if (!cleanedToVersion) {
119+
return []
120+
}
118121

119122
return versions[packageName].filter(({ version }) => {
120123
const cleanedVersion = semver.coerce(version)
124+
if (!cleanedVersion) {
125+
return false
126+
}
121127

122128
// `cleanedVersion` can't be newer than `cleanedToVersion` nor older (or equal) than `fromVersion`
123129
return (

src/utils/update-url.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export function updateURL({
1414
isPackageNameDefinedInURL: boolean
1515
fromVersion: string
1616
toVersion: string
17-
appPackage: string
17+
appPackage?: string
1818
appName?: string
1919
}) {
2020
const url = new URL(window.location.origin)

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@
2626
"module": "commonjs"
2727
}
2828
},
29-
"include": ["./src", "./assets"],
29+
"include": ["./src", "./assets", "./@types"],
3030
"exclude": ["./src/__tests__/*"]
3131
}

0 commit comments

Comments
 (0)