ghostwriter copy

This commit is contained in:
DaKheera47 2026-02-15 20:57:48 +00:00
parent 07b3c23492
commit 239e6955ba
2 changed files with 34 additions and 20 deletions

View File

@ -26,36 +26,37 @@ export const GhostwriterDrawer: React.FC<GhostwriterDrawerProps> = ({
const [open, setOpen] = useState(false);
return (
<Sheet open={open} onOpenChange={setOpen}>
<Sheet
open={open}
onOpenChange={setOpen}
>
<SheetTrigger asChild>
<Button
size="sm"
variant="outline"
size='sm'
variant='outline'
className={cn("h-8 gap-1.5 text-xs", triggerClassName)}
disabled={!job}
>
<PanelRightOpen className="h-3.5 w-3.5" />
<PanelRightOpen className='h-3.5 w-3.5' />
Ghostwriter
</Button>
</SheetTrigger>
<SheetContent
side="right"
className="flex w-full flex-col p-0 sm:max-w-none lg:w-[50vw] xl:w-[40vw] 2xl:w-[30vw]"
side='right'
className='flex w-full flex-col p-0 sm:max-w-none lg:w-[50vw] xl:w-[40vw] 2xl:w-[30vw]'
>
<div className="border-b border-border/50 p-4 ">
<SheetHeader className="space-y-2">
<div className='border-b border-border/50 p-4'>
<SheetHeader>
<SheetTitle>Ghostwriter</SheetTitle>
<SheetDescription>
The Ghostwriter will use the context of this job and your resume,
along with your writing style to help you craft the perfect
message.
{job && `${job.title} at ${job.employer}.`}
</SheetDescription>
</SheetHeader>
</div>
{job && (
<div className="flex min-h-0 flex-1 p-4 pt-0">
<div className='flex min-h-0 flex-1 p-4 pt-0'>
<GhostwriterPanel job={job} />
</div>
)}

View File

@ -236,19 +236,32 @@ export const GhostwriterPanel: React.FC<GhostwriterPanelProps> = ({ job }) => {
}, [isStreaming, job.id, loadMessages, messages, onStreamEvent]);
return (
<div className="flex h-full min-h-0 flex-1 flex-col">
<div className='flex h-full min-h-0 flex-1 flex-col'>
<div
ref={messageListRef}
className="min-h-0 flex-1 overflow-y-auto border-b border-border/50 pb-3 pr-1"
className='min-h-0 flex-1 overflow-y-auto border-b border-border/50 pb-3 pr-1'
>
<MessageList
messages={messages}
isStreaming={isStreaming}
streamingMessageId={streamingMessageId}
/>
{messages.length === 0 && !isLoading ? (
<div className='flex h-full min-h-[260px] justify-center px-3 flex-col text-left'>
<h4 className='font-medium'>
{job.title} at {job.employer}
</h4>
<p className='mt-2 text-sm leading-relaxed text-muted-foreground'>
Ghostwriter already has this job description, your resume and your writing style preferences. Ask for
tailored response drafts, or concise role-fit
talking points.
</p>
</div>
) : (
<MessageList
messages={messages}
isStreaming={isStreaming}
streamingMessageId={streamingMessageId}
/>
)}
</div>
<div className="mt-4">
<div className='mt-4'>
<Composer
disabled={isLoading || isStreaming}
isStreaming={isStreaming}