hooker-dev commited on
Commit
6dec200
·
verified ·
1 Parent(s): 5bbf653

Upload components/ImageOutput.jsx with huggingface_hub

Browse files
Files changed (1) hide show
  1. components/ImageOutput.jsx +48 -0
components/ImageOutput.jsx ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export default function ImageOutput({ image, loading, usedSeed }) {
2
+ return (
3
+ <div className="space-y-4">
4
+ <div className="bg-white rounded-xl shadow-md p-6">
5
+ <label className="block text-sm font-semibold text-slate-700 mb-4">
6
+ Generated Image
7
+ </label>
8
+ <div className="relative aspect-square bg-slate-100 rounded-lg overflow-hidden">
9
+ {loading ? (
10
+ <div className="absolute inset-0 flex items-center justify-center">
11
+ <div className="text-center">
12
+ <svg className="animate-spin h-12 w-12 text-primary-500 mx-auto mb-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
13
+ <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
14
+ <path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
15
+ </svg>
16
+ <p className="text-slate-600">Generating your image...</p>
17
+ </div>
18
+ </div>
19
+ ) : image ? (
20
+ <img
21
+ src={image}
22
+ alt="Generated"
23
+ className="w-full h-full object-contain"
24
+ />
25
+ ) : (
26
+ <div className="absolute inset-0 flex items-center justify-center text-slate-400">
27
+ <p>Your generated image will appear here</p>
28
+ </div>
29
+ )}
30
+ </div>
31
+ </div>
32
+
33
+ {usedSeed && (
34
+ <div className="bg-white rounded-xl shadow-md p-4">
35
+ <label className="block text-sm font-medium text-slate-700 mb-2">
36
+ 🎲 Seed Used
37
+ </label>
38
+ <input
39
+ type="text"
40
+ value={usedSeed}
41
+ readOnly
42
+ className="w-full px-4 py-2 bg-slate-50 border border-slate-300 rounded-lg text-slate-700"
43
+ />
44
+ </div>
45
+ )}
46
+ </div>
47
+ );
48
+ }