Skip to content

Commit a105e76

Browse files
committed
More changes
1 parent 3618483 commit a105e76

17 files changed

Lines changed: 447 additions & 402 deletions
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { ipcRenderer, contextBridge } from 'electron'
2+
3+
contextBridge.exposeInMainWorld('settings', {
4+
currentSettings: async () => {
5+
return await ipcRenderer.invoke('current-settings')
6+
},
7+
saveSettings: async (key, value) => {
8+
ipcRenderer.send('save-setting', key, value)
9+
}
10+
})
11+
12+
contextBridge.exposeInMainWorld('i18next', {
13+
t: (key, options) => ipcRenderer.invoke('i18next-translate', key, options),
14+
dir: () => ipcRenderer.invoke('i18next-dir')
15+
})
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import HtmlTranslate from './utils/htmlTranslate.js'
2+
import { setSameWidths } from './utils/sameWidths.js'
3+
import './platform.js'
4+
5+
let eventsAttached = false
6+
7+
window.onload = async (event) => {
8+
const settings = await window.settings.currentSettings()
9+
new HtmlTranslate(document).translate()
10+
11+
setTimeout(() => { eventsAttached = true }, 500)
12+
13+
document.ondragover = event =>
14+
event.preventDefault()
15+
16+
document.ondrop = event =>
17+
event.preventDefault()
18+
19+
document.querySelectorAll('input[type="checkbox"]').forEach(checkbox => {
20+
const isNegative = checkbox.classList.contains('negative')
21+
checkbox.checked = isNegative ? !settings[checkbox.value] : settings[checkbox.value]
22+
if (!eventsAttached) {
23+
checkbox.onchange = (event) =>
24+
window.settings.saveSettings(checkbox.value,
25+
isNegative ? !checkbox.checked : checkbox.checked)
26+
}
27+
})
28+
29+
document.querySelectorAll('input[type="radio"]').forEach(radio => {
30+
let value
31+
switch (radio.value) {
32+
case 'true':
33+
value = true
34+
break
35+
case 'false':
36+
value = false
37+
break
38+
default:
39+
value = radio.value
40+
}
41+
radio.checked = settings[radio.name] === value
42+
if (!eventsAttached) {
43+
radio.onchange = (event) => {
44+
window.settings.saveSettings(radio.name, value)
45+
}
46+
}
47+
})
48+
49+
document.querySelectorAll('select').forEach(select => {
50+
select.value = settings[select.name]
51+
if (!eventsAttached) {
52+
select.onchange = (event) => {
53+
window.settings.saveSettings(select.name, select.value)
54+
}
55+
}
56+
})
57+
58+
document.querySelectorAll('input[type="range"]').forEach(async range => {
59+
const divisor = range.dataset.divisor
60+
const output = range.closest('div').querySelector('output')
61+
range.value = settings[range.name] / divisor
62+
const unit = output.dataset.unit
63+
output.innerHTML = await window.i18next.t(`utils.${unit}`, { count: parseInt(range.value) })
64+
if (!eventsAttached) {
65+
range.onchange = async event => {
66+
output.innerHTML = await window.i18next.t(`utils.${unit}`, { count: parseInt(range.value) })
67+
window.settings.saveSettings(range.name, range.value * divisor)
68+
}
69+
range.oninput = async event => {
70+
output.innerHTML = await window.i18next.t(`utils.${unit}`, { count: parseInt(range.value) })
71+
}
72+
}
73+
})
74+
75+
new HtmlTranslate(document).translate()
76+
setSameWidths()
77+
}

app/contributor-preferences.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,4 +493,5 @@
493493
</div>
494494
</div>
495495
</body>
496+
<script type="module" src="./contributor-preferences-renderer.js"></script>
496497
</html>

app/contributor-preferences.js

Lines changed: 0 additions & 82 deletions
This file was deleted.
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { ipcRenderer, shell, contextBridge } from 'electron'
2-
import remote from '@electron/remote'
32

43
contextBridge.exposeInMainWorld('ElectronBridge', {
54
// helloWorld: () {
@@ -8,7 +7,7 @@ contextBridge.exposeInMainWorld('ElectronBridge', {
87

98
showContributorPreferences: () => {
109
ipcRenderer.send('open-contributor-preferences')
11-
remote.getCurrentWindow().close()
10+
ipcRenderer.send('close-current-window')
1211
},
1312

1413
setContributor: () => {
@@ -20,7 +19,7 @@ contextBridge.exposeInMainWorld('ElectronBridge', {
2019
},
2120

2221
stretchlyVersion: () => {
23-
return remote.app.getVersion()
22+
return ipcRenderer.invoke('get-version')
2423
},
2524

2625
currentSettings: async () => {

app/expose-process.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,9 @@ import { contextBridge } from 'electron'
22

33
contextBridge.exposeInMainWorld('process', {
44
platform: () => process.platform,
5-
windowsStore: () => process.windowsStore
5+
node: () => process.versions.node,
6+
chrome: () => process.versions.chrome,
7+
electron: () => process.versions.electron,
8+
windowsStore: () => process.versions.windowsStore,
9+
getSystemVersion: () => process.getSystemVersion()
610
})

0 commit comments

Comments
 (0)