File size: 1,829 Bytes
fc9bd9f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | import React from "react";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { useInstallExtra } from "@/hooks/useInstallExtra";
import {
InstallProgress,
InstallTitleIcon,
RestartInstructions,
installTitle,
} from "./InstallProgress";
interface Props {
installHint: string;
}
const TrainingExtraGate: React.FC<Props> = ({ installHint }) => {
const install = useInstallExtra("system/training-extra");
return (
<div className="max-w-3xl mx-auto">
<Card className="bg-slate-800/50 border-slate-700 rounded-xl">
<CardHeader>
<CardTitle className="flex items-center gap-3 text-white">
<InstallTitleIcon state={install.state} />
{installTitle(install.state, "Training Extra Not Installed")}
</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<InstallProgress
state={install.state}
error={install.error}
logs={install.logs}
logBoxRef={install.logBoxRef}
onInstall={install.handleInstall}
onRetry={install.handleRetry}
installHint={installHint}
packageName="accelerate"
idleTitle="Training Extra Not Installed"
idleDescription={
<>
Training requires the{" "}
<code className="px-1 py-0.5 rounded bg-slate-900 text-sky-300">
accelerate
</code>{" "}
package, which isn't installed in this environment. Install it
to enable the Training page.
</>
}
doneDescription={<RestartInstructions purpose="training" />}
/>
</CardContent>
</Card>
</div>
);
};
export default TrainingExtraGate;
|