Buckets:
| import { Card, CardContent, CardDescription, CardHeader, CardTitle } from './ui/card'; | |
| import { ToolOption } from './ToolOption'; | |
| interface ToolSettings { | |
| enabled: boolean; | |
| } | |
| interface ToolsCardProps { | |
| title: string; | |
| description?: string; | |
| tools: { | |
| [toolId: string]: { | |
| id: string; | |
| label: string; | |
| description: string; | |
| settings: ToolSettings; | |
| }; | |
| }; | |
| onToolToggle: (toolId: string, checked: boolean) => void; | |
| } | |
| export function ToolsCard({ title, description, tools, onToolToggle }: ToolsCardProps) { | |
| return ( | |
| <Card className="w-full"> | |
| <CardHeader> | |
| <CardTitle>{title}</CardTitle> | |
| <CardDescription>{description}</CardDescription> | |
| </CardHeader> | |
| <CardContent> | |
| <div className="grid grid-cols-2 gap-6 mb-6"> | |
| {Object.entries(tools).map(([toolId, tool]) => ( | |
| <ToolOption | |
| key={toolId} | |
| id={tool.id} | |
| label={tool.label} | |
| description={tool.description} | |
| isEnabled={tool.settings.enabled} | |
| onToggle={(checked) => { | |
| onToolToggle(tool.id, checked); | |
| }} | |
| /> | |
| ))} | |
| </div> | |
| </CardContent> | |
| </Card> | |
| ); | |
| } | |
Xet Storage Details
- Size:
- 1.11 kB
- Xet hash:
- 3ce7ee481b47dc3208e68fd359b2ccdddf320a3bebcaf828d7f28345235a33c1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.