* locale from lokalise

* version bump

* update dependencies

* show size with overhead

* use base64 instead of hex and refactor a bit

* changelog & readme

* size limit

* locale

* add sync for svelte

* refarcor create & add loading animation

* changelog
This commit is contained in:
2022-07-19 10:27:23 +02:00
committed by GitHub
parent 9590c9b567
commit a5d98b76bd
27 changed files with 518 additions and 273 deletions

View File

@@ -1,38 +1,32 @@
<script lang="ts">
import type { FileDTO } from '$lib/api'
import { Files } from '$lib/files'
import { createEventDispatcher } from 'svelte'
import { t } from 'svelte-intl-precompile'
import Button from './Button.svelte'
import MaxSize from './MaxSize.svelte'
import type { FileDTO } from '$lib/api'
import Button from '$lib/ui/Button.svelte'
import MaxSize from '$lib/ui/MaxSize.svelte'
export let label: string = ''
let files: File[] = []
export let files: FileDTO[] = []
const dispatch = createEventDispatcher<{ file: string }>()
function fileToDTO(file: File): FileDTO {
return {
name: file.name,
size: file.size,
type: file.type,
contents: file,
}
}
async function onInput(e: Event) {
const input = e.target as HTMLInputElement
if (input?.files?.length) {
files = [...files, ...Array.from(input.files)]
const data: FileDTO[] = await Promise.all(
files.map(async (file) => ({
name: file.name,
type: file.type,
size: file.size,
contents: await Files.toString(file),
}))
)
dispatch('file', JSON.stringify(data))
} else {
dispatch('file', '')
files = [...files, ...Array.from(input.files).map(fileToDTO)]
}
}
function clear(e: Event) {
e.preventDefault()
files = []
dispatch('file', '')
}
</script>
@@ -57,7 +51,9 @@
<div>
<b>{$t('file_upload.no_files_selected')}</b>
<br />
<small>{$t('common.max')}: <MaxSize /></small>
<small>
{$t('common.max')}: <MaxSize />
</small>
</div>
{/if}
</div>