Upload folder using huggingface_hub
Browse files
client/public/rebuild-nonce.txt
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
Rebuild nonce: 2025-10-25T19:
|
|
|
|
| 1 |
+
Rebuild nonce: 2025-10-25T19:25:15Z
|
client/src/pages/TutorialTasks.tsx
CHANGED
|
@@ -1883,7 +1883,11 @@ const TutorialTasks: React.FC = () => {
|
|
| 1883 |
<label className="block text-xs font-medium text-gray-700 mb-1">Select Your Group</label>
|
| 1884 |
<select
|
| 1885 |
value={selectedGroups[task._id] || ''}
|
| 1886 |
-
onChange={(e) =>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1887 |
className="w-40 px-2 py-1 border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white text-xs"
|
| 1888 |
>
|
| 1889 |
<option value="">Choose...</option>
|
|
@@ -1898,8 +1902,16 @@ const TutorialTasks: React.FC = () => {
|
|
| 1898 |
<textarea
|
| 1899 |
id={`tutorial-translation-${task._id}`}
|
| 1900 |
value={translationText[task._id] || ''}
|
| 1901 |
-
onInput={(e) =>
|
| 1902 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1903 |
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white"
|
| 1904 |
style={{ height: '150px' }}
|
| 1905 |
rows={4}
|
|
@@ -2074,8 +2086,10 @@ const TutorialTasks: React.FC = () => {
|
|
| 2074 |
<select
|
| 2075 |
value={selectedGroups[task._id] || ''}
|
| 2076 |
onChange={(e) => {
|
| 2077 |
-
|
| 2078 |
-
|
|
|
|
|
|
|
| 2079 |
}}
|
| 2080 |
className="w-48 px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white text-sm"
|
| 2081 |
required
|
|
@@ -2102,12 +2116,16 @@ const TutorialTasks: React.FC = () => {
|
|
| 2102 |
id={`tutorial-translation-${task._id}`}
|
| 2103 |
value={translationText[task._id] || ''}
|
| 2104 |
onInput={(e) => {
|
| 2105 |
-
|
| 2106 |
-
|
|
|
|
|
|
|
| 2107 |
}}
|
| 2108 |
onChange={(e) => {
|
| 2109 |
-
|
| 2110 |
-
|
|
|
|
|
|
|
| 2111 |
}}
|
| 2112 |
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white"
|
| 2113 |
style={{ height: '150px' }}
|
|
|
|
| 1883 |
<label className="block text-xs font-medium text-gray-700 mb-1">Select Your Group</label>
|
| 1884 |
<select
|
| 1885 |
value={selectedGroups[task._id] || ''}
|
| 1886 |
+
onChange={(e) => {
|
| 1887 |
+
(withPreservedScroll.current || ((fn)=>fn()))(() => {
|
| 1888 |
+
setSelectedGroups({ ...selectedGroups, [task._id]: parseInt(e.target.value) });
|
| 1889 |
+
});
|
| 1890 |
+
}}
|
| 1891 |
className="w-40 px-2 py-1 border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white text-xs"
|
| 1892 |
>
|
| 1893 |
<option value="">Choose...</option>
|
|
|
|
| 1902 |
<textarea
|
| 1903 |
id={`tutorial-translation-${task._id}`}
|
| 1904 |
value={translationText[task._id] || ''}
|
| 1905 |
+
onInput={(e) => {
|
| 1906 |
+
(withPreservedScroll.current || ((fn)=>fn()))(() => {
|
| 1907 |
+
setTranslationText({ ...translationText, [task._id]: (e.target as HTMLTextAreaElement).value });
|
| 1908 |
+
});
|
| 1909 |
+
}}
|
| 1910 |
+
onChange={(e) => {
|
| 1911 |
+
(withPreservedScroll.current || ((fn)=>fn()))(() => {
|
| 1912 |
+
setTranslationText({ ...translationText, [task._id]: e.target.value });
|
| 1913 |
+
});
|
| 1914 |
+
}}
|
| 1915 |
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white"
|
| 1916 |
style={{ height: '150px' }}
|
| 1917 |
rows={4}
|
|
|
|
| 2086 |
<select
|
| 2087 |
value={selectedGroups[task._id] || ''}
|
| 2088 |
onChange={(e) => {
|
| 2089 |
+
(withPreservedScroll.current || ((fn)=>fn()))(() => {
|
| 2090 |
+
const value = parseInt(e.target.value);
|
| 2091 |
+
setSelectedGroups({ ...selectedGroups, [task._id]: value });
|
| 2092 |
+
});
|
| 2093 |
}}
|
| 2094 |
className="w-48 px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white text-sm"
|
| 2095 |
required
|
|
|
|
| 2116 |
id={`tutorial-translation-${task._id}`}
|
| 2117 |
value={translationText[task._id] || ''}
|
| 2118 |
onInput={(e) => {
|
| 2119 |
+
(withPreservedScroll.current || ((fn)=>fn()))(() => {
|
| 2120 |
+
const value = (e.target as HTMLTextAreaElement).value;
|
| 2121 |
+
setTranslationText({ ...translationText, [task._id]: value });
|
| 2122 |
+
});
|
| 2123 |
}}
|
| 2124 |
onChange={(e) => {
|
| 2125 |
+
(withPreservedScroll.current || ((fn)=>fn()))(() => {
|
| 2126 |
+
const value = e.target.value;
|
| 2127 |
+
setTranslationText({ ...translationText, [task._id]: value });
|
| 2128 |
+
});
|
| 2129 |
}}
|
| 2130 |
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 bg-white"
|
| 2131 |
style={{ height: '150px' }}
|