Spaces:
Running
Running
Add speech tag
Browse files- package-lock.json +1 -2
- package.json +1 -0
- src/pages/Calendar.tsx +4 -1
- src/pages/Index.tsx +27 -0
package-lock.json
CHANGED
@@ -44,6 +44,7 @@
|
|
44 |
"date-fns-tz": "^2.0.0",
|
45 |
"embla-carousel-react": "^8.3.0",
|
46 |
"input-otp": "^1.2.4",
|
|
|
47 |
"lucide-react": "^0.462.0",
|
48 |
"next-themes": "^0.3.0",
|
49 |
"react": "^18.3.1",
|
@@ -3322,7 +3323,6 @@
|
|
3322 |
"version": "2.0.1",
|
3323 |
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
3324 |
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
3325 |
-
"dev": true,
|
3326 |
"license": "Python-2.0"
|
3327 |
},
|
3328 |
"node_modules/aria-hidden": {
|
@@ -4974,7 +4974,6 @@
|
|
4974 |
"version": "4.1.0",
|
4975 |
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
|
4976 |
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
4977 |
-
"dev": true,
|
4978 |
"license": "MIT",
|
4979 |
"dependencies": {
|
4980 |
"argparse": "^2.0.1"
|
|
|
44 |
"date-fns-tz": "^2.0.0",
|
45 |
"embla-carousel-react": "^8.3.0",
|
46 |
"input-otp": "^1.2.4",
|
47 |
+
"js-yaml": "^4.1.0",
|
48 |
"lucide-react": "^0.462.0",
|
49 |
"next-themes": "^0.3.0",
|
50 |
"react": "^18.3.1",
|
|
|
3323 |
"version": "2.0.1",
|
3324 |
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
3325 |
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
|
|
3326 |
"license": "Python-2.0"
|
3327 |
},
|
3328 |
"node_modules/aria-hidden": {
|
|
|
4974 |
"version": "4.1.0",
|
4975 |
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
|
4976 |
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
|
|
4977 |
"license": "MIT",
|
4978 |
"dependencies": {
|
4979 |
"argparse": "^2.0.1"
|
package.json
CHANGED
@@ -47,6 +47,7 @@
|
|
47 |
"date-fns-tz": "^2.0.0",
|
48 |
"embla-carousel-react": "^8.3.0",
|
49 |
"input-otp": "^1.2.4",
|
|
|
50 |
"lucide-react": "^0.462.0",
|
51 |
"next-themes": "^0.3.0",
|
52 |
"react": "^18.3.1",
|
|
|
47 |
"date-fns-tz": "^2.0.0",
|
48 |
"embla-carousel-react": "^8.3.0",
|
49 |
"input-otp": "^1.2.4",
|
50 |
+
"js-yaml": "^4.1.0",
|
51 |
"lucide-react": "^0.462.0",
|
52 |
"next-themes": "^0.3.0",
|
53 |
"react": "^18.3.1",
|
src/pages/Calendar.tsx
CHANGED
@@ -25,6 +25,7 @@ const categoryColors: Record<string, string> = {
|
|
25 |
"natural-language-processing": "bg-blue-500",
|
26 |
"robotics": "bg-green-500",
|
27 |
"signal-processing": "bg-cyan-500",
|
|
|
28 |
"data-mining": "bg-pink-500",
|
29 |
"reinforcement-learning": "bg-yellow-500",
|
30 |
"automated-planning": "bg-amber-500",
|
@@ -36,7 +37,8 @@ const categoryNames: Record<string, string> = {
|
|
36 |
"computer-vision": "Computer Vision",
|
37 |
"natural-language-processing": "NLP",
|
38 |
"robotics": "Robotics",
|
39 |
-
"signal-processing": "
|
|
|
40 |
"data-mining": "Data Mining",
|
41 |
"reinforcement-learning": "Reinforcement Learning",
|
42 |
"automated-planning": "Automated Planning",
|
@@ -51,6 +53,7 @@ const orderedCategories = [
|
|
51 |
"robotics",
|
52 |
"reinforcement-learning",
|
53 |
"signal-processing",
|
|
|
54 |
"data-mining",
|
55 |
"automated-planning",
|
56 |
"other"
|
|
|
25 |
"natural-language-processing": "bg-blue-500",
|
26 |
"robotics": "bg-green-500",
|
27 |
"signal-processing": "bg-cyan-500",
|
28 |
+
"speech": "bg-teal-500",
|
29 |
"data-mining": "bg-pink-500",
|
30 |
"reinforcement-learning": "bg-yellow-500",
|
31 |
"automated-planning": "bg-amber-500",
|
|
|
37 |
"computer-vision": "Computer Vision",
|
38 |
"natural-language-processing": "NLP",
|
39 |
"robotics": "Robotics",
|
40 |
+
"signal-processing": "Signal Processing",
|
41 |
+
"speech": "Speech",
|
42 |
"data-mining": "Data Mining",
|
43 |
"reinforcement-learning": "Reinforcement Learning",
|
44 |
"automated-planning": "Automated Planning",
|
|
|
53 |
"robotics",
|
54 |
"reinforcement-learning",
|
55 |
"signal-processing",
|
56 |
+
"speech",
|
57 |
"data-mining",
|
58 |
"automated-planning",
|
59 |
"other"
|
src/pages/Index.tsx
CHANGED
@@ -32,6 +32,7 @@ const Index = () => {
|
|
32 |
{ id: "data-mining", label: "Data Mining" },
|
33 |
{ id: "natural-language-processing", label: "Natural Language Processing" },
|
34 |
{ id: "signal-processing", label: "Signal Processing" },
|
|
|
35 |
{ id: "human-computer-interaction", label: "Human Computer Interaction" },
|
36 |
{ id: "computer-graphics", label: "Computer Graphics" },
|
37 |
{ id: "mathematics", label: "Mathematics" },
|
@@ -120,6 +121,32 @@ const Index = () => {
|
|
120 |
}
|
121 |
}, []);
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
if (!Array.isArray(conferencesData)) {
|
124 |
return <div>Loading conferences...</div>;
|
125 |
}
|
|
|
32 |
{ id: "data-mining", label: "Data Mining" },
|
33 |
{ id: "natural-language-processing", label: "Natural Language Processing" },
|
34 |
{ id: "signal-processing", label: "Signal Processing" },
|
35 |
+
{ id: "speech", label: "Speech" },
|
36 |
{ id: "human-computer-interaction", label: "Human Computer Interaction" },
|
37 |
{ id: "computer-graphics", label: "Computer Graphics" },
|
38 |
{ id: "mathematics", label: "Mathematics" },
|
|
|
121 |
}
|
122 |
}, []);
|
123 |
|
124 |
+
// Listen for URL changes from tag clicks in conference cards
|
125 |
+
useEffect(() => {
|
126 |
+
const handleUrlChange = () => {
|
127 |
+
const searchParams = new URLSearchParams(window.location.search);
|
128 |
+
const tagsParam = searchParams.get('tags');
|
129 |
+
const countriesParam = searchParams.get('countries');
|
130 |
+
|
131 |
+
if (tagsParam) {
|
132 |
+
const tags = tagsParam.split(',');
|
133 |
+
setSelectedTags(new Set(tags));
|
134 |
+
} else {
|
135 |
+
setSelectedTags(new Set());
|
136 |
+
}
|
137 |
+
|
138 |
+
if (countriesParam) {
|
139 |
+
const countries = countriesParam.split(',');
|
140 |
+
setSelectedCountries(new Set(countries));
|
141 |
+
} else {
|
142 |
+
setSelectedCountries(new Set());
|
143 |
+
}
|
144 |
+
};
|
145 |
+
|
146 |
+
window.addEventListener('urlchange', handleUrlChange);
|
147 |
+
return () => window.removeEventListener('urlchange', handleUrlChange);
|
148 |
+
}, []);
|
149 |
+
|
150 |
if (!Array.isArray(conferencesData)) {
|
151 |
return <div>Loading conferences...</div>;
|
152 |
}
|