Sample Gallery
+Samples Gallery
+ Generation Prompts +
+- Step {batch} + Steps {batch}
{/* Scrollable container for samples */}- {sample.url.split('__')[1]} + {sample.url.split('__')[1].split(".")[0]}
diff --git a/frontend/src/app/samples/page.tsx b/frontend/src/app/samples/page.tsx index ad7acf5..db34f24 100644 --- a/frontend/src/app/samples/page.tsx +++ b/frontend/src/app/samples/page.tsx @@ -2,9 +2,10 @@ "use client" import {useSamples} from '@/contexts/SamplesContext' -import Image from 'next/image' import Link from "next/link" import {useMemo} from 'react' +import {useTraining} from "@/contexts/TrainingContext"; +import {SampleCard} from "@/components/SampleCard"; // Helper function to parse sample information const parseSampleInfo = (filename: string) => { @@ -18,7 +19,11 @@ const parseSampleInfo = (filename: string) => { } export default function SamplesPage() { - const {samples, isLoading, error} = useSamples() + const {samples, isLoading: samplesLoading, error: samplesError} = useSamples() + const {config, isLoading: configLoading} = useTraining() + + // Get prompts from config + const prompts = config?.config?.process[0]?.sample?.prompts || [] // Group samples by batch number using a memoized calculation const groupedSamples = useMemo(() => { @@ -45,25 +50,26 @@ export default function SamplesPage() { return new Map([...groups].sort((a, b) => b[0] - a[0])) }, [samples]) - // Handle loading and error states with appropriate styling - if (isLoading) return ( + // Handle loading and error states + if (samplesLoading || configLoading) return (
- {sample.url.split('__')[1]} + {sample.url.split('__')[1].split(".")[0]}