| import React from 'react'; | |
| import { Card, CardHeader, CardContent, CardTitle } from '../ui/card'; | |
| import { Tabs, TabsContent, TabsList, TabsTrigger } from '../ui/tabs'; | |
| const TwoColumnLayout = ({children, tabs}) => { | |
| const left = React.Children.toArray(children)[0]; | |
| const right = React.Children.toArray(children).slice(1); | |
| return ( | |
| <div className="h-screen bg-gray-50"> | |
| <div className="mx-auto p-2 h-full max-w-[1800px]"> | |
| <div className="flex flex-col md:flex-row gap-4 h-full"> | |
| {/* Left Column */} | |
| <div className="w-full md:w-[37%] h-full"> | |
| <Card className="flex flex-col h-full"> | |
| <CardHeader className="pb-2 shrink-0"> | |
| <CardTitle>Messages</CardTitle> | |
| </CardHeader> | |
| <CardContent className="flex-1 min-h-0"> | |
| <div className="h-full"> | |
| {left} | |
| </div> | |
| </CardContent> | |
| </Card> | |
| </div> | |
| {/* Right Column */} | |
| <div className="w-full md:w-[62%] h-full"> | |
| <Card className="flex flex-col h-full"> | |
| <CardContent className="flex flex-col h-full p-0"> | |
| <Tabs defaultValue={tabs[0]} className="flex flex-col h-full"> | |
| <TabsList className={`grid w-full grid-cols-3 shrink-0`}> | |
| {tabs.map(t => ( | |
| <TabsTrigger key={t} value={t}>{t}</TabsTrigger> | |
| ))} | |
| </TabsList> | |
| {tabs.map((tab, index) => ( | |
| <TabsContent | |
| key={tab} | |
| value={tab} | |
| className="flex-1 overflow-auto min-h-0 p-6" | |
| > | |
| <div className="h-full flex flex-col"> | |
| <div className="flex-1 overflow-auto"> | |
| {right[index]} | |
| </div> | |
| </div> | |
| </TabsContent> | |
| ))} | |
| </Tabs> | |
| </CardContent> | |
| </Card> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| ); | |
| }; | |
| export default TwoColumnLayout; |