linguabot commited on
Commit
3664d2c
·
verified ·
1 Parent(s): 71f7e93

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. client/src/components/Refinity.tsx +8 -6
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 className="absolute right-0 mt-1 min-w-36 max-w-40 rounded-md border border-gray-200 bg-white shadow-lg z-20 text-right">
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-right px-2.5 py-2 text-sm hover:bg-gray-50">Inline Changes</button>
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-right px-2.5 py-2 text-sm hover:bg-gray-50">Side Comments</button>
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>