From 41984f8073b3272e0b7440ccb0b6e9572f8095ba Mon Sep 17 00:00:00 2001 From: faisalsiddique4400 Date: Wed, 1 Jul 2026 16:43:19 +0500 Subject: [PATCH] fix(admin-ui): data not preloading on the Asset edit page (#2913) Signed-off-by: faisalsiddique4400 --- admin-ui/app/routes/Apps/Gluu/GluuSelectRow.tsx | 14 +++++++++++--- .../plugins/admin/components/Assets/AssetForm.tsx | 7 +++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/admin-ui/app/routes/Apps/Gluu/GluuSelectRow.tsx b/admin-ui/app/routes/Apps/Gluu/GluuSelectRow.tsx index 569afa3b8..f3454009a 100644 --- a/admin-ui/app/routes/Apps/Gluu/GluuSelectRow.tsx +++ b/admin-ui/app/routes/Apps/Gluu/GluuSelectRow.tsx @@ -72,12 +72,20 @@ const GluuSelectRow: React.FC = ({ ) const displayValue = value != null ? String(value) : '' + const resolvedValues = useMemo(() => { + if (!displayValue) return values + const hasValue = values.some( + (item) => (typeof item === 'string' ? item : item.value) === displayValue, + ) + return hasValue ? values : [displayValue, ...values] + }, [values, displayValue]) + const options = useMemo( () => - deduplicateSelectValues(values).map((item) => + deduplicateSelectValues(resolvedValues).map((item) => typeof item === 'string' ? item : (item.label ?? item.value), ), - [values], + [resolvedValues], ) const content = freeSolo ? ( @@ -147,7 +155,7 @@ const GluuSelectRow: React.FC = ({ className={classes.select} > {!hideChooseOption && } - {deduplicateSelectValues(values).map((item) => { + {deduplicateSelectValues(resolvedValues).map((item) => { const optionValue = typeof item === 'string' ? item : item.value const optionLabel = typeof item === 'string' ? item : (item.label ?? item.value) return ( diff --git a/admin-ui/plugins/admin/components/Assets/AssetForm.tsx b/admin-ui/plugins/admin/components/Assets/AssetForm.tsx index 3d0188d77..bf82c313f 100644 --- a/admin-ui/plugins/admin/components/Assets/AssetForm.tsx +++ b/admin-ui/plugins/admin/components/Assets/AssetForm.tsx @@ -36,10 +36,13 @@ import { T_KEYS } from './constants' const AssetForm: React.FC = () => { const { id } = useParams() - const { data: assetPage, isLoading: isLoadingAsset } = useGetAssetByInum(id ?? '', { + const { data: assetResponse, isLoading: isLoadingAsset } = useGetAssetByInum(id ?? '', { query: { enabled: !!id }, }) - const asset = assetPage?.entries?.[0] as Document | undefined + const asset = useMemo(() => { + const entry = assetResponse?.entries?.[0] + return (entry ?? assetResponse) as Document | undefined + }, [assetResponse]) const { data: servicesData } = useAssetServices() const services = servicesData ?? [] const { t, i18n } = useTranslation()