Upload folder using huggingface_hub
Browse files
client/src/components/Refinity.tsx
CHANGED
|
@@ -48,6 +48,8 @@ const Refinity: React.FC = () => {
|
|
| 48 |
const [compareDiffHtml, setCompareDiffHtml] = React.useState<string>('');
|
| 49 |
const [compareLoading, setCompareLoading] = React.useState<boolean>(false);
|
| 50 |
const [compareDownloadOpen, setCompareDownloadOpen] = React.useState<boolean>(false);
|
|
|
|
|
|
|
| 51 |
const [revDownloadOpen, setRevDownloadOpen] = React.useState<boolean>(false);
|
| 52 |
const [username] = React.useState<string>(() => {
|
| 53 |
try {
|
|
@@ -604,9 +606,9 @@ const Refinity: React.FC = () => {
|
|
| 604 |
finally { setCompareLoading(false); }
|
| 605 |
}} disabled={!compareA || !compareB || compareA===compareB || compareLoading} className="px-3 py-2 text-sm rounded-md border border-gray-300 bg-white disabled:opacity-50">{compareLoading ? 'Computing…' : 'Show Diff'}</button>
|
| 606 |
<div className="relative">
|
| 607 |
-
<button onClick={()=>setCompareDownloadOpen(v=>!v)} disabled={!compareA || !compareB || compareA===compareB} className="px-3 py-2 text-sm rounded-md border border-gray-300 bg-white">Download ▾</button>
|
| 608 |
-
{compareDownloadOpen && (
|
| 609 |
-
<div
|
| 610 |
<button onClick={async()=>{
|
| 611 |
setCompareDownloadOpen(false);
|
| 612 |
const a = taskVersions.find(v=>v.id===compareA);
|
|
@@ -624,7 +626,7 @@ const Refinity: React.FC = () => {
|
|
| 624 |
const link = document.createElement('a');
|
| 625 |
link.href = url; link.download = filename; document.body.appendChild(link); link.click(); link.remove(); window.URL.revokeObjectURL(url);
|
| 626 |
} catch {}
|
| 627 |
-
}} className="block w-full text-
|
| 628 |
<button onClick={async()=>{
|
| 629 |
setCompareDownloadOpen(false);
|
| 630 |
const a = taskVersions.find(v=>v.id===compareA);
|
|
@@ -642,8 +644,8 @@ const Refinity: React.FC = () => {
|
|
| 642 |
const link = document.createElement('a');
|
| 643 |
link.href = url; link.download = filename; document.body.appendChild(link); link.click(); link.remove(); window.URL.revokeObjectURL(url);
|
| 644 |
} catch {}
|
| 645 |
-
}} className="block w-full text-
|
| 646 |
-
</div>
|
| 647 |
)}
|
| 648 |
</div>
|
| 649 |
<button onClick={()=>{ setCompareUIOpen(false); setCompareA(''); setCompareB(''); }} className="px-3 py-2 text-sm rounded-md border border-gray-300 bg-white">Close</button>
|
|
|
|
| 48 |
const [compareDiffHtml, setCompareDiffHtml] = React.useState<string>('');
|
| 49 |
const [compareLoading, setCompareLoading] = React.useState<boolean>(false);
|
| 50 |
const [compareDownloadOpen, setCompareDownloadOpen] = React.useState<boolean>(false);
|
| 51 |
+
const [compareMenuPos, setCompareMenuPos] = React.useState<{ left: number; top: number } | null>(null);
|
| 52 |
+
const compareBtnRef = React.useRef<HTMLButtonElement | null>(null);
|
| 53 |
const [revDownloadOpen, setRevDownloadOpen] = React.useState<boolean>(false);
|
| 54 |
const [username] = React.useState<string>(() => {
|
| 55 |
try {
|
|
|
|
| 606 |
finally { setCompareLoading(false); }
|
| 607 |
}} disabled={!compareA || !compareB || compareA===compareB || compareLoading} className="px-3 py-2 text-sm rounded-md border border-gray-300 bg-white disabled:opacity-50">{compareLoading ? 'Computing…' : 'Show Diff'}</button>
|
| 608 |
<div className="relative">
|
| 609 |
+
<button ref={compareBtnRef} onClick={(e)=>{ e.preventDefault(); const r=(e.currentTarget as HTMLElement).getBoundingClientRect(); setCompareMenuPos({ left: r.left, top: r.bottom + 8 }); setCompareDownloadOpen(v=>!v); }} disabled={!compareA || !compareB || compareA===compareB} className="px-3 py-2 text-sm rounded-md border border-gray-300 bg-white">Download ▾</button>
|
| 610 |
+
{compareDownloadOpen && compareMenuPos && createPortal(
|
| 611 |
+
<div style={{ position: 'fixed', left: compareMenuPos.left, top: compareMenuPos.top, zIndex: 10000 }} className="w-44 rounded-md border border-gray-200 bg-white shadow-lg text-left">
|
| 612 |
<button onClick={async()=>{
|
| 613 |
setCompareDownloadOpen(false);
|
| 614 |
const a = taskVersions.find(v=>v.id===compareA);
|
|
|
|
| 626 |
const link = document.createElement('a');
|
| 627 |
link.href = url; link.download = filename; document.body.appendChild(link); link.click(); link.remove(); window.URL.revokeObjectURL(url);
|
| 628 |
} catch {}
|
| 629 |
+
}} className="block w-full text-left px-3 py-2 text-sm hover:bg-gray-50">Inline Changes</button>
|
| 630 |
<button onClick={async()=>{
|
| 631 |
setCompareDownloadOpen(false);
|
| 632 |
const a = taskVersions.find(v=>v.id===compareA);
|
|
|
|
| 644 |
const link = document.createElement('a');
|
| 645 |
link.href = url; link.download = filename; document.body.appendChild(link); link.click(); link.remove(); window.URL.revokeObjectURL(url);
|
| 646 |
} catch {}
|
| 647 |
+
}} className="block w-full text-left px-3 py-2 text-sm hover:bg-gray-50">Side Comments</button>
|
| 648 |
+
</div>, document.body
|
| 649 |
)}
|
| 650 |
</div>
|
| 651 |
<button onClick={()=>{ setCompareUIOpen(false); setCompareA(''); setCompareB(''); }} className="px-3 py-2 text-sm rounded-md border border-gray-300 bg-white">Close</button>
|