Questa pagina è generata dai pacchetti Magma, documentati solo in inglese.
<!-- INCORRECT --><input type="file" accept=".pdf" multiple>
<!-- CORRECT --><mds-input-upload accept=".pdf" max-files="5"></mds-input-upload><!-- INCORRECT --><mds-input-upload id="uploader"></mds-input-upload><script> document.querySelector('#uploader').addEventListener('change', (e) => { console.log(e.target.files); // undefined - input is in shadow DOM });</script>
<!-- CORRECT --><mds-input-upload id="uploader"></mds-input-upload><script> document.querySelector('#uploader').addEventListener('mdsInputUploadChange', (e) => { console.log(e.detail); // valid FileList or null });</script><!-- INCORRECT - every file is sent twice --><form id="modulo"> <mds-input-upload name="allegati" max-files="3"></mds-input-upload></form><script type="module"> const form = document.querySelector('#modulo'); const data = new FormData(form); const files = await form.querySelector('mds-input-upload').getFiles(); Array.from(files).forEach((file) => data.append('allegati', file));</script>
<!-- CORRECT --><form id="modulo"> <mds-input-upload name="allegati" max-files="3"></mds-input-upload></form><script type="module"> const data = new FormData(document.querySelector('#modulo'));</script><!-- INCORRECT --><mds-input-upload id="upload"></mds-input-upload><script> const input = document.querySelector('#upload').shadowRoot.querySelector('input[type="file"]'); console.log(input.files); // fragile - implementation detail</script>
<!-- CORRECT --><mds-input-upload id="upload"></mds-input-upload><script type="module"> const files = await document.querySelector('#upload').getFiles(); console.log(files);</script><!-- INCORRECT - sort chooser never appears because sort is omitted --><mds-input-upload max-files="10"></mds-input-upload>
<!-- CORRECT - sort chooser appears once more than one file is added --><mds-input-upload max-files="10" sort="date"></mds-input-upload>/* INCORRECT */mds-input-upload >>> .drag-area { background: lightblue;}mds-input-upload .main-action { display: none;}
/* CORRECT */mds-input-upload { --mds-input-upload-drag-area-background-color: rgb(var(--magma-accent-surface-subtle)); --mds-input-upload-drag-area-border: 3px dashed rgb(var(--magma-accent-border));}<!-- INCORRECT - misusing initialValue as a live file binding --><mds-input-upload id="uploader"></mds-input-upload><script> document.querySelector('#uploader').addEventListener('mdsInputUploadChange', (e) => { document.querySelector('#uploader').initialValue = e.detail; // causes re-processing });</script>
<!-- CORRECT - just read the value when you need it --><mds-input-upload id="uploader"></mds-input-upload><script> document.querySelector('#uploader').addEventListener('mdsInputUploadChange', (e) => { const files = e.detail; // use directly without re-assigning initialValue console.log('File correnti:', files ? files.length : 0); });</script>