Upload folder using huggingface_hub
Browse files
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 |
-
//
|
|
|
|
| 577 |
React.useEffect(() => {
|
| 578 |
-
const
|
| 579 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1427 |
};
|
| 1428 |
|
| 1429 |
const removeRevision = () => {
|
| 1430 |
setRevisionAdded(false);
|
| 1431 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|