fix(viral-video): 素材库音频选择弹窗占位符显示修复+按钮禁用态可见性加固 #2120
Reference in New Issue
Block a user
Delete Branch "fix/2041-voice-asset-picker-empty"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug 修复:素材库音频选择弹窗「3个音符占位符」
根因
AssetPickerModal 在 kind=voice 时使用横向卡片(
vv-asset-voice1列 grid,每卡 flex 横排),但占位图标.vv-thumb-ph继承了通用规则width:100%; height:100%,在横排 flex 下撑满整行把右侧的.vv-thumb-name挤到容器右侧视口外(overflow:hidden),用户只能看到3个大号 🎵 图标而看不到素材名称,误以为列表为空。修复
.vv-asset-voice .vv-thumb-ph:改为固定 36px 圆形图标,浅紫底#f3f0ff+ 紫色音符#7c3aed,与音色头像风格统一.vv-asset-voice img/video:同样限制 36px 圆形 object-fit:cover,避免未来有缩略图的音频撑爆布局.vv-asset-voice .vv-thumb-name:改为 flex 布局 + 透明底 + 左对齐,内部.vv-thumb-name-txt(名称)+.vv-thumb-dur(时长徽章,如 15s)代码复核:「选择内置音色」Modal 绑定
onClick={() => setVoicePickerOpen(true)}正确绑定!canEditAssets(STEP1已进入分析中/失败恢复前)为 disabled,正常状态可点击PresetVoicePickerModal在 JSX 末尾挂载,传入 open/voices/selectedId/onClose/onConfirm 齐全refAudio:{source:"preset",id,name}并关闭弹窗STEP2/STEP3 disabled 按钮可见性确认
.vv-btn-primary.vv-btn-disabled-gray已设置opacity:1; background:#d1d5db; color:#6b7280,不会被父级 opacity 冲淡.vv-col-disabled .vv-btn-primary { opacity:1 !important }已强制覆盖列禁用态的 0.55 透明度未改动
getAssetLibraries("voice")→getAssets(libraryId)→ mime_type 过滤 audio/ 前缀,逻辑无错;真实空库时正确显示空状态测试
LGTM
🗑️ 预览环境已清理
PR #2120 已关闭或合并,对应的预览环境已被清理。
🚀 预览环境已部署