linguabot commited on
Commit
2b8386a
·
verified ·
1 Parent(s): 5feb47c

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. client/src/components/Refinity.tsx +15 -7
client/src/components/Refinity.tsx CHANGED
@@ -125,6 +125,7 @@ const Refinity: React.FC = () => {
125
  const newVersion: Version = { id: saved._id, taskId: saved.taskId, originalAuthor: saved.originalAuthor, revisedBy: saved.revisedBy, versionNumber: saved.versionNumber, content: saved.content, parentVersionId: saved.parentVersionId };
126
  setVersions(prev => [...prev, newVersion]);
127
  setCurrentVersionId(newVersion.id);
 
128
  setStage('flow');
129
  } finally {
130
  setUploading(false);
@@ -185,6 +186,7 @@ const Refinity: React.FC = () => {
185
  setVersions(prev => [...prev, newVersion]);
186
  setCurrentVersionId(newVersion.id);
187
  setPastedTranslation('');
 
188
  setStage('flow');
189
  } catch {}
190
  };
@@ -221,6 +223,7 @@ const Refinity: React.FC = () => {
221
  };
222
  setVersions(prev => [...prev, v]);
223
  setCurrentVersionId(v.id);
 
224
  setStage('flow');
225
  } catch {
226
  // no-op; keep user in editor if needed
@@ -387,13 +390,13 @@ const Refinity: React.FC = () => {
387
  const offset = idx - focusedIndex;
388
  const abs = Math.abs(offset);
389
  const isCenter = abs === 0;
390
- const translateX = offset * 260; // spacing between cards
391
- const rotateY = -offset * 45; // angle for side cards
392
- const translateZ = -abs * 140; // push side cards back a bit
393
- const scale = isCenter ? 1.08 : 0.9;
394
  const opacity = isCenter ? 1 : Math.max(0.6, 1 - abs * 0.15);
395
  const zIndex = 100 - abs;
396
- const snippet = (v.content || '').slice(0, 140) + ((v.content || '').length > 140 ? '…' : '');
397
  return (
398
  <div
399
  key={v.id}
@@ -403,9 +406,9 @@ const Refinity: React.FC = () => {
403
  opacity,
404
  zIndex,
405
  }}
406
- onClick={() => { if (!isCenter) setFlowIndex(idx); }}
407
  >
408
- <div className="relative w-[520px] rounded-xl p-5 bg-white/10 backdrop-blur-md ring-1 ring-inset ring-white/30 shadow-[0_20px_40px_rgba(0,0,0,0.15),inset_0_0.5px_0_rgba(255,255,255,0.5),inset_0_-1px_1.5px_rgba(0,0,0,0.12)]">
409
  <div className="text-gray-800 text-sm mb-2">Original: {v.originalAuthor}</div>
410
  <div className="text-gray-600 text-xs mb-3">Revised by: {v.revisedBy ? `${v.revisedBy} (v${v.versionNumber})` : `— (v${v.versionNumber})`}</div>
411
  <div className="text-gray-900 whitespace-pre-wrap break-words min-h-[100px]">{snippet}</div>
@@ -429,6 +432,11 @@ const Refinity: React.FC = () => {
429
  <button onClick={()=>{ setPreviewVersionId(v.id); setShowPreviewDiff(true); setStage('preview'); }} className="relative overflow-hidden inline-flex items-center justify-center gap-2 px-3 py-2 text-sm font-medium rounded-2xl text-black ring-1 ring-inset ring-white/50 backdrop-blur-md bg-white/30 active:translate-y-0.5 transition-all duration-200">Compare</button>
430
  </div>
431
  )}
 
 
 
 
 
432
  </div>
433
  </div>
434
  );
 
125
  const newVersion: Version = { id: saved._id, taskId: saved.taskId, originalAuthor: saved.originalAuthor, revisedBy: saved.revisedBy, versionNumber: saved.versionNumber, content: saved.content, parentVersionId: saved.parentVersionId };
126
  setVersions(prev => [...prev, newVersion]);
127
  setCurrentVersionId(newVersion.id);
128
+ setCurrentVersionId(null);
129
  setStage('flow');
130
  } finally {
131
  setUploading(false);
 
186
  setVersions(prev => [...prev, newVersion]);
187
  setCurrentVersionId(newVersion.id);
188
  setPastedTranslation('');
189
+ setCurrentVersionId(null);
190
  setStage('flow');
191
  } catch {}
192
  };
 
223
  };
224
  setVersions(prev => [...prev, v]);
225
  setCurrentVersionId(v.id);
226
+ setCurrentVersionId(null);
227
  setStage('flow');
228
  } catch {
229
  // no-op; keep user in editor if needed
 
390
  const offset = idx - focusedIndex;
391
  const abs = Math.abs(offset);
392
  const isCenter = abs === 0;
393
+ const translateX = offset * 300; // spacing between cards (wider)
394
+ const rotateY = -offset * 35; // gentler angle
395
+ const translateZ = -abs * 120; // less depth to avoid squish
396
+ const scale = isCenter ? 1.02 : 1.0; // minimal size change
397
  const opacity = isCenter ? 1 : Math.max(0.6, 1 - abs * 0.15);
398
  const zIndex = 100 - abs;
399
+ const snippet = (v.content || '').slice(0, 180) + ((v.content || '').length > 180 ? '…' : '');
400
  return (
401
  <div
402
  key={v.id}
 
406
  opacity,
407
  zIndex,
408
  }}
409
+ onClick={() => { if (!isCenter) setFlowIndex(idx); else setPreviewVersionId(v.id); }}
410
  >
411
+ <div className="relative w-[520px] rounded-xl p-5 bg-white/10 backdrop-blur-md ring-1 ring-inset ring-white/30 shadow-[0_20px_40px_rgba(0,0,0,0.15),inset_0_0.5px_0_rgba(255,255,255,0.5),inset_0_-1px_1.5px_rgba(0,0,0,0.12)] text-base">
412
  <div className="text-gray-800 text-sm mb-2">Original: {v.originalAuthor}</div>
413
  <div className="text-gray-600 text-xs mb-3">Revised by: {v.revisedBy ? `${v.revisedBy} (v${v.versionNumber})` : `— (v${v.versionNumber})`}</div>
414
  <div className="text-gray-900 whitespace-pre-wrap break-words min-h-[100px]">{snippet}</div>
 
432
  <button onClick={()=>{ setPreviewVersionId(v.id); setShowPreviewDiff(true); setStage('preview'); }} className="relative overflow-hidden inline-flex items-center justify-center gap-2 px-3 py-2 text-sm font-medium rounded-2xl text-black ring-1 ring-inset ring-white/50 backdrop-blur-md bg-white/30 active:translate-y-0.5 transition-all duration-200">Compare</button>
433
  </div>
434
  )}
435
+ {!isCenter && (
436
+ <div className="mt-4 text-center">
437
+ <button onClick={()=> setFlowIndex(idx)} className="text-sm text-indigo-700 hover:underline">Center</button>
438
+ </div>
439
+ )}
440
  </div>
441
  </div>
442
  );