Skip to content

Commit 2945ab4

Browse files
committed
Simplify DOM
1 parent 88a259e commit 2945ab4

File tree

2 files changed

+16
-27
lines changed

2 files changed

+16
-27
lines changed

packages/controls/css/widgets-base.css

+2-13
Original file line numberDiff line numberDiff line change
@@ -258,23 +258,12 @@
258258
background-color: var(--jp-error-color0);
259259
}
260260

261-
/* Widget Button, Widget Toggle Button */
261+
/* Widget Button, Widget Toggle Button, Widget Upload */
262262

263-
.widget-button, .widget-toggle-button {
263+
.widget-button, .widget-toggle-button, .widget-upload {
264264
width: var(--jp-widgets-inline-width-short);
265265
}
266266

267-
/* Widget Upload */
268-
269-
.widget-upload {
270-
width: var(--jp-widgets-inline-width-short);
271-
}
272-
273-
.widget-upload button {
274-
width: 100%;
275-
height: 100%;
276-
}
277-
278267
/* Widget Label Styling */
279268

280269
/* Override Bootstrap label css */

packages/controls/src/widget_upload.ts

+14-14
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,27 @@ export class FileUploadModel extends CoreDOMWidgetModel {
3838

3939
export class FileUploadView extends DOMWidgetView {
4040

41-
el: HTMLDivElement;
42-
btn: HTMLButtonElement;
41+
el: HTMLButtonElement;
4342
fileInput: HTMLInputElement;
4443
fileReader: FileReader;
4544

45+
get tagName() {
46+
return 'button';
47+
}
48+
4649
render() {
4750
super.render();
4851

4952
this.el.classList.add('jupyter-widgets');
5053
this.el.classList.add('widget-upload');
54+
this.el.classList.add('jupyter-button');
5155

5256
this.fileInput = document.createElement('input');
5357
this.fileInput.type = 'file';
5458
this.fileInput.style.display = 'none';
5559
this.el.appendChild(this.fileInput);
5660

57-
this.btn = document.createElement('button');
58-
this.btn.classList.add('jupyter-button');
59-
this.el.appendChild(this.btn);
60-
61-
this.btn.addEventListener('click', () => {
61+
this.el.addEventListener('click', () => {
6262
this.fileInput.click();
6363
});
6464

@@ -129,24 +129,24 @@ export class FileUploadView extends DOMWidgetView {
129129
}
130130

131131
update() {
132-
this.btn.disabled = this.model.get('disabled');
133-
this.btn.setAttribute('title', this.model.get('tooltip'));
132+
this.el.disabled = this.model.get('disabled');
133+
this.el.setAttribute('title', this.model.get('tooltip'));
134134

135135
let model_description = this.model.get('description');
136136
let description = `${this.model.get('description')} (${this.model.get('_counter')})`
137137
let icon = this.model.get('icon');
138138
if (description.length || icon.length) {
139-
this.btn.textContent = '';
139+
this.el.textContent = '';
140140
if (icon.length) {
141141
let i = document.createElement('i');
142142
i.classList.add('fa');
143143
i.classList.add('fa-' + icon);
144144
if (description.length === 0) {
145145
i.classList.add('center');
146146
}
147-
this.btn.appendChild(i);
147+
this.el.appendChild(i);
148148
}
149-
this.btn.appendChild(document.createTextNode(description));
149+
this.el.appendChild(document.createTextNode(description));
150150
}
151151

152152
this.fileInput.accept = this.model.get('accept');
@@ -156,11 +156,11 @@ export class FileUploadView extends DOMWidgetView {
156156
}
157157

158158
update_button_style() {
159-
this.update_mapped_classes(FileUploadView.class_map, 'button_style', this.btn);
159+
this.update_mapped_classes(FileUploadView.class_map, 'button_style', this.el);
160160
}
161161

162162
set_button_style() {
163-
this.set_mapped_classes(FileUploadView.class_map, 'button_style', this.btn);
163+
this.set_mapped_classes(FileUploadView.class_map, 'button_style', this.el);
164164
}
165165

166166
static class_map = {

0 commit comments

Comments
 (0)