Merge pull request #143 from nogataka/fix/chat-screen-layout-bug

Fix: Chat Screen Layout Broken in New Project Creation Flow
This commit is contained in:
Leon van Zyl
2026-02-01 10:12:45 +02:00
committed by GitHub
2 changed files with 10 additions and 9 deletions

View File

@@ -10,6 +10,7 @@
*/ */
import { useState } from 'react' import { useState } from 'react'
import { createPortal } from 'react-dom'
import { Bot, FileEdit, ArrowRight, ArrowLeft, Loader2, CheckCircle2, Folder } from 'lucide-react' import { Bot, FileEdit, ArrowRight, ArrowLeft, Loader2, CheckCircle2, Folder } from 'lucide-react'
import { useCreateProject } from '../hooks/useProjects' import { useCreateProject } from '../hooks/useProjects'
import { SpecCreationChat } from './SpecCreationChat' import { SpecCreationChat } from './SpecCreationChat'
@@ -200,10 +201,10 @@ export function NewProjectModal({
} }
} }
// Full-screen chat view // Full-screen chat view - use portal to render at body level
if (step === 'chat') { if (step === 'chat') {
return ( return createPortal(
<div className="fixed inset-0 z-50 bg-background"> <div className="fixed inset-0 z-50 bg-background flex flex-col">
<SpecCreationChat <SpecCreationChat
projectName={projectName.trim()} projectName={projectName.trim()}
onComplete={handleSpecComplete} onComplete={handleSpecComplete}
@@ -213,7 +214,8 @@ export function NewProjectModal({
initializerError={initializerError} initializerError={initializerError}
onRetryInitializer={handleRetryInitializer} onRetryInitializer={handleRetryInitializer}
/> />
</div> </div>,
document.body
) )
} }

View File

@@ -228,7 +228,7 @@ export function SpecCreationChat({
} }
return ( return (
<div className="flex flex-col h-full bg-background"> <div className="flex flex-col h-screen bg-background">
{/* Header */} {/* Header */}
<div className="flex items-center justify-between p-4 border-b-2 border-border bg-card"> <div className="flex items-center justify-between p-4 border-b-2 border-border bg-card">
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
@@ -303,7 +303,7 @@ export function SpecCreationChat({
)} )}
{/* Messages area */} {/* Messages area */}
<div className="flex-1 overflow-y-auto py-4"> <div className="flex-1 overflow-y-auto py-4 min-h-0">
{messages.length === 0 && !isLoading && ( {messages.length === 0 && !isLoading && (
<div className="flex flex-col items-center justify-center h-full text-center p-8"> <div className="flex flex-col items-center justify-center h-full text-center p-8">
<Card className="p-6 max-w-md"> <Card className="p-6 max-w-md">
@@ -451,9 +451,8 @@ export function SpecCreationChat({
{/* Completion footer */} {/* Completion footer */}
{isComplete && ( {isComplete && (
<div className={`p-4 border-t-2 border-border ${ <div className={`p-4 border-t-2 border-border ${initializerStatus === 'error' ? 'bg-destructive' : 'bg-green-500'
initializerStatus === 'error' ? 'bg-destructive' : 'bg-green-500' }`}>
}`}>
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
{initializerStatus === 'starting' ? ( {initializerStatus === 'starting' ? (