diff --git a/app/components/UploadPopover.vue b/app/components/UploadPopover.vue index ee3061e..a08af41 100644 --- a/app/components/UploadPopover.vue +++ b/app/components/UploadPopover.vue @@ -11,6 +11,7 @@ import { PopoverTitle, PopoverTrigger, } from '@/components/ui/popover' +import { Spinner } from '@/components/ui/spinner' const { user } = useAuth() const { t } = useI18n() @@ -82,6 +83,7 @@ async function onSubmit() { {{ errorMessage }}

diff --git a/app/components/ui/spinner/Spinner.vue b/app/components/ui/spinner/Spinner.vue new file mode 100644 index 0000000..d9ca2a8 --- /dev/null +++ b/app/components/ui/spinner/Spinner.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/spinner/index.ts b/app/components/ui/spinner/index.ts new file mode 100644 index 0000000..712ee0e --- /dev/null +++ b/app/components/ui/spinner/index.ts @@ -0,0 +1 @@ +export { default as Spinner } from './Spinner.vue' diff --git a/app/pages/admin.vue b/app/pages/admin.vue index 25549d4..255bf03 100644 --- a/app/pages/admin.vue +++ b/app/pages/admin.vue @@ -15,6 +15,7 @@ import { SelectTrigger, SelectValue, } from '@/components/ui/select' +import { Spinner } from '@/components/ui/spinner' import { Textarea } from '@/components/ui/textarea' definePageMeta({ middleware: 'admin' }) @@ -219,6 +220,7 @@ async function saveMotd() { :disabled="savingRole === role.id" @click="savePermissions(role)" > + {{ savingRole === role.id ? $t('common.saving') : $t('common.save') }} diff --git a/app/pages/login.vue b/app/pages/login.vue index 88bd2e8..97d423b 100644 --- a/app/pages/login.vue +++ b/app/pages/login.vue @@ -3,6 +3,7 @@ import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' +import { Spinner } from '@/components/ui/spinner' const { login } = useAuth() const { t } = useI18n() @@ -50,6 +51,7 @@ async function onSubmit() { {{ errorMessage }}

diff --git a/app/pages/register.vue b/app/pages/register.vue index 8010568..f2fff54 100644 --- a/app/pages/register.vue +++ b/app/pages/register.vue @@ -3,6 +3,7 @@ import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' +import { Spinner } from '@/components/ui/spinner' const { register } = useAuth() const { t } = useI18n() @@ -55,6 +56,7 @@ async function onSubmit() { {{ errorMessage }}

diff --git a/app/pages/settings.vue b/app/pages/settings.vue index 88be335..1468cc3 100644 --- a/app/pages/settings.vue +++ b/app/pages/settings.vue @@ -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() { diff --git a/package-lock.json b/package-lock.json index 7fb13fa..898ef0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "@dnd-kit/abstract": "^0.1.21", "@iconify-json/ph": "^1.2.2", "@iconify-json/simple-icons": "^1.2.98", + "@lucide/vue": "^1.51.0", "@nuxt/image": "^2.1.0", "@nuxtjs/i18n": "^10.6.0", "@tanstack/vue-table": "^9.2.4", @@ -3575,6 +3576,15 @@ "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", "license": "MIT" }, + "node_modules/@lucide/vue": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/@lucide/vue/-/vue-1.51.0.tgz", + "integrity": "sha512-zMkTAMP8OsPESz/GDedsZfr3VUF2IiHlj25mBZG6Pc8A8J8BdygkE8k1HhRFXEUNzytp5DqxiBQNm3RG/U2bVg==", + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.3.tgz", diff --git a/package.json b/package.json index 47f5c63..841ac3b 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@dnd-kit/abstract": "^0.1.21", "@iconify-json/ph": "^1.2.2", "@iconify-json/simple-icons": "^1.2.98", + "@lucide/vue": "^1.51.0", "@nuxt/image": "^2.1.0", "@nuxtjs/i18n": "^10.6.0", "@tanstack/vue-table": "^9.2.4",