diff --git a/website/src/repl/components/ReplEditor.jsx b/website/src/repl/components/ReplEditor.jsx
index 96db909b..23288d18 100644
--- a/website/src/repl/components/ReplEditor.jsx
+++ b/website/src/repl/components/ReplEditor.jsx
@@ -4,30 +4,56 @@ import { Code } from '@src/repl/components/Code';
import UserFacingErrorMessage from '@src/repl/components/UserFacingErrorMessage';
import { Header } from './Header';
import { useSettings, settingsMap } from '@src/settings.mjs';
-import { Panel, PanelGroup, PanelResizeHandle } from 'react-resizable-panels';
-import { useCallback } from 'react';
+import { useRef } from 'react';
-// Resize handle component with visual feedback
-function ResizeHandle({ direction = 'horizontal' }) {
+// Resize handle component
+function ResizeHandle({ direction, containerRef, settingKey }) {
const isHorizontal = direction === 'horizontal';
+ const isDragging = useRef(false);
+
+ const handlePointerDown = (e) => {
+ isDragging.current = true;
+ e.target.setPointerCapture(e.pointerId);
+ };
+
+ const handlePointerMove = (e) => {
+ if (!isDragging.current || !containerRef.current) return;
+
+ const container = containerRef.current;
+ const size = isHorizontal ? container.offsetHeight : container.offsetWidth;
+ const movement = isHorizontal ? -e.movementY : -e.movementX;
+ const deltaPercent = (movement / size) * 100;
+
+ const currentSize = Number(settingsMap.get()[settingKey]) || (isHorizontal ? 35 : 30);
+ const newSize = Math.max(20, Math.min(50, currentSize + deltaPercent));
+ settingsMap.setKey(settingKey, newSize);
+ };
+
+ const handlePointerUp = (e) => {
+ isDragging.current = false;
+ e.target.releasePointerCapture(e.pointerId);
+ };
+
return (
-
-
-
+
+ {showRightPanel && isPanelOpen && (
+ Ключи хранятся локально
+Ключи хранятся локально