Upload folder using huggingface_hub
Browse files- client/src/pages/Dashboard.tsx +14 -12
- client/src/pages/Feedback.tsx +4 -1
- client/src/pages/Profile.tsx +4 -1
- client/src/pages/Slides.tsx +4 -1
- client/src/pages/Toolkit.tsx +1 -1
- client/src/pages/TutorialTasks.tsx +1 -1
- client/src/pages/VoteResults.tsx +1 -1
- client/src/pages/WeeklyPractice.tsx +1 -1
client/src/pages/Dashboard.tsx
CHANGED
|
@@ -1,12 +1,8 @@
|
|
| 1 |
import React, { useState, useEffect } from 'react';
|
| 2 |
import { useNavigate, Link } from 'react-router-dom';
|
| 3 |
import {
|
| 4 |
-
AcademicCapIcon,
|
| 5 |
-
BookOpenIcon,
|
| 6 |
-
HandThumbUpIcon,
|
| 7 |
UserIcon,
|
| 8 |
-
ChartBarIcon
|
| 9 |
-
DocumentTextIcon
|
| 10 |
} from '@heroicons/react/24/outline';
|
| 11 |
|
| 12 |
interface User {
|
|
@@ -47,47 +43,53 @@ const Dashboard: React.FC = () => {
|
|
| 47 |
return user.role === 'admin' ? 'Admin' : 'Student';
|
| 48 |
};
|
| 49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
const quickActions = [
|
| 51 |
{
|
| 52 |
name: 'Tutorial Tasks',
|
| 53 |
description: 'Complete weekly tasks',
|
| 54 |
href: '/tutorial-tasks',
|
| 55 |
-
icon: AcademicCapIcon,
|
| 56 |
color: 'bg-blue-500'
|
| 57 |
},
|
| 58 |
{
|
| 59 |
name: 'Weekly Practice',
|
| 60 |
description: 'Practice with examples',
|
| 61 |
href: '/weekly-practice',
|
| 62 |
-
icon: BookOpenIcon,
|
| 63 |
color: 'bg-green-500'
|
| 64 |
},
|
| 65 |
{
|
| 66 |
name: 'Vote Results',
|
| 67 |
description: 'View and vote on translations',
|
| 68 |
href: '/votes',
|
| 69 |
-
icon: HandThumbUpIcon,
|
| 70 |
color: 'bg-purple-500'
|
| 71 |
},
|
| 72 |
{
|
| 73 |
name: 'Toolkit',
|
| 74 |
description: 'Evaluation and reference tools',
|
| 75 |
href: '/toolkit',
|
| 76 |
-
icon: ChartBarIcon,
|
| 77 |
color: 'bg-indigo-500'
|
| 78 |
},
|
| 79 |
{
|
| 80 |
name: 'Slides',
|
| 81 |
description: 'Download tutorial slides',
|
| 82 |
href: '/slides',
|
| 83 |
-
icon: DocumentTextIcon,
|
| 84 |
color: 'bg-amber-500'
|
| 85 |
},
|
| 86 |
{
|
| 87 |
name: 'Feedback',
|
| 88 |
description: 'Send requests and issues',
|
| 89 |
href: '/feedback',
|
| 90 |
-
icon: DocumentTextIcon,
|
| 91 |
color: 'bg-rose-500'
|
| 92 |
}
|
| 93 |
];
|
|
@@ -141,7 +143,7 @@ const Dashboard: React.FC = () => {
|
|
| 141 |
>
|
| 142 |
<div className="flex items-center">
|
| 143 |
<div className={`p-3 rounded-2xl bg-gradient-to-br from-orange-400/30 via-amber-400/30 to-orange-500/30 hover:from-orange-400/40 hover:via-amber-400/40 hover:to-orange-500/40`}>
|
| 144 |
-
<action.
|
| 145 |
</div>
|
| 146 |
<div className="ml-4">
|
| 147 |
<h3 className="text-lg font-medium text-ui-text">{action.name}</h3>
|
|
|
|
| 1 |
import React, { useState, useEffect } from 'react';
|
| 2 |
import { useNavigate, Link } from 'react-router-dom';
|
| 3 |
import {
|
|
|
|
|
|
|
|
|
|
| 4 |
UserIcon,
|
| 5 |
+
ChartBarIcon
|
|
|
|
| 6 |
} from '@heroicons/react/24/outline';
|
| 7 |
|
| 8 |
interface User {
|
|
|
|
| 43 |
return user.role === 'admin' ? 'Admin' : 'Student';
|
| 44 |
};
|
| 45 |
|
| 46 |
+
const getIconSrc = (name: string): string => {
|
| 47 |
+
switch (name) {
|
| 48 |
+
case 'Tutorial Tasks': return '/icons/tutorial tasks.svg';
|
| 49 |
+
case 'Weekly Practice': return '/icons/weekly practice.svg';
|
| 50 |
+
case 'Vote Results': return '/icons/votes.svg';
|
| 51 |
+
case 'Toolkit': return '/icons/toolkit.svg';
|
| 52 |
+
case 'Slides': return '/icons/slides.svg';
|
| 53 |
+
case 'Feedback': return '/icons/feedback.svg';
|
| 54 |
+
default: return '/icons/home.svg';
|
| 55 |
+
}
|
| 56 |
+
};
|
| 57 |
+
|
| 58 |
const quickActions = [
|
| 59 |
{
|
| 60 |
name: 'Tutorial Tasks',
|
| 61 |
description: 'Complete weekly tasks',
|
| 62 |
href: '/tutorial-tasks',
|
|
|
|
| 63 |
color: 'bg-blue-500'
|
| 64 |
},
|
| 65 |
{
|
| 66 |
name: 'Weekly Practice',
|
| 67 |
description: 'Practice with examples',
|
| 68 |
href: '/weekly-practice',
|
|
|
|
| 69 |
color: 'bg-green-500'
|
| 70 |
},
|
| 71 |
{
|
| 72 |
name: 'Vote Results',
|
| 73 |
description: 'View and vote on translations',
|
| 74 |
href: '/votes',
|
|
|
|
| 75 |
color: 'bg-purple-500'
|
| 76 |
},
|
| 77 |
{
|
| 78 |
name: 'Toolkit',
|
| 79 |
description: 'Evaluation and reference tools',
|
| 80 |
href: '/toolkit',
|
|
|
|
| 81 |
color: 'bg-indigo-500'
|
| 82 |
},
|
| 83 |
{
|
| 84 |
name: 'Slides',
|
| 85 |
description: 'Download tutorial slides',
|
| 86 |
href: '/slides',
|
|
|
|
| 87 |
color: 'bg-amber-500'
|
| 88 |
},
|
| 89 |
{
|
| 90 |
name: 'Feedback',
|
| 91 |
description: 'Send requests and issues',
|
| 92 |
href: '/feedback',
|
|
|
|
| 93 |
color: 'bg-rose-500'
|
| 94 |
}
|
| 95 |
];
|
|
|
|
| 143 |
>
|
| 144 |
<div className="flex items-center">
|
| 145 |
<div className={`p-3 rounded-2xl bg-gradient-to-br from-orange-400/30 via-amber-400/30 to-orange-500/30 hover:from-orange-400/40 hover:via-amber-400/40 hover:to-orange-500/40`}>
|
| 146 |
+
<img src={getIconSrc(action.name)} alt={action.name} className="h-6 w-6" />
|
| 147 |
</div>
|
| 148 |
<div className="ml-4">
|
| 149 |
<h3 className="text-lg font-medium text-ui-text">{action.name}</h3>
|
client/src/pages/Feedback.tsx
CHANGED
|
@@ -62,7 +62,10 @@ const Feedback: React.FC = () => {
|
|
| 62 |
return (
|
| 63 |
<div className="min-h-screen bg-gray-50 py-8">
|
| 64 |
<div className="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 65 |
-
<
|
|
|
|
|
|
|
|
|
|
| 66 |
<p className="text-sm text-gray-600 mb-4">Share feature requests or issues.</p>
|
| 67 |
<div className="bg-white rounded-lg border border-gray-200 p-4 space-y-3">
|
| 68 |
<textarea
|
|
|
|
| 62 |
return (
|
| 63 |
<div className="min-h-screen bg-gray-50 py-8">
|
| 64 |
<div className="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 65 |
+
<div className="flex items-center mb-4">
|
| 66 |
+
<img src="/icons/feedback.svg" alt="Feedback" className="h-8 w-8 mr-3" />
|
| 67 |
+
<h1 className="text-2xl font-semibold text-gray-900">Feedback & Suggestions</h1>
|
| 68 |
+
</div>
|
| 69 |
<p className="text-sm text-gray-600 mb-4">Share feature requests or issues.</p>
|
| 70 |
<div className="bg-white rounded-lg border border-gray-200 p-4 space-y-3">
|
| 71 |
<textarea
|
client/src/pages/Profile.tsx
CHANGED
|
@@ -459,7 +459,10 @@ const Manage: React.FC = () => {
|
|
| 459 |
<div className="mb-8">
|
| 460 |
<div className="flex justify-between items-center">
|
| 461 |
<div>
|
| 462 |
-
<
|
|
|
|
|
|
|
|
|
|
| 463 |
<p className="mt-2 text-gray-600">Admin panel for system management</p>
|
| 464 |
</div>
|
| 465 |
<div className="flex items-center space-x-4">
|
|
|
|
| 459 |
<div className="mb-8">
|
| 460 |
<div className="flex justify-between items-center">
|
| 461 |
<div>
|
| 462 |
+
<div className="flex items-center">
|
| 463 |
+
<img src="/icons/manage.svg" alt="Manage" className="h-8 w-8 mr-3" />
|
| 464 |
+
<h1 className="text-2xl font-bold text-gray-900">Manage</h1>
|
| 465 |
+
</div>
|
| 466 |
<p className="mt-2 text-gray-600">Admin panel for system management</p>
|
| 467 |
</div>
|
| 468 |
<div className="flex items-center space-x-4">
|
client/src/pages/Slides.tsx
CHANGED
|
@@ -54,7 +54,10 @@ const Slides: React.FC = () => {
|
|
| 54 |
<div className="min-h-screen bg-gray-50 py-8">
|
| 55 |
<div className="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 56 |
<div className="mb-6">
|
| 57 |
-
<
|
|
|
|
|
|
|
|
|
|
| 58 |
<p className="text-gray-600 text-sm">Download tutorial slides</p>
|
| 59 |
</div>
|
| 60 |
|
|
|
|
| 54 |
<div className="min-h-screen bg-gray-50 py-8">
|
| 55 |
<div className="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 56 |
<div className="mb-6">
|
| 57 |
+
<div className="flex items-center mb-2">
|
| 58 |
+
<img src="/icons/slides.svg" alt="Slides" className="h-8 w-8 mr-3" />
|
| 59 |
+
<h1 className="text-2xl font-semibold text-gray-900">Slides</h1>
|
| 60 |
+
</div>
|
| 61 |
<p className="text-gray-600 text-sm">Download tutorial slides</p>
|
| 62 |
</div>
|
| 63 |
|
client/src/pages/Toolkit.tsx
CHANGED
|
@@ -358,7 +358,7 @@ const Toolkit: React.FC = () => {
|
|
| 358 |
{/* Header */}
|
| 359 |
<div className="mb-8">
|
| 360 |
<div className="flex items-center mb-4">
|
| 361 |
-
<
|
| 362 |
<h1 className="text-3xl font-bold text-gray-900">Toolkit</h1>
|
| 363 |
</div>
|
| 364 |
<p className="text-gray-600">Helpful tools for evaluation and reference. Pick a tool below.</p>
|
|
|
|
| 358 |
{/* Header */}
|
| 359 |
<div className="mb-8">
|
| 360 |
<div className="flex items-center mb-4">
|
| 361 |
+
<img src="/icons/toolkit.svg" alt="Toolkit" className="h-8 w-8 mr-3" />
|
| 362 |
<h1 className="text-3xl font-bold text-gray-900">Toolkit</h1>
|
| 363 |
</div>
|
| 364 |
<p className="text-gray-600">Helpful tools for evaluation and reference. Pick a tool below.</p>
|
client/src/pages/TutorialTasks.tsx
CHANGED
|
@@ -1069,7 +1069,7 @@ const TutorialTasks: React.FC = () => {
|
|
| 1069 |
{/* Header */}
|
| 1070 |
<div className="mb-8">
|
| 1071 |
<div className="flex items-center mb-4">
|
| 1072 |
-
<
|
| 1073 |
<h1 className="text-3xl font-bold text-ui-text">Tutorial Tasks</h1>
|
| 1074 |
</div>
|
| 1075 |
<p className="text-ui-text/70">
|
|
|
|
| 1069 |
{/* Header */}
|
| 1070 |
<div className="mb-8">
|
| 1071 |
<div className="flex items-center mb-4">
|
| 1072 |
+
<img src="/icons/tutorial tasks.svg" alt="Tutorial Tasks" className="h-8 w-8 mr-3" />
|
| 1073 |
<h1 className="text-3xl font-bold text-ui-text">Tutorial Tasks</h1>
|
| 1074 |
</div>
|
| 1075 |
<p className="text-ui-text/70">
|
client/src/pages/VoteResults.tsx
CHANGED
|
@@ -319,7 +319,7 @@ const VoteResults: React.FC = () => {
|
|
| 319 |
{/* Header */}
|
| 320 |
<div className="mb-8">
|
| 321 |
<div className="flex items-center mb-4">
|
| 322 |
-
<
|
| 323 |
<h1 className="text-3xl font-bold text-gray-900">Vote Results</h1>
|
| 324 |
</div>
|
| 325 |
<p className="text-gray-600">
|
|
|
|
| 319 |
{/* Header */}
|
| 320 |
<div className="mb-8">
|
| 321 |
<div className="flex items-center mb-4">
|
| 322 |
+
<img src="/icons/votes.svg" alt="Vote Results" className="h-8 w-8 mr-3" />
|
| 323 |
<h1 className="text-3xl font-bold text-gray-900">Vote Results</h1>
|
| 324 |
</div>
|
| 325 |
<p className="text-gray-600">
|
client/src/pages/WeeklyPractice.tsx
CHANGED
|
@@ -1415,7 +1415,7 @@ const WeeklyPractice: React.FC = () => {
|
|
| 1415 |
{/* Header */}
|
| 1416 |
<div className="mb-8">
|
| 1417 |
<div className="flex items-center mb-4">
|
| 1418 |
-
<
|
| 1419 |
<h1 className="text-3xl font-bold text-ui-text">Weekly Practice</h1>
|
| 1420 |
</div>
|
| 1421 |
<p className="text-ui-text/70">
|
|
|
|
| 1415 |
{/* Header */}
|
| 1416 |
<div className="mb-8">
|
| 1417 |
<div className="flex items-center mb-4">
|
| 1418 |
+
<img src="/icons/weekly practice.svg" alt="Weekly Practice" className="h-8 w-8 mr-3" />
|
| 1419 |
<h1 className="text-3xl font-bold text-ui-text">Weekly Practice</h1>
|
| 1420 |
</div>
|
| 1421 |
<p className="text-ui-text/70">
|