Make Studio 2 the home bench with YuE2 music, LTX, and per-preview hide.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,12 +1,22 @@
|
||||
export function folderAssets(library, jobs, folderId) {
|
||||
const metadata=new Map(jobs.flatMap(j=>j.outputs || []).map(a=>[a.id,a.studio2]))
|
||||
return ['still','clip'].flatMap(kind=>(library[kind==='still'?'stills':'clips'] || []).filter(a=>a.id && a.folderId===folderId && a.hasVideo!==false && a.available!==false).map(a=>({...a,kind,studio2:a.studio2 || metadata.get(a.id)}))).sort((a,b)=>(a.createdAt || a.studio2?.savedAt || 0)-(b.createdAt || b.studio2?.savedAt || 0))
|
||||
const kinds=[['still','stills'],['clip','clips'],['track','tracks']]
|
||||
return kinds.flatMap(([kind,key])=>(library[key] || []).filter(a=>a.id && a.folderId===folderId && a.hasVideo!==false && a.available!==false).map(a=>({...a,kind,studio2:a.studio2 || metadata.get(a.id)}))).sort((a,b)=>(a.createdAt || a.studio2?.savedAt || 0)-(b.createdAt || b.studio2?.savedAt || 0))
|
||||
}
|
||||
export function newestOutput(jobs, seen, folderId) {
|
||||
return jobs.filter(j=>j.request.folderId===folderId).flatMap(j=>j.outputs || []).filter(a=>!seen.has(a.id)).sort((a,b)=>(a.studio2?.savedAt || 0)-(b.studio2?.savedAt || 0)).at(-1) || null
|
||||
}
|
||||
export function reconcileSelection(selected, assets) { return assets.find(a=>a.id===selected?.id) || assets.at(-1) || null }
|
||||
export function activeJobs(jobs) { return jobs.filter(j=>['waking','submitting','rendering','saving'].includes(j.state)) }
|
||||
export function previewHidden(asset, xaigen, hideInput, hideOutput) { return !!xaigen && (asset?.role==='input' ? !!hideInput : !!hideOutput) }
|
||||
export function previewHidden(asset, revealed, xaigen) {
|
||||
if (!xaigen || !asset?.id) return false
|
||||
return !revealed?.has?.(asset.id)
|
||||
}
|
||||
export function selectResult(state, asset) { return {...state,selected:asset} }
|
||||
export function assetLabel(asset) { return asset?.name || asset?.originalName || asset?.filename || (asset ? (asset.kind==='clip'?'Clip ':'Still ')+asset.id.slice(0,8) : 'None') }
|
||||
export function assetLabel(asset) {
|
||||
if (!asset) return 'None'
|
||||
if (asset.name || asset.originalName || asset.filename) return asset.name || asset.originalName || asset.filename
|
||||
if (asset.kind==='track') return 'Track '+asset.id.slice(0,8)
|
||||
if (asset.kind==='clip') return 'Clip '+asset.id.slice(0,8)
|
||||
return 'Still '+asset.id.slice(0,8)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user