diff --git a/src/features/playground/workspace/editor/footer.tsx b/src/features/playground/workspace/editor/footer.tsx new file mode 100644 index 0000000..65bb5b3 --- /dev/null +++ b/src/features/playground/workspace/editor/footer.tsx @@ -0,0 +1,53 @@ +"use client"; + +import { cn } from "@/lib/utils"; +import { useEffect, useState } from "react"; +import { useCodeEditorStore } from "@/store/useCodeEditorStore"; + +interface WorkspaceEditorFooterProps { + className?: string; +} + +export default function WorkspaceEditorFooter({ + className, + ...props +}: WorkspaceEditorFooterProps) { + const { editor } = useCodeEditorStore(); + const [position, setPosition] = useState<{ lineNumber: number; column: number } | null>(null); + + useEffect(() => { + if (!editor) return; + + const initialPosition = editor.getPosition(); + if (initialPosition) { + setPosition({ + lineNumber: initialPosition.lineNumber, + column: initialPosition.column, + }); + } + + const dispose = editor.onDidChangeCursorPosition((e) => { + setPosition({ + lineNumber: e.position.lineNumber, + column: e.position.column, + }); + }); + + return () => dispose.dispose(); + }, [editor]); + + return ( + + ); +}