mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-26 19:09:52 +00:00
## Summary Addresses UI/UX feedback on the Upload Model Dialog (BYOM feature). ## Changes 1. **Standardize link styling** - Use consistent `text-muted-foreground underline` for all links in both URL input variants 2. **Increase warning/example text font size** - Changed from 12px (`text-xs`) to 14px (`text-sm`) for better readability 3. **Fix padding inconsistency** - Aligned padding between model name box and SingleSelect dropdown; moved "Not sure?" help text inline with the label 4. **Add "Upload Another" button** - Allows users to upload multiple models without closing and reopening the dialog ## Testing - Verified link styling consistency across both Civitai and generic URL input components - Confirmed padding alignment in confirmation step - Tested Upload Another button resets wizard to step 1 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7969-fix-upload-model-UI-UX-improvements-for-Upload-Model-Dialog-2e66d73d3650815c8184cedb3d02672d) by [Unito](https://www.unito.io)
62 lines
1.8 KiB
Vue
62 lines
1.8 KiB
Vue
<template>
|
|
<div class="flex flex-col gap-4 text-sm text-muted-foreground">
|
|
<div class="flex flex-col gap-2">
|
|
<p class="m-0">
|
|
{{ $t('assetBrowser.modelAssociatedWithLink') }}
|
|
</p>
|
|
<div
|
|
class="flex items-center gap-3 rounded-lg bg-secondary-background px-4 py-2"
|
|
>
|
|
<img
|
|
v-if="previewImage"
|
|
:src="previewImage"
|
|
:alt="metadata?.filename || metadata?.name || 'Model preview'"
|
|
class="size-14 flex-shrink-0 rounded object-cover"
|
|
/>
|
|
<p class="m-0 min-w-0 flex-1 truncate text-base-foreground">
|
|
{{ metadata?.filename || metadata?.name }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Model Type Selection -->
|
|
<div class="flex flex-col gap-2">
|
|
<div class="flex items-center gap-2">
|
|
<label>
|
|
{{ $t('assetBrowser.modelTypeSelectorLabel') }}
|
|
</label>
|
|
<i class="icon-[lucide--circle-question-mark] text-muted-foreground" />
|
|
<span class="text-muted-foreground">
|
|
{{ $t('assetBrowser.notSureLeaveAsIs') }}
|
|
</span>
|
|
</div>
|
|
<SingleSelect
|
|
v-model="modelValue"
|
|
:label="
|
|
isLoading
|
|
? $t('g.loading')
|
|
: $t('assetBrowser.modelTypeSelectorPlaceholder')
|
|
"
|
|
:options="modelTypes"
|
|
:disabled="isLoading"
|
|
data-attr="upload-model-step2-type-selector"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import SingleSelect from '@/components/input/SingleSelect.vue'
|
|
import { useModelTypes } from '@/platform/assets/composables/useModelTypes'
|
|
import type { AssetMetadata } from '@/platform/assets/schemas/assetSchema'
|
|
|
|
defineProps<{
|
|
metadata?: AssetMetadata
|
|
previewImage?: string
|
|
}>()
|
|
|
|
const modelValue = defineModel<string | undefined>()
|
|
|
|
const { modelTypes, isLoading } = useModelTypes()
|
|
</script>
|