Skip to content

Commit fec93ea

Browse files
committed
Show a dialog to decide where to create new file
1 parent 1b923cd commit fec93ea

File tree

5 files changed

+42
-3
lines changed

5 files changed

+42
-3
lines changed

ui/arduino/app.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ function App(state, emit) {
77
${Editor(state, emit)}
88
${Panel(state, emit)}
99
</div>
10+
${NewFileDialog(state, emit)}
1011
${PortDialog(state, emit)}
1112
${Message(state, emit)}
1213
</div>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
function NewFileDialog(state, emit) {
2+
if (!state.isNewFileDialogOpen) return null
3+
function PortItem(port) {
4+
return html`<li onclick=${() => emit('connect', port.path)}>${port.path}</li>`
5+
}
6+
function closeBackdrop(e) {
7+
if (e.target.id == 'backdrop') {
8+
emit('close-new-file-dialog')
9+
}
10+
}
11+
let serialOption = html`
12+
<li onclick=${() => emit('new-file', 'serial')}>MicroPython Board</li>
13+
`
14+
return html`
15+
<div id="backdrop" onclick=${closeBackdrop}>
16+
<div id="dialog">
17+
<ul>
18+
${state.isConnected ? serialOption : null}
19+
<li onclick=${() => emit('new-file', 'disk')}>Computer Storage</li>
20+
</ul>
21+
</div>
22+
</div>
23+
`
24+
}

ui/arduino/components/toolbar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function Toolbar(state, emit) {
3333
icon: 'icons/New.svg',
3434
label: 'New',
3535
disabled: false,
36-
onclick: () => emit('new-file')
36+
onclick: () => emit('open-new-file-dialog')
3737
})
3838
const openFolder = Button({
3939
icon: 'icons/Open.svg',

ui/arduino/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
<script type="text/javascript" src="components/panel_files.js" charset="utf-8"></script>
2626
<script type="text/javascript" src="components/panel.js" charset="utf-8"></script>
2727
<script type="text/javascript" src="components/portdialog.js" charset="utf-8"></script>
28+
<script type="text/javascript" src="components/newfiledialog.js" charset="utf-8"></script>
2829
<script type="text/javascript" src="components/message.js" charset="utf-8"></script>
2930

3031
<!-- Application source code -->

ui/arduino/store.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ function store(state, emitter) {
2525

2626
state.isConnected = false
2727
state.isPortDialogOpen = false
28+
state.isNewFileDialogOpen = false
2829
state.isTerminalOpen = false
2930
state.isFilesOpen = false
3031

@@ -114,11 +115,23 @@ function store(state, emitter) {
114115
})
115116

116117
// FILE MANAGEMENT
117-
emitter.on('new-file', () => {
118-
log('new-file')
118+
emitter.on('open-new-file-dialog', () => {
119+
log('open-new-file-dialog')
120+
state.isNewFileDialogOpen = true
121+
emitter.emit('render')
122+
})
123+
emitter.on('close-new-file-dialog', () => {
124+
log('close-new-file-dialog')
125+
state.isNewFileDialogOpen = false
126+
emitter.emit('render')
127+
})
128+
emitter.on('new-file', (dev) => {
129+
log('select-device', dev)
130+
state.selectedDevice = dev
119131
let editor = state.cache(AceEditor, 'editor').editor
120132
state.selectedFile = 'undefined'
121133
editor.setValue('')
134+
emitter.emit('close-new-file-dialog')
122135
emitter.emit('render')
123136
})
124137
emitter.on('save', async () => {

0 commit comments

Comments
 (0)