diff --git a/packages/web/components/common/MySelect/MultipleRowSelect.tsx b/packages/web/components/common/MySelect/MultipleRowSelect.tsx index d8d60c107..52cf223b3 100644 --- a/packages/web/components/common/MySelect/MultipleRowSelect.tsx +++ b/packages/web/components/common/MySelect/MultipleRowSelect.tsx @@ -24,10 +24,12 @@ export const MultipleRowSelect = ({ emptyTip, maxH = 300, onSelect, - popDirection = 'bottom', ButtonProps, - changeOnEverySelect = false -}: MultipleSelectProps) => { + changeOnEverySelect = false, + rowMinWidth = 'autp' +}: MultipleSelectProps & { + rowMinWidth?: string; +}) => { const { t } = useTranslation(); const ButtonRef = useRef(null); @@ -58,6 +60,15 @@ export const MultipleRowSelect = ({ const children = list[selectedIndex]?.children || []; const hasChildren = list.some((item) => item.children && item.children?.length > 0); + // Store current scroll position before update + const currentScrollTop = MenuRef.current[index]?.scrollTop; + // Use useEffect to restore scroll position after render + useEffect(() => { + if (currentScrollTop !== undefined && MenuRef.current[index]) { + MenuRef.current[index]!.scrollTop = currentScrollTop; + } + }, [cloneValue, currentScrollTop]); + return ( <> diff --git a/projects/app/src/components/Select/AIModelSelector.tsx b/projects/app/src/components/Select/AIModelSelector.tsx index e72e24be0..7d012e40b 100644 --- a/projects/app/src/components/Select/AIModelSelector.tsx +++ b/projects/app/src/components/Select/AIModelSelector.tsx @@ -205,6 +205,7 @@ const MultipleRowSelector = ({ list, onchange, disableTip, ...props }: Props) => list={selectorList} onSelect={onSelect} value={value} + rowMinWidth="160px" ButtonProps={{ isDisabled: !!disableTip }}