( accept: string = ".json,.zip" )
| 128 | * Returns null if no file was selected |
| 129 | */ |
| 130 | export function selectFile( |
| 131 | accept: string = ".json,.zip" |
| 132 | ): Promise<File | null> { |
| 133 | return new Promise((resolve) => { |
| 134 | const fileInput = document.createElement("input"); |
| 135 | fileInput.type = "file"; |
| 136 | fileInput.accept = accept; |
| 137 | |
| 138 | fileInput.onchange = (event) => { |
| 139 | const file = (event.target as HTMLInputElement).files?.[0]; |
| 140 | resolve(file || null); |
| 141 | }; |
| 142 | |
| 143 | fileInput.click(); |
| 144 | }); |
| 145 | } |
| 146 | |
| 147 | /** |
| 148 | * Open import wizard with file selection |
no test coverage detected