Merge pull request #3109 from bashrusakh/fix/2982-mobile-agent-duplicate

fix(agents): open duplicate editor on mobile
This commit is contained in:
Bohdan Triapitsyn
2026-08-28 01:23:34 +03:00
committed by GitHub
5 changed files with 688 additions and 2 deletions
@@ -214,6 +214,7 @@ export const SettingsView: React.FC<SettingsViewProps> = ({ onClose, forceMobile
const [pendingSearchItemId, setPendingSearchItemId] = React.useState<string | null>(null);
const [activeSearchResultIndex, setActiveSearchResultIndex] = React.useState(0);
const containerRef = React.useRef<HTMLDivElement>(null);
const shouldFocusMobilePageContentRef = React.useRef(false);
const searchResultRefs = React.useRef<(HTMLButtonElement | null)[]>([]);
const activeSearchResultIndexRef = React.useRef(0);
const keyboardSearchNavigationRef = React.useRef(false);
@@ -764,12 +765,30 @@ export const SettingsView: React.FC<SettingsViewProps> = ({ onClose, forceMobile
}, [runtimeCtx.isVSCode]);
const handleMobilePageSidebarItemSelect = React.useCallback(() => {
shouldFocusMobilePageContentRef.current = true;
setMobileStage('page-content');
if (settingsSlug === 'skills.installed') {
pushMobileSplitDetailHistory(settingsSlug);
}
}, [pushMobileSplitDetailHistory, settingsSlug]);
React.useEffect(() => {
if (!isMobile || mobileStage !== 'page-content' || !shouldFocusMobilePageContentRef.current) {
return;
}
shouldFocusMobilePageContentRef.current = false;
const frame = window.requestAnimationFrame(() => {
containerRef.current
?.querySelector<HTMLElement>('[data-settings-page-heading]')
?.focus({ preventScroll: true });
});
return () => {
window.cancelAnimationFrame(frame);
};
}, [isMobile, mobileStage, settingsSlug]);
const handleBack = React.useCallback(() => {
if (backButtonTargetsPageSidebar) {
const currentDetail = typeof window !== 'undefined'