Skip to content

Commit 9883003

Browse files
removed unecessary code
1 parent 3518817 commit 9883003

File tree

9 files changed

+142
-135
lines changed

9 files changed

+142
-135
lines changed

app/globals.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ body {
5656
--sidebar-accent-foreground: 220.9 39.3% 11%;
5757
--sidebar-border: 220 13% 91%;
5858
--sidebar-ring: 262.1 83.3% 57.8%;
59+
--cursor-background: 0 0% 10.2%;
60+
--cursor-foreground: 0 0% 98%;
61+
--cursor-border: 0 0% 20%;
62+
--cursor-accent: 0 0% 16.5%;
5963
}
6064

6165
/* GitHub Dark theme for authenticated users */
@@ -129,6 +133,10 @@ body {
129133
--sidebar-accent-foreground: 210 20% 98%;
130134
--sidebar-border: 215 27.9% 16.9%;
131135
--sidebar-ring: 263.4 70% 50.4%;
136+
--cursor-background: 0 0% 10.2%;
137+
--cursor-foreground: 0 0% 98%;
138+
--cursor-border: 0 0% 20%;
139+
--cursor-accent: 0 0% 16.5%;
132140
}
133141

134142
/* GitHub Dark theme for authenticated users in dark mode */

app/page.tsx

Lines changed: 33 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import { Preview } from "@/components/preview"
1111
import { E2BToolsPanel } from "@/components/e2b-tools/E2BToolsPanel"
1212
import { CommandPalette } from "@/components/ui/command-palette"
1313
import { EditorCommandPalette } from "@/components/ui/editor-command-palette"
14-
import { ProjectDialog } from "@/components/ui/project-dialog"
1514
import { useProjectDialog } from "@/hooks/use-project-dialog"
1615
import { useAuth } from "@/contexts/AuthContext"
1716
import { type Message, toAISDKMessages, toMessageImage } from "@/lib/messages"
@@ -88,7 +87,7 @@ export default function Home() {
8887
"languageModel",
8988
modelsList.models[0] as LLMModelConfig
9089
)
91-
const [currentTab, setCurrentTab] = useState<"code" | "preview" | "editor">("code")
90+
const [currentTab, setCurrentTab] = useState<"preview" | "editor">("preview")
9291
const [isPreviewLoading, setIsPreviewLoading] = useState(false)
9392
const [errorMessage, setErrorMessage] = useState("")
9493
const [isRateLimited, setIsRateLimited] = useState(false)
@@ -99,6 +98,7 @@ export default function Home() {
9998
analysis: ProjectAnalysis | null
10099
}>({ files: [], analysis: null })
101100
const [isE2BToolsModalOpen, setIsE2BToolsModalOpen] = useState(false)
101+
const [isEditorCommandPaletteOpen, setEditorCommandPaletteOpen] = useState(false)
102102

103103
const handleToggleE2BToolsModal = () => {
104104
if (session && currentModel) { // Ensure user is authenticated and model is loaded
@@ -172,7 +172,7 @@ export default function Home() {
172172
}
173173

174174
setErrorMessage(parsedError.message)
175-
setCurrentTab("code")
175+
setCurrentTab("preview")
176176
}, []),
177177
})
178178

@@ -203,7 +203,7 @@ export default function Home() {
203203
setErrorMessage("")
204204
setFiles([])
205205
setProjectContext({ files: [], analysis: null })
206-
setCurrentTab("code")
206+
setCurrentTab("preview")
207207
}, [])
208208

209209
const handleUndo = useCallback(() => {
@@ -294,7 +294,7 @@ export default function Home() {
294294
setIsRateLimited(true)
295295
}
296296
setResult(undefined)
297-
setCurrentTab("code")
297+
setCurrentTab("preview")
298298
} finally {
299299
setIsPreviewLoading(false)
300300
}
@@ -372,6 +372,18 @@ export default function Home() {
372372
setHasMounted(true)
373373
}, [])
374374

375+
useEffect(() => {
376+
const down = (e: KeyboardEvent) => {
377+
if (e.key === "k" && (e.metaKey || e.ctrlKey)) {
378+
e.preventDefault()
379+
setEditorCommandPaletteOpen((open) => !open)
380+
}
381+
}
382+
383+
document.addEventListener("keydown", down)
384+
return () => document.removeEventListener("keydown", down)
385+
}, [])
386+
375387
const handleSubmitAuth = useCallback(async (
376388
e: FormEvent<HTMLFormElement>,
377389
projectFiles?: File[],
@@ -465,7 +477,7 @@ export default function Home() {
465477

466478
setChatInput("")
467479
setFiles([])
468-
setCurrentTab("code")
480+
setCurrentTab("preview")
469481
setErrorMessage("")
470482
setIsRateLimited(false)
471483

@@ -518,6 +530,15 @@ export default function Home() {
518530
setAuthDialog(true)
519531
}, [])
520532

533+
const fragmentFiles = fragment?.files?.map(file => {
534+
if (!file) return undefined
535+
return {
536+
name: file.file_name || file.file_path?.split('/').pop() || 'untitled',
537+
content: file.file_content || '',
538+
path: file.file_path || file.file_name || 'untitled'
539+
}
540+
}).filter((file): file is { name: string; content: string; path: string } => !!file && !!file.content && !file.content.includes('__pycache__'))
541+
521542
const showPreviewPanel = fragment && hasMounted;
522543

523544
let gridLayoutClass = "flex w-full";
@@ -573,7 +594,7 @@ export default function Home() {
573594
if (selectedFragment?.files && selectedFragment.files.length > 0) {
574595
setCurrentTab("preview");
575596
} else {
576-
setCurrentTab("code");
597+
setCurrentTab("preview");
577598
}
578599
}}
579600
/>
@@ -666,31 +687,7 @@ export default function Home() {
666687
</DialogContent>
667688
</Dialog>
668689
)}
669-
670-
{/* Floating Action Button */}
671-
<AnimatePresence>
672-
{session && hasMounted && (
673-
<motion.button
674-
onClick={openCreateDialog}
675-
className="fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full bg-blue-500 text-white shadow-lg hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"
676-
whileHover={{ scale: 1.05 }}
677-
whileTap={{ scale: 0.95 }}
678-
initial={{ opacity: 0, scale: 0, y: 20 }}
679-
animate={{ opacity: 1, scale: 1, y: 0 }}
680-
exit={{ opacity: 0, scale: 0, y: 20 }}
681-
transition={{
682-
type: "spring",
683-
damping: 25,
684-
stiffness: 300,
685-
duration: 0.3,
686-
}}
687-
title="Create New Project"
688-
>
689-
<FolderPlus className="h-6 w-6" />
690-
</motion.button>
691-
)}
692-
</AnimatePresence>
693-
690+
694691
{/* Command Palette */}
695692
<CommandPalette
696693
onCreateFragment={() => {
@@ -716,21 +713,10 @@ export default function Home() {
716713
/>
717714
)}
718715

719-
<EditorCommandPalette
720-
isOpen={false}
721-
onOpenChange={(open: boolean) => {
722-
// Implement the editor command palette logic here
723-
console.log("Editor command palette state changed:", open);
724-
}}
725-
files={[]}
726-
/>
727-
728-
<ProjectDialog
729-
open={isProjectDialogOpen}
730-
onOpenChange={closeProjectDialog}
731-
mode={projectDialogMode}
732-
project={editingProject}
733-
onSave={handleProjectSave}
716+
<EditorCommandPalette
717+
isOpen={isEditorCommandPaletteOpen}
718+
onOpenChange={setEditorCommandPaletteOpen}
719+
files={fragmentFiles || []}
734720
/>
735721
</div>
736722
)

components/code-view.tsx

Lines changed: 0 additions & 30 deletions
This file was deleted.

components/file-tree.tsx

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
"use client"
2+
3+
import React, { useState } from 'react';
4+
import { Folder, File, ChevronRight, ChevronDown } from 'lucide-react';
5+
6+
export interface FileTreeNode {
7+
name: string;
8+
type: 'file' | 'folder';
9+
children?: FileTreeNode[];
10+
}
11+
12+
interface FileTreeProps {
13+
files: FileTreeNode[];
14+
onFileSelect: (path: string) => void;
15+
}
16+
17+
const FileNode: React.FC<{ node: FileTreeNode; path: string; onFileSelect: (path: string) => void }> = ({ node, path, onFileSelect }) => {
18+
const [isOpen, setIsOpen] = useState(false);
19+
const currentPath = `${path}/${node.name}`;
20+
21+
const handleToggle = () => {
22+
if (node.type === 'folder') {
23+
setIsOpen(!isOpen);
24+
} else {
25+
onFileSelect(currentPath);
26+
}
27+
};
28+
29+
return (
30+
<div>
31+
<div
32+
className="flex items-center p-1 cursor-pointer hover:bg-cursor-accent rounded"
33+
onClick={handleToggle}
34+
>
35+
{node.type === 'folder' ? (
36+
<>
37+
{isOpen ? (
38+
<ChevronDown size={16} className="shrink-0" />
39+
) : (
40+
<ChevronRight size={16} className="shrink-0" />
41+
)}
42+
<Folder size={16} className="ml-2 shrink-0" />
43+
</>
44+
) : (
45+
<File size={16} className="ml-6 shrink-0" />
46+
)}
47+
<span className="ml-2">{node.name}</span>
48+
</div>
49+
{isOpen && node.children && (
50+
<div className="ml-4">
51+
{node.children.map((child, index) => (
52+
<FileNode key={index} node={child} path={currentPath} onFileSelect={onFileSelect} />
53+
))}
54+
</div>
55+
)}
56+
</div>
57+
);
58+
};
59+
60+
export const FileTree: React.FC<FileTreeProps> = ({ files, onFileSelect }) => {
61+
return (
62+
<div className="p-2 text-cursor-foreground bg-cursor h-full">
63+
{files.map((node, index) => (
64+
<FileNode key={index} node={node} path="" onFileSelect={onFileSelect} />
65+
))}
66+
</div>
67+
);
68+
};

components/fragment-code.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { CodeView } from './code-view'
21
import { Button } from './ui/button'
32
import { CopyButton } from './ui/copy-button'
43
import {
@@ -81,12 +80,6 @@ export function FragmentCode({
8180
</TooltipProvider>
8281
</div>
8382
</div>
84-
<div className="flex flex-col flex-1 overflow-x-auto">
85-
<CodeView
86-
code={currentFileContent || ''}
87-
lang={currentFile.split('.').pop() || ''}
88-
/>
89-
</div>
9083
</div>
9184
)
9285
}

components/live-code-editor.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/comp
88
import { Alert, AlertDescription } from '@/components/ui/alert'
99
import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'
1010
import { Input } from '@/components/ui/input'
11+
import './code-theme.css'
1112
import { Textarea } from '@/components/ui/textarea'
1213
import {
1314
Save,
@@ -47,6 +48,7 @@ import {
4748
PanelLeftOpen
4849
} from 'lucide-react'
4950
import { cn } from '@/lib/utils'
51+
import { fr } from 'zod/v4/locales'
5052

5153
interface FileContent {
5254
name: string
@@ -550,10 +552,10 @@ export function CursorLikeEditor({ files, sandboxId, onFileUpdate, className }:
550552
</Button>
551553
<h3 className="text-sm font-medium flex items-center gap-2">
552554
<Code2 className="w-4 h-4" />
553-
Cursor-like Editor
555+
Editor
554556
</h3>
555557
{hasUnsavedChanges && <Badge variant="secondary" className="text-xs">{modifiedFiles.length} unsaved</Badge>}
556-
{isGenerating && <Badge variant="outline" className="text-xs"><Loader2 className="w-3 h-3 animate-spin mr-1" />AI Generating...</Badge>}
558+
{isGenerating && <Badge variant="outline" className="text-xs"><Loader2 className="w-3 h-3 animate-spin mr-1" /></Badge>}
557559
</div>
558560

559561
<div className="flex items-center gap-2">
@@ -714,7 +716,6 @@ export function CursorLikeEditor({ files, sandboxId, onFileUpdate, className }:
714716

715717
<div className="flex items-center justify-between px-3 py-1 border-t bg-muted/20 text-xs text-muted-foreground">
716718
<div className="flex items-center gap-4">
717-
<span>Cursor-like Editor v1.1</span>
718719
{sandboxId && <span className="flex items-center gap-1"><Terminal className="w-3 h-3" />Sandbox: {sandboxId.slice(0, 8)}...</span>}
719720
<span className="flex items-center gap-1"><GitBranch className="w-3 h-3" />main</span>
720721
</div>

0 commit comments

Comments
 (0)