mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 10:21:05 +00:00
parent
fd3698b49a
commit
85c4a14b2a
25 changed files with 546 additions and 28 deletions
49
src/components/FileUploader/FileUploaderItem.svelte
Normal file
49
src/components/FileUploader/FileUploaderItem.svelte
Normal file
|
@ -0,0 +1,49 @@
|
|||
<script>
|
||||
let className = undefined;
|
||||
export { className as class };
|
||||
export let id = Math.random();
|
||||
export let status = 'uploading';
|
||||
export let iconDescription = '';
|
||||
export let name = '';
|
||||
export let invalid = false;
|
||||
export let errorSubject = '';
|
||||
export let errorBody = '';
|
||||
export let style = undefined;
|
||||
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
import { cx } from '../../lib';
|
||||
import Filename from './Filename.svelte';
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
const _class = cx(
|
||||
'--file__selected-file',
|
||||
invalid && '--file__selected-file--invalid',
|
||||
className
|
||||
);
|
||||
</script>
|
||||
|
||||
<span on:mouseover on:mouseenter on:mouseleave class={_class} {style}>
|
||||
<p class={cx('--file-filename')}>{name}</p>
|
||||
<span class={cx('--file__state-container')}>
|
||||
<Filename
|
||||
{iconDescription}
|
||||
{status}
|
||||
{invalid}
|
||||
on:keydown={({ key }) => {
|
||||
if (key === ' ' || key === 'Enter') {
|
||||
dispatch('delete', id);
|
||||
}
|
||||
}}
|
||||
on:click={() => {
|
||||
dispatch('delete', id);
|
||||
}} />
|
||||
</span>
|
||||
{#if invalid && errorSubject}
|
||||
<div class={cx('--form-requirement')}>
|
||||
<div class={cx('--form-requirement__title')}>{errorSubject}</div>
|
||||
{#if errorBody}
|
||||
<p class={cx('--form-requirement__supplement')}>{errorBody}</p>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</span>
|
Loading…
Add table
Add a link
Reference in a new issue