Separate Studio 2 source and canvas and apply size and seed choices
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
export function folderAssets(library, jobs, folderId) {
|
||||
const assets=new Map()
|
||||
for (const kind of ['still','clip']) for (const asset of library[kind==='still'?'stills':'clips'] || []) {
|
||||
if (asset.folderId===folderId) assets.set(asset.id,{...asset,kind})
|
||||
}
|
||||
for (const job of jobs) if (job.request.folderId===folderId) for (const asset of job.outputs || []) assets.set(asset.id,{...assets.get(asset.id),...asset})
|
||||
return [...assets.values()].sort((a,b)=>(a.createdAt || a.studio2?.savedAt || 0)-(b.createdAt || b.studio2?.savedAt || 0))
|
||||
}
|
||||
export function newestOutput(jobs, seen, folderId) {
|
||||
const fresh=jobs.filter(j=>j.request.folderId===folderId).flatMap(j=>j.outputs || []).filter(a=>!seen.has(a.id))
|
||||
return fresh.sort((a,b)=>(a.studio2?.savedAt || 0)-(b.studio2?.savedAt || 0)).at(-1) || null
|
||||
}
|
||||
export function selectResult(state, asset) { return {...state,selected:asset} }
|
||||
export function assetLabel(asset) { return asset?.name || asset?.originalName || (asset ? `Still ${asset.id.slice(0,8)}` : 'None') }
|
||||
Reference in New Issue
Block a user