From 06508e06318e283422a5997d9d9044f133e3c0d0 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Sat, 7 Feb 2026 01:47:20 +0100 Subject: [PATCH] Animated run layout --- src/app/run/components/FileTree.tsx | 23 ++++++++++++++++------- src/app/run/components/RunChat.tsx | 6 +++++- src/app/run/page.tsx | 10 ++++++++-- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/app/run/components/FileTree.tsx b/src/app/run/components/FileTree.tsx index 4bd23e7..43dc2ab 100644 --- a/src/app/run/components/FileTree.tsx +++ b/src/app/run/components/FileTree.tsx @@ -12,9 +12,14 @@ type TreeNode = { interface FileTreeProps { tree: TreeNode; level?: number; // for indentation + delay?: number; // stagger delay in ms } -export const FileTree: React.FC = ({ tree, level = 0 }) => { +export const FileTree: React.FC = ({ + tree, + level = 0, + delay = 0, +}) => { const [expanded, setExpanded] = useState( tree.type !== "directory" || level === 0 ? true : false, ); @@ -32,11 +37,9 @@ export const FileTree: React.FC = ({ tree, level = 0 }) => { onClick={toggleExpand} style={{ paddingLeft: level * 20, - display: "flex", - alignItems: "center", - cursor: tree.type === "directory" ? "pointer" : "default", - userSelect: "none", + animationDelay: `${delay}ms`, }} + className="flex items-center cursor-pointer select-none animate-fade-in opacity-0" > {tree.type === "directory" ? ( expanded ? ( @@ -52,8 +55,14 @@ export const FileTree: React.FC = ({ tree, level = 0 }) => { {/* Children */} {expanded && - tree.children?.map((child) => ( - + tree.children?.map((child, index) => ( + ))} ); diff --git a/src/app/run/components/RunChat.tsx b/src/app/run/components/RunChat.tsx index 9516d3b..3d420e7 100644 --- a/src/app/run/components/RunChat.tsx +++ b/src/app/run/components/RunChat.tsx @@ -30,7 +30,11 @@ export default function RunChat({ {/* Messages */}
{chatMessages.map((msg, i) => ( -
+
{msg.user}:{" "} {msg.message} diff --git a/src/app/run/page.tsx b/src/app/run/page.tsx index ee44840..60f5d38 100644 --- a/src/app/run/page.tsx +++ b/src/app/run/page.tsx @@ -28,12 +28,18 @@ export default function Run() {
-
+
{runInfo && }
- +