Skip to content

Commit cdfe3e1

Browse files
sanbox fixes
1 parent d536327 commit cdfe3e1

File tree

19 files changed

+2397
-3062
lines changed

19 files changed

+2397
-3062
lines changed

app/api/sandbox/route.ts

Lines changed: 106 additions & 342 deletions
Large diffs are not rendered by default.

app/page.tsx

Lines changed: 45 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// File: app/page.tsx
21
"use client"
32

43
import React from "react"
@@ -526,45 +525,55 @@ export default function Home() {
526525

527526
{/* Chat Input - Fixed at bottom */}
528527
<div className="flex-shrink-0 border-t bg-background">
529-
<EnhancedChatInput
530-
input={chatInput}
531-
handleInputChange={handleSaveInputChange}
532-
handleSubmit={handleSubmitAuth}
533-
isLoading={isSubmitting}
534-
isErrored={error !== undefined}
535-
errorMessage={errorMessage}
536-
isRateLimited={isRateLimited}
537-
retry={retry}
538-
stop={stop}
539-
isMultiModal={currentModel?.multiModal || false}
540-
files={files}
541-
handleFileChange={handleFileChange}
542-
>
543-
<ChatPicker
544-
templates={templates}
545-
selectedTemplate={selectedTemplate}
546-
onSelectedTemplateChange={(template) => {
547-
if (template !== "auto") {
548-
setSelectedTemplate(template)
549-
}
550-
}}
551-
models={availableModels}
552-
languageModel={languageModel}
553-
onLanguageModelChange={handleLanguageModelChange}
554-
hasMounted={hasMounted}
555-
/>
556-
<ChatSettings
557-
apiKeyConfigurable={!process.env.NEXT_PUBLIC_NO_API_KEY_INPUT}
558-
baseURLConfigurable={!process.env.NEXT_PUBLIC_NO_BASE_URL_INPUT}
559-
languageModel={languageModel}
560-
onLanguageModelChange={handleLanguageModelChange}
561-
/>
562-
</EnhancedChatInput>
528+
{hasMounted ? (
529+
<EnhancedChatInput
530+
input={chatInput}
531+
handleInputChange={handleSaveInputChange}
532+
handleSubmit={handleSubmitAuth}
533+
isLoading={isSubmitting}
534+
isErrored={error !== undefined}
535+
errorMessage={errorMessage}
536+
isRateLimited={isRateLimited}
537+
retry={retry}
538+
stop={stop}
539+
isMultiModal={currentModel?.multiModal || false}
540+
files={files}
541+
handleFileChange={handleFileChange}
542+
>
543+
{/* ChatPicker is already using hasMounted internally or via its props */}
544+
<ChatPicker
545+
templates={templates}
546+
selectedTemplate={selectedTemplate}
547+
onSelectedTemplateChange={(template) => {
548+
if (template !== "auto") {
549+
setSelectedTemplate(template)
550+
}
551+
}}
552+
models={availableModels}
553+
languageModel={languageModel}
554+
onLanguageModelChange={handleLanguageModelChange}
555+
hasMounted={hasMounted}
556+
/>
557+
<ChatSettings
558+
apiKeyConfigurable={!process.env.NEXT_PUBLIC_NO_API_KEY_INPUT}
559+
baseURLConfigurable={!process.env.NEXT_PUBLIC_NO_BASE_URL_INPUT}
560+
languageModel={languageModel}
561+
onLanguageModelChange={handleLanguageModelChange}
562+
/>
563+
</EnhancedChatInput>
564+
) : (
565+
<div className="p-4 space-y-3">
566+
<div className="h-10 bg-muted rounded-lg animate-pulse" />
567+
<div className="h-20 bg-muted rounded-2xl animate-pulse" />
568+
<div className="h-10 bg-muted rounded-lg animate-pulse" />
569+
<div className="h-4 w-1/2 mx-auto bg-muted rounded animate-pulse mt-1" />
570+
</div>
571+
)}
563572
</div>
564573
</div>
565574

566575
{/* Preview Panel */}
567-
{fragment && (
576+
{fragment && hasMounted && ( // Also ensure preview panel respects hasMounted if its content could cause issues
568577
<div className="hidden md:flex md:flex-col border-l border-border">
569578
<Preview
570579
teamID={userTeam?.id}

0 commit comments

Comments
 (0)