diff --git a/components/avatars/Centered.vue b/components/avatars/Centered.vue index 18c78bb..cc6057b 100644 --- a/components/avatars/Centered.vue +++ b/components/avatars/Centered.vue @@ -1,8 +1,7 @@ - + diff --git a/components/composer/composer.vue b/components/composer/composer.vue index 8afb2d9..7bbc9ce 100644 --- a/components/composer/composer.vue +++ b/components/composer/composer.vue @@ -1,5 +1,5 @@ - + @@ -7,11 +7,12 @@ - - + class="resize-none min-h-48 prose prose-invert max-h-[70dvh] w-full p-0 focus:!ring-0 !ring-none !border-none !outline-none placeholder:text-zinc-500 bg-transparent appearance-none focus:!border-none focus:!outline-none disabled:cursor-not-allowed" + aria-label="Compose your message"> + {{ remainingCharacters }} + class="w-full p-2 mt-1 text-sm prose prose-invert bg-dark-900 rounded focus:!ring-0 !ring-none !border-none !outline-none placeholder:text-zinc-500 appearance-none focus:!border-none focus:!outline-none" + aria-label="Content warning" /> @@ -43,7 +45,7 @@ - + Send! @@ -99,6 +101,7 @@ const files = ref< file: File; progress: number; api_id?: string; + alt_text?: string; }[] >([]); @@ -126,6 +129,21 @@ watch(Control_Alt, () => { chosenSplash.value = splashes[Math.floor(Math.random() * splashes.length)]; }); +watch( + files, + (newFiles) => { + // If a file is uploading, set loading to true + if (newFiles.some((file) => file.progress < 1)) { + loading.value = true; + } else { + loading.value = false; + } + }, + { + deep: true, + }, +); + onMounted(() => { useListen("composer:reply", (note: Status) => { respondingTo.value = note; @@ -154,12 +172,12 @@ const props = defineProps<{ instance: Instance; }>(); -const submitting = ref(false); +const loading = ref(false); const tokenData = useTokenData(); const client = useMegalodon(tokenData); const send = async () => { - submitting.value = true; + loading.value = true; fetch(new URL("/api/v1/statuses", client.value?.baseUrl ?? "").toString(), { method: "POST", @@ -191,7 +209,7 @@ const send = async () => { } content.value = ""; - submitting.value = false; + loading.value = false; useEvent("composer:send", await res.json()); }) .finally(() => { diff --git a/components/composer/file-uploader.vue b/components/composer/file-uploader.vue index 8b1901a..e510dec 100644 --- a/components/composer/file-uploader.vue +++ b/components/composer/file-uploader.vue @@ -15,23 +15,47 @@ - + + {{ formatBytes(data.file.size) }} - + + + !o && updateAltText(data.id, data.alt_text)"> + + + + + + + + Edit + + + +