mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 02:11:05 +00:00
fix(file-uploader): FileUploader
change detail should be File[]
instead of FileList
(#1117)
Fixes #1112
This commit is contained in:
parent
dce0309bab
commit
7602731b0b
7 changed files with 38 additions and 18 deletions
|
@ -1285,11 +1285,11 @@ None.
|
|||
| :--------- | :--------- | :------------------ |
|
||||
| add | dispatched | <code>File[]</code> |
|
||||
| remove | dispatched | <code>File[]</code> |
|
||||
| change | dispatched | <code>File[]</code> |
|
||||
| click | forwarded | -- |
|
||||
| mouseover | forwarded | -- |
|
||||
| mouseenter | forwarded | -- |
|
||||
| mouseleave | forwarded | -- |
|
||||
| change | forwarded | -- |
|
||||
| keydown | forwarded | -- |
|
||||
|
||||
## `FileUploaderButton`
|
||||
|
@ -1319,9 +1319,9 @@ None.
|
|||
### Events
|
||||
|
||||
| Event name | Type | Detail |
|
||||
| :--------- | :-------- | :----- |
|
||||
| :--------- | :--------- | :------------------ |
|
||||
| change | dispatched | <code>File[]</code> |
|
||||
| keydown | forwarded | -- |
|
||||
| change | forwarded | -- |
|
||||
| click | forwarded | -- |
|
||||
|
||||
## `FileUploaderDropContainer`
|
||||
|
|
|
@ -3582,15 +3582,11 @@
|
|||
"events": [
|
||||
{ "type": "dispatched", "name": "add", "detail": "File[]" },
|
||||
{ "type": "dispatched", "name": "remove", "detail": "File[]" },
|
||||
{ "type": "dispatched", "name": "change", "detail": "File[]" },
|
||||
{ "type": "forwarded", "name": "click", "element": "div" },
|
||||
{ "type": "forwarded", "name": "mouseover", "element": "div" },
|
||||
{ "type": "forwarded", "name": "mouseenter", "element": "div" },
|
||||
{ "type": "forwarded", "name": "mouseleave", "element": "div" },
|
||||
{
|
||||
"type": "forwarded",
|
||||
"name": "change",
|
||||
"element": "FileUploaderButton"
|
||||
},
|
||||
{ "type": "forwarded", "name": "keydown", "element": "Filename" }
|
||||
],
|
||||
"typedefs": [],
|
||||
|
@ -3731,8 +3727,8 @@
|
|||
}
|
||||
],
|
||||
"events": [
|
||||
{ "type": "dispatched", "name": "change", "detail": "File[]" },
|
||||
{ "type": "forwarded", "name": "keydown", "element": "label" },
|
||||
{ "type": "forwarded", "name": "change", "element": "input" },
|
||||
{ "type": "forwarded", "name": "click", "element": "input" }
|
||||
],
|
||||
"typedefs": [],
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
/**
|
||||
* @event {File[]} add
|
||||
* @event {File[]} remove
|
||||
* @event {File[]} change
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -95,8 +96,8 @@
|
|||
multiple="{multiple}"
|
||||
kind="{kind}"
|
||||
on:change
|
||||
on:change="{({ target }) => {
|
||||
files = [...target.files];
|
||||
on:change="{(e) => {
|
||||
files = e.detail;
|
||||
}}"
|
||||
/>
|
||||
<div class:bx--file-container="{true}">
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
<script>
|
||||
/**
|
||||
* @event {File[]} change
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specify the accepted file types
|
||||
* @type {string[]}
|
||||
|
@ -37,6 +41,10 @@
|
|||
|
||||
/** Obtain a reference to the input HTML element */
|
||||
export let ref = null;
|
||||
|
||||
import { createEventDispatcher } from "svelte";
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
</script>
|
||||
|
||||
<label
|
||||
|
@ -71,13 +79,14 @@
|
|||
name="{name}"
|
||||
class:bx--visually-hidden="{true}"
|
||||
{...$$restProps}
|
||||
on:change|stopPropagation
|
||||
on:change|stopPropagation="{({ target }) => {
|
||||
const files = target.files;
|
||||
const length = files.length;
|
||||
if (files && !disableLabelChanges) {
|
||||
labelText = length > 1 ? `${length} files` : files[0].name;
|
||||
}
|
||||
|
||||
dispatch('change', [...files]);
|
||||
}}"
|
||||
on:click
|
||||
on:click="{({ target }) => {
|
||||
|
|
|
@ -8,7 +8,12 @@
|
|||
} from "../types";
|
||||
</script>
|
||||
|
||||
<FileUploaderButton labelText="Add files" />
|
||||
<FileUploaderButton
|
||||
labelText="Add files"
|
||||
on:change="{(e) => {
|
||||
console.log(e.detail); // File[]
|
||||
}}"
|
||||
/>
|
||||
|
||||
<FileUploader
|
||||
multiple
|
||||
|
@ -17,6 +22,15 @@
|
|||
labelDescription="Only JPEG files are accepted."
|
||||
accept="{['.jpg', '.jpeg']}"
|
||||
status="complete"
|
||||
on:add="{(e) => {
|
||||
console.log(e.detail); // File[]
|
||||
}}"
|
||||
on:remove="{(e) => {
|
||||
console.log(e.detail); // File[]
|
||||
}}"
|
||||
on:change="{(e) => {
|
||||
console.log(e.detail); // File[]
|
||||
}}"
|
||||
/>
|
||||
|
||||
<FileUploaderItem name="README.md" status="uploading" />
|
||||
|
|
2
types/FileUploader/FileUploader.svelte.d.ts
vendored
2
types/FileUploader/FileUploader.svelte.d.ts
vendored
|
@ -69,11 +69,11 @@ export default class FileUploader extends SvelteComponentTyped<
|
|||
{
|
||||
add: CustomEvent<File[]>;
|
||||
remove: CustomEvent<File[]>;
|
||||
change: CustomEvent<File[]>;
|
||||
click: WindowEventMap["click"];
|
||||
mouseover: WindowEventMap["mouseover"];
|
||||
mouseenter: WindowEventMap["mouseenter"];
|
||||
mouseleave: WindowEventMap["mouseleave"];
|
||||
change: WindowEventMap["change"];
|
||||
keydown: WindowEventMap["keydown"];
|
||||
},
|
||||
{}
|
||||
|
|
|
@ -73,8 +73,8 @@ export interface FileUploaderButtonProps
|
|||
export default class FileUploaderButton extends SvelteComponentTyped<
|
||||
FileUploaderButtonProps,
|
||||
{
|
||||
change: CustomEvent<File[]>;
|
||||
keydown: WindowEventMap["keydown"];
|
||||
change: WindowEventMap["change"];
|
||||
click: WindowEventMap["click"];
|
||||
},
|
||||
{ labelText: {} }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue