Spaces:
Sleeping
Sleeping
| import React from "react"; | |
| import { | |
| Dialog, | |
| DialogContent, | |
| DialogDescription, | |
| DialogHeader, | |
| DialogTitle, | |
| } from "@/components/ui/dialog"; | |
| import { Terminal } from "lucide-react"; | |
| import { useApi } from "@/contexts/ApiContext"; | |
| interface UsageInstructionsModalProps { | |
| open: boolean; | |
| onOpenChange: (open: boolean) => void; | |
| } | |
| const UsageInstructionsModal: React.FC<UsageInstructionsModalProps> = ({ | |
| open, | |
| onOpenChange, | |
| }) => { | |
| const { baseUrl } = useApi(); | |
| return ( | |
| <Dialog open={open} onOpenChange={onOpenChange}> | |
| <DialogContent className="bg-gray-900 border-gray-700 text-gray-300 sm:max-w-xl"> | |
| <DialogHeader className="text-center sm:text-center"> | |
| <DialogTitle className="text-white flex items-center justify-center gap-2 text-xl"> | |
| <Terminal className="w-6 h-6" /> | |
| Getting Started with LeLab | |
| </DialogTitle> | |
| <DialogDescription> | |
| Quick setup guide to get LeLab running on your machine. | |
| </DialogDescription> | |
| </DialogHeader> | |
| <div className="space-y-6 text-sm py-4"> | |
| <div className="space-y-4"> | |
| <h4 className="font-semibold text-gray-100 text-lg mb-3 border-b border-gray-700 pb-2"> | |
| 1. Installation | |
| </h4> | |
| <p className="text-gray-300 leading-relaxed"> | |
| Install LeLab directly from GitHub (virtual environment | |
| recommended): | |
| </p> | |
| <pre className="bg-gray-800 p-4 rounded-lg text-xs overflow-x-auto text-left border border-gray-700"> | |
| <code className="text-green-400"> | |
| pip install git+https://github.com/nicolas-rabault/leLab | |
| </code> | |
| </pre> | |
| <p className="text-gray-400 text-xs mt-2"> | |
| 💡 <strong>Tip:</strong> Create a virtual environment first with{" "} | |
| <code className="bg-gray-800 px-1 rounded text-xs"> | |
| python -m venv .venv | |
| </code> | |
| </p> | |
| </div> | |
| <div className="space-y-4"> | |
| <h4 className="font-semibold text-gray-100 text-lg mb-3 border-b border-gray-700 pb-2"> | |
| 2. Running LeLab | |
| </h4> | |
| <p className="text-gray-300 leading-relaxed"> | |
| After installation, start LeLab with: | |
| </p> | |
| <pre className="bg-gray-800 p-4 rounded-lg text-xs overflow-x-auto text-left border border-gray-700"> | |
| <code className="text-blue-400">lelab</code> | |
| </pre> | |
| <p className="text-gray-300 leading-relaxed"> | |
| This will start the FastAPI backend server on{" "} | |
| <a | |
| href={baseUrl} | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-blue-400 hover:underline font-medium" | |
| > | |
| {baseUrl} | |
| </a> | |
| </p> | |
| </div> | |
| <div className="space-y-4"> | |
| <h4 className="font-semibold text-gray-100 text-lg mb-3 border-b border-gray-700 pb-2"> | |
| 3. Additional Commands | |
| </h4> | |
| <div className="space-y-3"> | |
| <div> | |
| <code className="bg-gray-800 px-2 py-1 rounded font-mono text-sm text-yellow-400"> | |
| lelab-fullstack | |
| </code> | |
| <p className="text-gray-400 text-xs mt-1 ml-2"> | |
| Starts both backend and frontend development servers | |
| </p> | |
| </div> | |
| <div> | |
| <code className="bg-gray-800 px-2 py-1 rounded font-mono text-sm text-purple-400"> | |
| lelab-frontend | |
| </code> | |
| <p className="text-gray-400 text-xs mt-1 ml-2"> | |
| Starts only the frontend development server | |
| </p> | |
| </div> | |
| </div> | |
| </div> | |
| <div className="pt-4 border-t border-gray-700"> | |
| <p className="text-gray-400 text-xs text-center"> | |
| For detailed documentation, visit the{" "} | |
| <a | |
| href="https://github.com/nicolas-rabault/leLab" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-blue-400 hover:underline font-medium" | |
| > | |
| LeLab GitHub repository | |
| </a> | |
| </p> | |
| </div> | |
| </div> | |
| </DialogContent> | |
| </Dialog> | |
| ); | |
| }; | |
| export default UsageInstructionsModal; | |