fix: FE-226 thread input-side created_at into All-tab sort

This commit is contained in:
dante01yoon
2026-04-21 11:11:11 +09:00
parent 9c9e87fd1b
commit 1ebc51d52e
2 changed files with 29 additions and 7 deletions

View File

@@ -48,6 +48,7 @@ const modelValue = defineModel<string | undefined>({
const { t } = useI18n()
const outputMediaAssets = useMediaAssets('output')
const inputMediaAssets = useMediaAssets('input')
const transformCompatProps = useTransformCompatOverlayProps()
@@ -84,6 +85,7 @@ const {
modelValue,
assetKind: () => props.assetKind,
outputMediaAssets,
inputMediaAssets,
assetData,
isAssetMode: () => props.isAssetMode
})
@@ -146,9 +148,13 @@ const acceptTypes = computed(() => {
const layoutMode = ref<LayoutMode>(props.defaultLayoutMode ?? 'grid')
function handleIsOpenUpdate(isOpen: boolean) {
if (isOpen && !outputMediaAssets.loading.value) {
if (!isOpen) return
if (!outputMediaAssets.loading.value) {
void outputMediaAssets.refresh()
}
if (!inputMediaAssets.loading.value) {
void inputMediaAssets.refresh()
}
}
</script>

View File

@@ -146,18 +146,34 @@ export function useWidgetSelectItems(options: UseWidgetSelectItemsOptions) {
{ immediate: true }
)
const inputAssetsByName = computed<Map<string, AssetItem>>(() => {
const map = new Map<string, AssetItem>()
const assets = options.inputMediaAssets?.media.value
if (!assets) return map
for (const asset of assets) {
map.set(asset.name, asset)
}
return map
})
const inputItems = computed<FormDropdownItem[]>(() => {
const values = toValue(options.values) || []
if (!Array.isArray(values)) return []
const labelFn = toValue(options.getOptionLabel)
const kind = toValue(options.assetKind)
return values.map((value, index) => ({
id: `input-${index}`,
preview_url: getMediaUrl(String(value), 'input', kind),
name: String(value),
label: getDisplayLabel(String(value), labelFn)
}))
const lookup = inputAssetsByName.value
return values.map((value, index) => {
const name = String(value)
const matched = lookup.get(name)
return {
id: `input-${index}`,
preview_url: getMediaUrl(name, 'input', kind),
name,
label: getDisplayLabel(name, labelFn),
created_at: matched?.created_at
}
})
})
const outputItems = computed<FormDropdownItem[]>(() => {