style: 🎨 Format code with Biome

This commit is contained in:
Jesse Wierzbinski 2025-12-09 22:32:22 +01:00
parent 7ff9d2302a
commit 3627ac0ef8
No known key found for this signature in database
296 changed files with 3257 additions and 2808 deletions

View file

@ -1,69 +1,105 @@
<template>
<div v-if="relation" class="overflow-auto max-h-72">
<Note :note="relation.note" :hide-actions="true" :small-layout="true" />
<Note :note="relation.note" :hide-actions="true" :small-layout="true"/>
</div>
<InputGroup class="p-1">
<InputGroupAddon v-if="store.sensitive" align="block-start" class="pt-3">
<Input v-model:model-value="store.contentWarning" placeholder="Put your content warning here" />
<InputGroupAddon
v-if="store.sensitive"
align="block-start"
class="pt-3"
>
<Input
v-model:model-value="store.contentWarning"
placeholder="Put your content warning here"
/>
</InputGroupAddon>
<EditorContent data-slot="input-group-control" @paste-files="uploadFiles" v-model:content="store.content"
v-model:raw-content="store.rawContent" :placeholder="getRandomSplash()"
<EditorContent
data-slot="input-group-control"
@paste-files="uploadFiles"
v-model:content="store.content"
v-model:raw-content="store.rawContent"
:placeholder="getRandomSplash()"
class=" placeholder:text-muted-foreground flex field-sizing-content min-h-58 w-full px-4 text-base disabled:opacity-50 md:text-sm flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none"
:disabled="store.sending" :mode="store.contentType === 'text/html' ? 'rich' : 'plain'" />
:disabled="store.sending"
:mode="store.contentType === 'text/html' ? 'rich' : 'plain'"
/>
<InputGroupAddon v-if="store.files.length > 0" align="block-end" class="overflow-x-auto *:shrink-0">
<Files v-model:files="store.files" :composer-key="composerKey" />
<InputGroupAddon
v-if="store.files.length > 0"
align="block-end"
class="overflow-x-auto *:shrink-0"
>
<Files v-model:files="store.files" :composer-key="composerKey"/>
</InputGroupAddon>
<InputGroupAddon align="block-end">
<Select v-model:model-value="store.contentType">
<SelectTrigger as-child disable-default-classes disable-select-icon>
<SelectTrigger
as-child
disable-default-classes
disable-select-icon
>
<InputGroupButton variant="ghost" size="icon-sm">
<LetterText v-if="store.contentType === 'text/html'" />
<Type v-else />
<LetterText v-if="store.contentType === 'text/html'"/>
<Type v-else/>
</InputGroupButton>
</SelectTrigger>
<SelectContent>
<SelectItem value="text/plain">
Plain text
</SelectItem>
<SelectItem value="text/html">
Rich text
</SelectItem>
<SelectItem value="text/plain">Plain text</SelectItem>
<SelectItem value="text/html">Rich text</SelectItem>
</SelectContent>
</Select>
<VisibilityPicker v-model:visibility="store.visibility">
<InputGroupButton variant="ghost" size="icon-sm" :disabled="store.relation?.type === 'edit'">
<component :is="visibilities[store.visibility].icon" />
<InputGroupButton
variant="ghost"
size="icon-sm"
:disabled="store.relation?.type === 'edit'"
>
<component :is="visibilities[store.visibility].icon"/>
</InputGroupButton>
</VisibilityPicker>
<InputGroupButton variant="ghost" size="icon-sm" @click="fileInput?.click()">
<FilePlus2 />
<InputGroupButton
variant="ghost"
size="icon-sm"
@click="fileInput?.click()"
>
<FilePlus2/>
</InputGroupButton>
<Toggle size="sm" v-model="store.sensitive">
<TriangleAlert />
<TriangleAlert/>
</Toggle>
<InputGroupText :class="['ml-auto', charactersLeft < 0 && 'text-destructive']">
<InputGroupText
:class="['ml-auto', charactersLeft < 0 && 'text-destructive']"
>
{{ charactersLeft.toLocaleString(getLocale(), {
maximumFractionDigits: 2,
notation: 'compact',
compactDisplay: 'short',
}) }}
</InputGroupText>
<Separator orientation="vertical" class="h-4!" />
<InputGroupButton variant="default" size="icon-sm" :disabled="store.sending || !store.canSend"
@click="send">
<Spinner v-if="store.sending" />
<ArrowUp v-else />
<Separator orientation="vertical" class="h-4!"/>
<InputGroupButton
variant="default"
size="icon-sm"
:disabled="store.sending || !store.canSend"
@click="send"
>
<Spinner v-if="store.sending"/>
<ArrowUp v-else/>
<span class="sr-only">Send</span>
</InputGroupButton>
</InputGroupAddon>
</InputGroup>
<input type="file" ref="fileInput" @change="uploadFileFromEvent" class="hidden" multiple />
<input
type="file"
ref="fileInput"
@change="uploadFileFromEvent"
class="hidden"
multiple
>
</template>
<script lang="ts" setup>

View file

@ -101,7 +101,7 @@ const relation = ref(
: m.brief_cool_capybara_fear()
}}
</DialogDescription>
<Composer :relation="relation ?? undefined" />
<Composer :relation="relation ?? undefined"/>
</DialogContent>
</Dialog>
</template>

View file

@ -5,26 +5,37 @@
:disabled="file.uploading || file.updating"
class="block bg-card text-card-foreground shadow-sm h-28 overflow-hidden rounded relative min-w-28 *:disabled:opacity-50"
>
<img v-if="file.file?.type.startsWith('image/')" :src="createObjectURL(file.file)" class="object-contain h-28 w-full" :alt="file.alt" />
<FileIcon v-else class="size-6 m-auto text-muted-foreground" />
<img
v-if="file.file?.type.startsWith('image/')"
:src="createObjectURL(file.file)"
class="object-contain h-28 w-full"
:alt="file.alt"
>
<FileIcon v-else class="size-6 m-auto text-muted-foreground"/>
<Badge
v-if="file.file && !(file.uploading || file.updating)"
class="absolute bottom-1 right-1"
variant="default"
>{{ formatBytes(file.file.size) }}</Badge
>
<Spinner v-else-if="file.file" class="absolute bottom-1 right-1 size-8 p-1.5" />
{{ formatBytes(file.file.size) }}
</Badge>
<Spinner
v-else-if="file.file"
class="absolute bottom-1 right-1 size-8 p-1.5"
/>
</DropdownMenuTrigger>
<DropdownMenuContent class="min-w-48">
<DropdownMenuLabel v-if="file.file">{{ file.file.name }}</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuLabel v-if="file.file">
{{ file.file.name }}
</DropdownMenuLabel>
<DropdownMenuSeparator/>
<DropdownMenuItem @click="editCaption">
<Captions />
<Captions/>
Add caption
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuSeparator/>
<DropdownMenuItem @click="emit('remove')">
<Delete />
<Delete/>
Remove
</DropdownMenuItem>
</DropdownMenuContent>

View file

@ -1,6 +1,12 @@
<template>
<FilePreview v-for="(file, index) in files" :key="file.apiId" :file="file" @update:file="files[index] = $event" :composer-key="composerKey"
@remove="files.splice(index, 1)" />
<FilePreview
v-for="(file, index) in files"
:key="file.apiId"
:file="file"
@update:file="files[index] = $event"
:composer-key="composerKey"
@remove="files.splice(index, 1)"
/>
</template>
<script lang="ts" setup>

View file

@ -1,12 +1,19 @@
<template>
<Select v-model:model-value="visibility">
<SelectTrigger as-child disable-default-classes disable-select-icon>
<slot />
<slot/>
</SelectTrigger>
<SelectContent>
<SelectItem v-for="(v, k) in visibilities" :key="k" @click="visibility = k" :value="k">
<div class="flex flex-row gap-3 items-center w-full justify-between">
<component :is="v.icon" class="size-4" />
<SelectItem
v-for="(v, k) in visibilities"
:key="k"
@click="visibility = k"
:value="k"
>
<div
class="flex flex-row gap-3 items-center w-full justify-between"
>
<component :is="v.icon" class="size-4"/>
<div class="flex flex-col gap-1">
<span class="font-semibold">{{ v.name }}</span>
<span>{{ v.text }}</span>