Avatars don't support SVG format

This commit is contained in:
N-Pex 2025-11-05 17:31:43 +01:00
parent 71c5103280
commit 023aef7eb4
7 changed files with 17 additions and 9 deletions

View file

@ -68,7 +68,7 @@
<interactive-auth ref="interactiveAuth" /> <interactive-auth ref="interactiveAuth" />
<input id="user-avatar-picker" ref="useravatar" type="file" name="user-avatar" <input id="user-avatar-picker" ref="useravatar" type="file" name="user-avatar"
@change="handlePickedUserAvatar($event)" :accept="supportedImageTypes" class="d-none" /> @change="handlePickedUserAvatar($event)" :accept="supportedAvatarImageTypes" class="d-none" />
<v-dialog v-model="enterRoomDialog" :width="$vuetify.display.smAndUp ? '50%' : '90%'"> <v-dialog v-model="enterRoomDialog" :width="$vuetify.display.smAndUp ? '50%' : '90%'">
<v-card> <v-card>

View file

@ -114,7 +114,7 @@
</div> </div>
<input id="room-avatar-picker" ref="avatar" type="file" name="avatar" @change="handlePickedAvatar($event)" <input id="room-avatar-picker" ref="avatar" type="file" name="avatar" @change="handlePickedAvatar($event)"
:accept="supportedImageTypes" class="d-none" /> :accept="supportedAvatarImageTypes" class="d-none" />
<div class="join-lang"> <div class="join-lang">
<h3 class="mb-2">{{ $t("profile.select_language") }}</h3> <h3 class="mb-2">{{ $t("profile.select_language") }}</h3>

View file

@ -33,7 +33,7 @@
type="file" type="file"
name="avatar" name="avatar"
@change="handlePickedAvatar($event)" @change="handlePickedAvatar($event)"
:accept="supportedImageTypes" :accept="supportedAvatarImageTypes"
class="d-none" class="d-none"
/> />
</v-avatar> </v-avatar>

View file

@ -10,7 +10,7 @@
type="file" type="file"
name="roomAvatar" name="roomAvatar"
@change="handleRoomPickedAvatar($event)" @change="handleRoomPickedAvatar($event)"
:accept="supportedImageTypes" :accept="supportedAvatarImageTypes"
class="d-none" class="d-none"
/> />
</v-avatar> </v-avatar>

View file

@ -4,7 +4,7 @@
<v-icon class="create-room-avatar__icon default" v-else>$vuetify.icons.room_avatar_placeholder</v-icon> <v-icon class="create-room-avatar__icon default" v-else>$vuetify.icons.room_avatar_placeholder</v-icon>
<v-icon class="create-room-avatar__camera clickable" v-if="!modelValue || !modelValue.image" @click.stop="showRoomAvatarPicker">$vuetify.icons.ic_camera</v-icon> <v-icon class="create-room-avatar__camera clickable" v-if="!modelValue || !modelValue.image" @click.stop="showRoomAvatarPicker">$vuetify.icons.ic_camera</v-icon>
<input id="room-avatar-picker" ref="roomAvatar" type="file" name="roomAvatar" <input id="room-avatar-picker" ref="roomAvatar" type="file" name="roomAvatar"
@change="handlePickedRoomAvatar($event)" :accept="supportedImageTypes" class="d-none" /> @change="handlePickedRoomAvatar($event)" :accept="supportedAvatarImageTypes" class="d-none" />
</div> </div>
</template> </template>

View file

@ -16,7 +16,7 @@ import Vue3Sanitize from "vue-3-sanitize";
import vuetify from './plugins/vuetify'; import vuetify from './plugins/vuetify';
import { Buffer } from 'buffer/' import { Buffer } from 'buffer/'
import { createApp, h } from 'vue'; import { createApp, h } from 'vue';
import { supportedImageTypes } from '@/plugins/utils'; import { supportedImageTypes, supportedAvatarImageTypes } from '@/plugins/utils';
globalThis.Buffer = Buffer; globalThis.Buffer = Buffer;
@ -28,7 +28,7 @@ const app = createApp({
render: () => h(App) render: () => h(App)
}); });
app.config.globalProperties.supportedImageTypes = supportedImageTypes; app.config.globalProperties.supportedImageTypes = supportedImageTypes;
app.config.globalProperties.supportedAvatarImageTypes = supportedAvatarImageTypes;
app.use(Vue3Sanitize, defaultOptions); app.use(Vue3Sanitize, defaultOptions);

View file

@ -36,9 +36,17 @@ export const supportedImageTypes = [
"image/jpg", "image/jpg",
"image/jpeg", "image/jpeg",
"image/png", "image/png",
"image/svg", "image/svg+xml",
"image/webp",
];
export const supportedAvatarImageTypes = [
"image/bmp",
"image/gif",
"image/jpg",
"image/jpeg",
"image/png",
"image/webp", "image/webp",
"image/x-icon"
]; ];
// Install extended localized format // Install extended localized format