- Fix missing i18n for terminal.terminalWithPath translation key - Update keyboard shortcuts: remove Ctrl+T conflicts, change refresh to Ctrl+Y, rename shortcut to F6 - Remove click-to-rename functionality to prevent accidental renaming - Fix drag preview z-index and positioning issues during file operations - Remove false download trigger when dragging files to original position - Fix 'Must be handling a user gesture' error in drag-to-desktop functionality - Remove useless minimize button from file editor and diff viewer windows - Improve context menu z-index hierarchy for better layering - Add comprehensive drag state management and visual feedback 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
74 lines
1.6 KiB
TypeScript
74 lines
1.6 KiB
TypeScript
import React from "react";
|
|
import { DraggableWindow } from "./DraggableWindow";
|
|
import { DiffViewer } from "./DiffViewer";
|
|
import { useWindowManager } from "./WindowManager";
|
|
import { useTranslation } from "react-i18next";
|
|
import type { FileItem, SSHHost } from "../../../../types/index.js";
|
|
|
|
interface DiffWindowProps {
|
|
windowId: string;
|
|
file1: FileItem;
|
|
file2: FileItem;
|
|
sshSessionId: string;
|
|
sshHost: SSHHost;
|
|
initialX?: number;
|
|
initialY?: number;
|
|
}
|
|
|
|
export function DiffWindow({
|
|
windowId,
|
|
file1,
|
|
file2,
|
|
sshSessionId,
|
|
sshHost,
|
|
initialX = 150,
|
|
initialY = 100,
|
|
}: DiffWindowProps) {
|
|
const { t } = useTranslation();
|
|
const { closeWindow, maximizeWindow, focusWindow, windows } =
|
|
useWindowManager();
|
|
|
|
const currentWindow = windows.find((w) => w.id === windowId);
|
|
|
|
// Window operation handling
|
|
const handleClose = () => {
|
|
closeWindow(windowId);
|
|
};
|
|
|
|
const handleMaximize = () => {
|
|
maximizeWindow(windowId);
|
|
};
|
|
|
|
const handleFocus = () => {
|
|
focusWindow(windowId);
|
|
};
|
|
|
|
if (!currentWindow) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<DraggableWindow
|
|
title={t("fileManager.fileComparison", { file1: file1.name, file2: file2.name })}
|
|
initialX={initialX}
|
|
initialY={initialY}
|
|
initialWidth={1200}
|
|
initialHeight={700}
|
|
minWidth={800}
|
|
minHeight={500}
|
|
onClose={handleClose}
|
|
onMaximize={handleMaximize}
|
|
onFocus={handleFocus}
|
|
isMaximized={currentWindow.isMaximized}
|
|
zIndex={currentWindow.zIndex}
|
|
>
|
|
<DiffViewer
|
|
file1={file1}
|
|
file2={file2}
|
|
sshSessionId={sshSessionId}
|
|
sshHost={sshHost}
|
|
/>
|
|
</DraggableWindow>
|
|
);
|
|
}
|