linguabot commited on
Commit
9db0d7c
·
verified ·
1 Parent(s): e7bf6f5

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. client/src/components/Refinity.tsx +23 -9
client/src/components/Refinity.tsx CHANGED
@@ -50,6 +50,7 @@ const Refinity: React.FC = () => {
50
  const [newTaskSource, setNewTaskSource] = React.useState<string>('');
51
  const addTaskFileRef = React.useRef<HTMLInputElement | null>(null);
52
  const [addingSourceUploading, setAddingSourceUploading] = React.useState<boolean>(false);
 
53
 
54
  const task = React.useMemo(() => tasks.find(t => t.id === selectedTaskId) || tasks[0], [tasks, selectedTaskId]);
55
  const taskVersions = React.useMemo(() => versions.filter(v => v.taskId === (task?.id || '')), [versions, task?.id]);
@@ -194,15 +195,28 @@ const Refinity: React.FC = () => {
194
  <div className="md:col-span-1">
195
  <label className="block text-sm text-gray-700 mb-1">Task</label>
196
  <div className="relative">
197
- <div className="absolute inset-0 rounded-2xl bg-gradient-to-r from-indigo-200/45 via-indigo-100/40 to-indigo-300/45" />
198
- <div className="relative rounded-2xl bg-white/10 backdrop-blur-md ring-1 ring-inset ring-white/30 shadow-[inset_0_0.5px_0_rgba(255,255,255,0.5),inset_0_-1px_1.5px_rgba(0,0,0,0.12)]">
199
- <div className="pointer-events-none absolute inset-0 rounded-2xl opacity-50 [background:linear-gradient(to_bottom,rgba(255,255,255,0.3),rgba(255,255,255,0)_28%),linear-gradient(to_right,rgba(255,255,255,0.28),rgba(255,255,255,0)_28%)]" />
200
- <div className="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-tr from-white/30 via-white/10 to-transparent opacity-45" />
201
- <select value={selectedTaskId} onChange={(e)=>setSelectedTaskId(e.target.value)} className="relative z-10 w-full px-4 py-2 pr-10 bg-transparent text-gray-900 rounded-2xl appearance-none focus:outline-none">
202
- {tasks.map(t => <option key={t.id} value={t.id}>{t.title}</option>)}
203
- </select>
204
- <div className="pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-700">▾</div>
205
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
206
  </div>
207
  </div>
208
  <div className="md:col-span-2">
 
50
  const [newTaskSource, setNewTaskSource] = React.useState<string>('');
51
  const addTaskFileRef = React.useRef<HTMLInputElement | null>(null);
52
  const [addingSourceUploading, setAddingSourceUploading] = React.useState<boolean>(false);
53
+ const [taskMenuOpen, setTaskMenuOpen] = React.useState<boolean>(false);
54
 
55
  const task = React.useMemo(() => tasks.find(t => t.id === selectedTaskId) || tasks[0], [tasks, selectedTaskId]);
56
  const taskVersions = React.useMemo(() => versions.filter(v => v.taskId === (task?.id || '')), [versions, task?.id]);
 
195
  <div className="md:col-span-1">
196
  <label className="block text-sm text-gray-700 mb-1">Task</label>
197
  <div className="relative">
198
+ <button type="button" onClick={()=>setTaskMenuOpen(o=>!o)} className="relative w-full text-left inline-flex items-center justify-between px-4 py-2 rounded-2xl ring-1 ring-inset ring-white/50 backdrop-blur-md bg-white/30">
199
+ <span className="truncate text-gray-900">{tasks.find(t=>t.id===selectedTaskId)?.title || 'Select a task'}</span>
200
+ <span className="ml-3 text-gray-700">▾</span>
201
+ </button>
202
+ {taskMenuOpen && (
203
+ <div className="absolute z-20 mt-2 w-full">
204
+ <div className="relative rounded-2xl bg-white/10 backdrop-blur-md ring-1 ring-inset ring-white/30 shadow-lg overflow-hidden">
205
+ <div className="pointer-events-none absolute inset-0 rounded-2xl opacity-50 [background:linear-gradient(to_bottom,rgba(255,255,255,0.3),rgba(255,255,255,0)_28%),linear-gradient(to_right,rgba(255,255,255,0.28),rgba(255,255,255,0)_28%)]" />
206
+ <div className="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-tr from-white/30 via-white/10 to-transparent opacity-45" />
207
+ <ul className="relative max-h-64 overflow-auto">
208
+ {tasks.map(t => (
209
+ <li key={t.id}>
210
+ <button type="button" onClick={()=>{ setSelectedTaskId(t.id); setTaskMenuOpen(false); }} className={`w-full text-left px-4 py-2 text-gray-900 hover:bg-white/30 ${selectedTaskId===t.id ? 'bg-indigo-600/20' : ''}`}>{t.title}</button>
211
+ </li>
212
+ ))}
213
+ {tasks.length===0 && (
214
+ <li className="px-4 py-3 text-sm text-gray-600">No tasks yet</li>
215
+ )}
216
+ </ul>
217
+ </div>
218
+ </div>
219
+ )}
220
  </div>
221
  </div>
222
  <div className="md:col-span-2">