Skip to content

Commit d0236cb

Browse files
authored
Merge pull request #42 from arduino/feature/persist-local-folder
Persist local folder path on `localStorage`
2 parents b7512b0 + ccdf8ab commit d0236cb

File tree

2 files changed

+27
-12
lines changed

2 files changed

+27
-12
lines changed

ui/arduino/components/toolbar.js

+20-9
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,29 @@ function Toolbar(state, emit) {
4848
onclick: () => emit('open-folder')
4949
})
5050

51-
const canSaveBoard = state.isConnected
52-
&& state.selectedDevice === 'serial'
53-
&& state.selectedFile
54-
const canSaveDisk = state.selectedDevice === 'disk'
55-
&& state.selectedFile
56-
&& state.diskPath
57-
const save = Button({
51+
let save = Button({
5852
icon: 'icons/Save.svg',
5953
label: 'Save',
60-
disabled: !canSaveBoard && !canSaveDisk,
61-
onclick: () => emit('save')
54+
disabled: true,
55+
onclick: () => false
6256
})
57+
if (state.selectedDevice === 'serial') {
58+
const canSaveBoard = state.isConnected && state.selectedFile
59+
save = Button({
60+
icon: 'icons/Save.svg',
61+
label: 'Save',
62+
disabled: !canSaveDisk,
63+
onclick: () => emit('save')
64+
})
65+
} else if (state.selectedDevice === 'disk') {
66+
const canSaveDisk = state.selectedFile && state.diskPath
67+
save = Button({
68+
icon: 'icons/Save.svg',
69+
label: 'Save',
70+
disabled: !canSaveDisk,
71+
onclick: () => emit('save')
72+
})
73+
}
6374

6475
const terminal = Button({
6576
icon: 'icons/Output.svg',

ui/arduino/store.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function store(state, emitter) {
2323
state.selectedFile = null
2424
state.selectedDevice = 'disk'
2525

26-
state.diskPath = null
26+
state.diskPath = localStorage.getItem('diskPath')
2727
state.serialPath = null
2828

2929
state.isConnected = false
@@ -202,8 +202,11 @@ function store(state, emitter) {
202202
emitter.on('open-folder', async () => {
203203
log('open-folder')
204204
let { folder, files } = await disk.openFolder()
205-
state.diskPath = folder
206-
state.diskFiles = files
205+
if (folder !== 'null' && folder !== null) {
206+
localStorage.setItem('diskPath', folder)
207+
state.diskPath = folder
208+
state.diskFiles = files
209+
}
207210
if (!state.isFilesOpen) emitter.emit('show-files')
208211
emitter.emit('render')
209212
})
@@ -238,6 +241,7 @@ function store(state, emitter) {
238241
(a, b) => a.localeCompare(b)
239242
)
240243
} catch (e) {
244+
state.diskPath = null
241245
console.log('error', e)
242246
}
243247
}

0 commit comments

Comments
 (0)