linguabot commited on
Commit
4b427a2
·
verified ·
1 Parent(s): a39dba8

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. client/src/pages/TutorialTasks.tsx +33 -9
client/src/pages/TutorialTasks.tsx CHANGED
@@ -568,15 +568,29 @@ const TutorialTasks: React.FC = () => {
568
  const [addingTask, setAddingTask] = useState<boolean>(false);
569
  const [addingImage, setAddingImage] = useState<boolean>(false);
570
  const [addingRevision, setAddingRevision] = useState<boolean>(false);
571
- const [revisionAdded, setRevisionAdded] = useState<boolean>(() => {
572
- const saved = localStorage.getItem(`tutorial_revision_added_week_${selectedWeek}`);
573
- return saved === 'true';
574
- });
575
 
576
- // Update revisionAdded state when week changes
 
577
  React.useEffect(() => {
578
- const saved = localStorage.getItem(`tutorial_revision_added_week_${selectedWeek}`);
579
- setRevisionAdded(saved === 'true');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
580
  }, [selectedWeek]);
581
  const [editForm, setEditForm] = useState<{
582
  content: string;
@@ -1423,12 +1437,22 @@ const TutorialTasks: React.FC = () => {
1423
  const addRevision = () => {
1424
  setRevisionAdded(true);
1425
  setAddingRevision(false);
1426
- localStorage.setItem(`tutorial_revision_added_week_${selectedWeek}`, 'true');
 
 
 
 
 
1427
  };
1428
 
1429
  const removeRevision = () => {
1430
  setRevisionAdded(false);
1431
- localStorage.removeItem(`tutorial_revision_added_week_${selectedWeek}`);
 
 
 
 
 
1432
  };
1433
 
1434
 
 
568
  const [addingTask, setAddingTask] = useState<boolean>(false);
569
  const [addingImage, setAddingImage] = useState<boolean>(false);
570
  const [addingRevision, setAddingRevision] = useState<boolean>(false);
571
+ const [revisionAdded, setRevisionAdded] = useState<boolean>(false);
 
 
 
572
 
573
+ // Initialize and update revisionAdded state from localStorage (Safari-compatible)
574
+ // Use useEffect instead of useState initializer for better Safari compatibility
575
  React.useEffect(() => {
576
+ const checkRevisionState = () => {
577
+ try {
578
+ const saved = localStorage.getItem(`tutorial_revision_added_week_${selectedWeek}`);
579
+ const isAdded = saved === 'true';
580
+ setRevisionAdded(isAdded);
581
+ } catch (e) {
582
+ // Safari might block localStorage in some contexts, fallback to false
583
+ setRevisionAdded(false);
584
+ }
585
+ };
586
+
587
+ // Check immediately
588
+ checkRevisionState();
589
+
590
+ // Also check after a short delay for Safari (in case localStorage isn't ready immediately)
591
+ const timeoutId = setTimeout(checkRevisionState, 100);
592
+
593
+ return () => clearTimeout(timeoutId);
594
  }, [selectedWeek]);
595
  const [editForm, setEditForm] = useState<{
596
  content: string;
 
1437
  const addRevision = () => {
1438
  setRevisionAdded(true);
1439
  setAddingRevision(false);
1440
+ try {
1441
+ localStorage.setItem(`tutorial_revision_added_week_${selectedWeek}`, 'true');
1442
+ } catch (e) {
1443
+ // Safari might block localStorage, but state is already updated
1444
+ console.warn('Failed to save revision state to localStorage:', e);
1445
+ }
1446
  };
1447
 
1448
  const removeRevision = () => {
1449
  setRevisionAdded(false);
1450
+ try {
1451
+ localStorage.removeItem(`tutorial_revision_added_week_${selectedWeek}`);
1452
+ } catch (e) {
1453
+ // Safari might block localStorage, but state is already updated
1454
+ console.warn('Failed to remove revision state from localStorage:', e);
1455
+ }
1456
  };
1457
 
1458