rocca commited on
Commit
fabf72e
·
verified ·
1 Parent(s): b09f300

Fix file select to fall back to old file API

Browse files
Files changed (1) hide show
  1. index.html +24 -17
index.html CHANGED
@@ -139,29 +139,36 @@
139
 
140
  <script>
141
  window.testImages = [];
142
-
143
- // At the top of your script, declare these variables
144
  let imageHandles = [];
145
 
146
- // Replace the existing image loader code with this:
147
- document.getElementById('imageLoader').addEventListener('click', async function (e) {
 
 
 
 
 
 
148
  try {
149
- const handles = await window.showOpenFilePicker({
150
  multiple: true,
151
- types: [{
152
- description: 'Images',
153
- accept: {
154
- 'image/*': ['.png', '.gif', '.jpeg', '.jpg', '.webp', '.avif', '.svg']
155
- }
156
- }]
157
  });
158
- imageHandles = handles;
159
- let { get, set } = await import('https://unpkg.com/[email protected]/dist/esm/index.js');
160
- await set('imageHandles', imageHandles);
161
- await loadImagesFromHandles();
162
- } catch (err) {
163
- console.error("Error selecting files:", err);
164
  }
 
 
 
 
 
 
 
 
 
 
 
165
  });
166
 
167
  async function loadImagesFromHandles() {
 
139
 
140
  <script>
141
  window.testImages = [];
 
 
142
  let imageHandles = [];
143
 
144
+ const fileInput = Object.assign(document.createElement('input'), {
145
+ type: 'file', multiple: true,
146
+ accept: '.png,.gif,.jpeg,.jpg,.webp,.avif,.svg,image/*',
147
+ style: 'display:none',
148
+ });
149
+ document.body.appendChild(fileInput);
150
+
151
+ document.getElementById('imageLoader').addEventListener('click', async () => {
152
  try {
153
+ imageHandles = await window.showOpenFilePicker({
154
  multiple: true,
155
+ types: [{ description: 'Images', accept: { 'image/*': ['.png','.gif','.jpeg','.jpg','.webp','.avif','.svg'] }}]
 
 
 
 
 
156
  });
157
+ } catch {
158
+ fileInput.click();
159
+ return;
 
 
 
160
  }
161
+ let { set } = await import('https://unpkg.com/[email protected]/dist/esm/index.js');
162
+ await set('imageHandles', imageHandles);
163
+ await loadImagesFromHandles();
164
+ });
165
+
166
+ fileInput.addEventListener('change', async ({ target: { files } }) => {
167
+ if (!files.length) return;
168
+ imageHandles = Array.from(files).map(file => ({ getFile: async () => file, kind: 'file', name: file.name }));
169
+ let { set } = await import('https://unpkg.com/[email protected]/dist/esm/index.js');
170
+ await set('imageHandles', imageHandles);
171
+ await loadImagesFromHandles();
172
  });
173
 
174
  async function loadImagesFromHandles() {