Shared Spinner component for button loading states

Adds a reusable shadcn-style Spinner (lucide loader-circle icon,
localized aria-label) and wires it into every button that has a
pending state: comment submit, delete, tag save, profile save,
admin saves, upload, login and register.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
2026-10-04 03:05:48 +02:00
co-authored by Devin
parent fab086d17e
commit d95ccf9dc7
9 changed files with 40 additions and 0 deletions
+2
View File
@@ -33,6 +33,7 @@ import {
SelectTrigger,
SelectValue,
} from '@/components/ui/select'
import { Spinner } from '@/components/ui/spinner'
const { user, refresh } = useAuth()
const { invalidate } = useUserSummaries()
@@ -268,6 +269,7 @@ async function save() {
<FileDropzone v-model="avatar" accept="image/*" :hint="t('upload.avatarHint')" />
</div>
<Button type="submit" class="w-full" :disabled="saving">
<Spinner v-if="saving" />
{{ saving ? $t('common.saving') : $t('common.save') }}
</Button>
</form>