fix: display error if attachments exceed limit (#666)

zio/stable
Shane H 2022-12-31 04:02:55 -05:00 committed by GitHub
parent 53fc28bf61
commit 4713db9adc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 8 deletions

View File

@ -54,6 +54,7 @@ const currentVisibility = $computed(() => {
}) })
let isUploading = $ref<boolean>(false) let isUploading = $ref<boolean>(false)
let isExceedingAttachmentLimit = $ref<boolean>(false)
let failed = $ref<File[]>([]) let failed = $ref<File[]>([])
async function handlePaste(evt: ClipboardEvent) { async function handlePaste(evt: ClipboardEvent) {
@ -92,17 +93,25 @@ async function uploadAttachments(files: File[]) {
isUploading = true isUploading = true
failed = [] failed = []
// TODO: display some kind of message if too many media are selected // TODO: display some kind of message if too many media are selected
// DONE
const limit = currentInstance.value!.configuration.statuses.maxMediaAttachments || 4 const limit = currentInstance.value!.configuration.statuses.maxMediaAttachments || 4
for (const file of files.slice(0, limit)) { for (const file of files.slice(0, limit)) {
try { if (draft.attachments.length < limit) {
const attachment = await masto.mediaAttachments.create({ isExceedingAttachmentLimit = false
file, try {
}) const attachment = await masto.mediaAttachments.create({
draft.attachments.push(attachment) file,
})
draft.attachments.push(attachment)
}
catch (e) {
// TODO: add some human-readable error message, problem is that masto api will not return response code
console.error(e)
failed = [...failed, file]
}
} }
catch (e) { else {
// TODO: add some human-readable error message, problem is that masto api will not return response code isExceedingAttachmentLimit = true
console.error(e)
failed = [...failed, file] failed = [...failed, file]
} }
} }
@ -246,6 +255,9 @@ defineExpose({
</button> </button>
</CommonTooltip> </CommonTooltip>
</head> </head>
<div v-if="isExceedingAttachmentLimit" pl-2 sm:pl-1 text-small>
{{ $t('state.attachments_exceed_server_limit') }}
</div>
<ol pl-2 sm:pl-1> <ol pl-2 sm:pl-1>
<li v-for="file in failed" :key="file.name"> <li v-for="file in failed" :key="file.name">
{{ file.name }} {{ file.name }}

View File

@ -260,6 +260,7 @@
} }
}, },
"state": { "state": {
"attachments_exceed_server_limit": "The number of attachments exceeded the limit per post.",
"edited": "(Edited)", "edited": "(Edited)",
"editing": "Editing", "editing": "Editing",
"loading": "Loading...", "loading": "Loading...",

View File

@ -260,6 +260,7 @@
} }
}, },
"state": { "state": {
"attachments_exceed_server_limit": "The number of attachments exceeded the limit per post.",
"edited": "(Edited)", "edited": "(Edited)",
"editing": "Editing", "editing": "Editing",
"loading": "Loading...", "loading": "Loading...",