Merge remote dev and resolve conflicts in CreateSessionForm

This commit is contained in:
2026-05-24 10:16:27 +00:00
4 changed files with 18 additions and 22 deletions
@@ -73,23 +73,19 @@ export const CreateSessionForm = ({
// Load branches when selected repo changes
useEffect(() => {
if (!selectedRepo || !showCloneMode) {
const projectId = fixedProjectId || selectedProject;
if (!selectedRepo || !projectId || !showCloneMode) {
setBranches([]);
return;
}
const loadBranches = async () => {
setIsLoadingBranches(true);
try {
const branchResponse = await listRepositoryBranches(
fixedProjectId || selectedProject,
selectedRepo
);
const branchList = branchResponse.branches;
setBranches(branchList);
const defaultBranch = branchList.find((b) => b.is_default);
if (defaultBranch) {
setBranch(defaultBranch.name);
setBaseBranch(defaultBranch.name);
const response = await listRepositoryBranches(projectId, selectedRepo);
setBranches(response.branches);
if (response.default_branch) {
setBranch(response.default_branch);
setBaseBranch(response.default_branch);
}
} catch {
// ignore
@@ -98,7 +94,7 @@ export const CreateSessionForm = ({
}
};
void loadBranches();
}, [selectedRepo, showCloneMode, selectedProject, fixedProjectId]);
}, [selectedRepo, selectedProject, fixedProjectId, showCloneMode]);
// Filter repositories by selected project
const availableRepos = selectedProject
@@ -33,12 +33,10 @@ export const MobileTerminalWrapper: React.FC<MobileTerminalWrapperProps> = ({
} | null>(null);
const headerAutoHide = useAutoHide({ timeout: 3000, enabled: isMobile });
const keysAutoHide = useAutoHide({ timeout: 3000, enabled: isMobile });
const handleTerminalTap = useCallback(() => {
headerAutoHide.toggle();
keysAutoHide.toggle();
}, [headerAutoHide, keysAutoHide]);
}, [headerAutoHide]);
const handleTerminalReady = useCallback(
(sendData: (data: string) => void, connectionStatus: "connecting" | "connected" | "disconnected" | "error", focusInput: () => void) => {
@@ -92,7 +90,7 @@ export const MobileTerminalWrapper: React.FC<MobileTerminalWrapperProps> = ({
<SpecialKeysStrip
onSend={handleSendKey}
isVisible={keysAutoHide.isVisible && !showPanel}
isVisible={!showPanel}
onMoreClick={() => setShowPanel(true)}
onKeepFocus={() => terminalRef?.focusInput()}
/>
+3 -3
View File
@@ -275,10 +275,10 @@ export const TerminalComponent: React.FC<TerminalProps> = ({
}
};
// Focus hidden input on mobile to keep keyboard open
// Focus terminal on mobile to keep keyboard open
const handleTerminalClick = () => {
if (isMobile && hiddenInputRef.current) {
hiddenInputRef.current.focus();
if (isMobile && termRef.current) {
termRef.current.focus();
}
};
+5 -3
View File
@@ -3211,13 +3211,15 @@ a.nav-item,
}
.terminal-hidden-input {
position: absolute;
bottom: 0;
left: 0;
position: fixed;
left: -9999px;
top: -9999px;
width: 1px;
height: 1px;
opacity: 0;
pointer-events: none;
user-select: none;
-webkit-user-select: none;
}
/* Disable zoom on mobile terminal */