Skip to content

Commit 7749408

Browse files
fix(#245): sponsorship message timing
1 parent 28a9fc2 commit 7749408

File tree

4 files changed

+25
-23
lines changed

4 files changed

+25
-23
lines changed

src/renderer/components/NewJobPane/index.tsx

+9-8
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,20 @@ import {
1818
import { externalLinkClick } from 'renderer/utils'
1919

2020
const { App } = window
21+
// import {}
2122
import {
2223
defaultSponsorshipMessage,
2324
updateSponsorshipMessage,
2425
} from '../../utils'
2526

2627
// is datestring more than 2 weeks old
27-
let isExpired = (datestring) => {
28-
if (datestring == '') return true
28+
// datestring is milliseconds (string)
29+
let isExpired = (dateInMs: number) => {
30+
if (dateInMs == 0) return true
2931

3032
const TWOWEEKS_MS = 1209600000
31-
let date = new Date(datestring)
33+
// const TWOWEEKS_MS = 500 // for testing
34+
let date = new Date(dateInMs)
3235
let now = Date.now()
3336
if (now - date.getMilliseconds() > TWOWEEKS_MS) {
3437
return true
@@ -44,19 +47,17 @@ export function NewJobPane({ job }: { job: Job }) {
4447
isExpired(settings.sponsorshipMessageLastShown)
4548
)
4649

47-
// useMemo should only run once per render
50+
// useMemo runs once per render (unlike useEffect)
4851
useMemo(() => {
4952
const fetchData = async () => {
5053
let updatedSponsorshipMessage = await updateSponsorshipMessage()
5154
setSponsorshipMessage({ ...updatedSponsorshipMessage })
5255
}
53-
fetchData().catch()
5456
if (isExpired(settings.sponsorshipMessageLastShown)) {
57+
fetchData().catch()
5558
setShowSponsorshipMessage(true)
5659
// update settings with a new date
57-
App.store.dispatch(
58-
setSponsorshipMessageLastShown(Date.now().toString())
59-
)
60+
App.store.dispatch(setSponsorshipMessageLastShown(Date.now()))
6061
App.store.dispatch(save())
6162
}
6263
}, [])

src/renderer/utils/sponsorship.ts

+13-12
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,18 @@ let defaultSponsorshipMessage = {
99

1010
async function updateSponsorshipMessage() {
1111
// fetch the latest sponsorship message
12-
try {
13-
let sponsorshipData = await fetch(
14-
'https://dl.daisy.org/tools/sponsorship.json'
15-
)
16-
if (sponsorshipData) {
17-
return sponsorshipData['PipelineApp']['en']
18-
} else {
19-
return defaultSponsorshipMessage
20-
}
21-
} catch (err) {
22-
return defaultSponsorshipMessage
23-
}
12+
// try {
13+
// let sponsorshipData = await window.fetch(
14+
// 'https://dl.daisy.org/tools/sponsorship.json'
15+
// )
16+
// if (sponsorshipData) {
17+
// return sponsorshipData['PipelineApp']['en']
18+
// } else {
19+
// return defaultSponsorshipMessage
20+
// }
21+
// } catch (err) {
22+
// return defaultSponsorshipMessage
23+
// }
24+
return defaultSponsorshipMessage
2425
}
2526
export { defaultSponsorshipMessage, updateSponsorshipMessage }

src/shared/data/slices/settings.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export const settings = createSlice({
101101
},
102102
setSponsorshipMessageLastShown: (
103103
state: ApplicationSettings,
104-
action: PayloadAction<string>
104+
action: PayloadAction<number>
105105
) => {
106106
state.sponsorshipMessageLastShown = action.payload
107107
},

src/shared/types/settings.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export type ApplicationSettings = {
3737
// tts preferred voices
3838
ttsConfig?: TtsConfig
3939
autoCheckUpdate?: boolean
40-
sponsorshipMessageLastShown?: string
40+
sponsorshipMessageLastShown?: number
4141
}
4242

4343
export function migrateSettings(
@@ -81,7 +81,7 @@ const migrators: Map<string, (prev: any) => any> = new Map<
8181
(prev: _ApplicationSettings_v140): ApplicationSettings => {
8282
const { settingsVersion, ...toKeep } = prev
8383
return {
84-
sponsorshipMessageLastShown: '',
84+
sponsorshipMessageLastShown: 0,
8585
...toKeep,
8686
} as ApplicationSettings
8787
},

0 commit comments

Comments
 (0)