Spaces:
Running
Running
Add top tier only toggle
Browse files- src/data/conferences/acl.yml +2 -0
- src/data/conferences/bis.yml +1 -0
- src/data/conferences/colm.yml +1 -0
- src/data/conferences/cvpr.yml +2 -0
- src/data/conferences/eccv.yml +1 -0
- src/data/conferences/fg.yml +1 -0
- src/data/conferences/iccv.yml +1 -0
- src/data/conferences/iclr.yml +2 -0
- src/data/conferences/icml.yml +2 -0
- src/data/conferences/icra.yml +2 -0
- src/data/conferences/ijcnn.yml +2 -0
- src/data/conferences/interspeech.yml +1 -0
- src/data/conferences/kdd.yml +2 -0
- src/data/conferences/miccai.yml +1 -0
- src/data/conferences/neurips.yml +1 -0
- src/data/conferences/rss.yml +2 -0
- src/data/conferences/ruleml+rr.yml +1 -0
- src/data/conferences/siggraph.yml +1 -0
- src/data/conferences/uai.yml +2 -0
- src/data/conferences/www.yml +1 -0
- src/pages/Index.tsx +28 -2
- src/types/conference.ts +1 -0
src/data/conferences/acl.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2025-02-15 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: July 27 - August 1, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- natural-language-processing
|
| 11 |
city: Vienna
|
|
@@ -23,6 +24,7 @@
|
|
| 23 |
deadline: '2026-01-05 23:59:59'
|
| 24 |
timezone: UTC-12
|
| 25 |
date: July 2-7, 2026
|
|
|
|
| 26 |
tags:
|
| 27 |
- natural-language-processing
|
| 28 |
city: San Diego
|
|
|
|
| 6 |
deadline: '2025-02-15 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: July 27 - August 1, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- natural-language-processing
|
| 12 |
city: Vienna
|
|
|
|
| 24 |
deadline: '2026-01-05 23:59:59'
|
| 25 |
timezone: UTC-12
|
| 26 |
date: July 2-7, 2026
|
| 27 |
+
era_rating: a
|
| 28 |
tags:
|
| 29 |
- natural-language-processing
|
| 30 |
city: San Diego
|
src/data/conferences/bis.yml
CHANGED
|
@@ -10,6 +10,7 @@
|
|
| 10 |
date: June 10-12, 2026
|
| 11 |
start: '2026-06-10'
|
| 12 |
end: '2026-06-12'
|
|
|
|
| 13 |
tags:
|
| 14 |
- information-systems
|
| 15 |
- machine-learning
|
|
|
|
| 10 |
date: June 10-12, 2026
|
| 11 |
start: '2026-06-10'
|
| 12 |
end: '2026-06-12'
|
| 13 |
+
era_rating: b
|
| 14 |
tags:
|
| 15 |
- information-systems
|
| 16 |
- machine-learning
|
src/data/conferences/colm.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2025-03-27 23:59:59'
|
| 7 |
timezone: AoE
|
| 8 |
date: October 7-9, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- natural-language-processing
|
| 11 |
city: Montreal
|
|
|
|
| 6 |
deadline: '2025-03-27 23:59:59'
|
| 7 |
timezone: AoE
|
| 8 |
date: October 7-9, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- natural-language-processing
|
| 12 |
city: Montreal
|
src/data/conferences/cvpr.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2024-11-14 23:59:00'
|
| 7 |
timezone: UTC-8
|
| 8 |
date: June 10-17, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- computer-vision
|
| 11 |
city: Nashville
|
|
@@ -29,6 +30,7 @@
|
|
| 29 |
deadline: '2025-11-13 23:59:59'
|
| 30 |
timezone: UTC-12
|
| 31 |
date: June 3-7, 2026
|
|
|
|
| 32 |
tags:
|
| 33 |
- computer-vision
|
| 34 |
- robotics
|
|
|
|
| 6 |
deadline: '2024-11-14 23:59:00'
|
| 7 |
timezone: UTC-8
|
| 8 |
date: June 10-17, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- computer-vision
|
| 12 |
city: Nashville
|
|
|
|
| 30 |
deadline: '2025-11-13 23:59:59'
|
| 31 |
timezone: UTC-12
|
| 32 |
date: June 3-7, 2026
|
| 33 |
+
era_rating: a
|
| 34 |
tags:
|
| 35 |
- computer-vision
|
| 36 |
- robotics
|
src/data/conferences/eccv.yml
CHANGED
|
@@ -8,5 +8,6 @@
|
|
| 8 |
city: Malmö
|
| 9 |
country: Sweden
|
| 10 |
date: September 8-13, 2026
|
|
|
|
| 11 |
tags:
|
| 12 |
- computer-vision
|
|
|
|
| 8 |
city: Malmö
|
| 9 |
country: Sweden
|
| 10 |
date: September 8-13, 2026
|
| 11 |
+
era_rating: a
|
| 12 |
tags:
|
| 13 |
- computer-vision
|
src/data/conferences/fg.yml
CHANGED
|
@@ -3,6 +3,7 @@
|
|
| 3 |
id: fg26
|
| 4 |
full_name: International Conference on Automatic Face and Gesture Recognition
|
| 5 |
link: https://fg2026.ieee-biometrics.org/
|
|
|
|
| 6 |
deadlines:
|
| 7 |
- type: abstract
|
| 8 |
label: Abstract Submission (Round 1)
|
|
|
|
| 3 |
id: fg26
|
| 4 |
full_name: International Conference on Automatic Face and Gesture Recognition
|
| 5 |
link: https://fg2026.ieee-biometrics.org/
|
| 6 |
+
era_rating: c
|
| 7 |
deadlines:
|
| 8 |
- type: abstract
|
| 9 |
label: Abstract Submission (Round 1)
|
src/data/conferences/iccv.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2025-03-08 09:59:59'
|
| 7 |
timezone: UTC+0
|
| 8 |
date: October 19-25, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- machine-learning
|
| 11 |
- computer-vision
|
|
|
|
| 6 |
deadline: '2025-03-08 09:59:59'
|
| 7 |
timezone: UTC+0
|
| 8 |
date: October 19-25, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- machine-learning
|
| 12 |
- computer-vision
|
src/data/conferences/iclr.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2024-10-01 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: April 24-28, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- machine-learning
|
| 11 |
- computer-vision
|
|
@@ -26,6 +27,7 @@
|
|
| 26 |
link: https://iclr.cc/Conferences/2026
|
| 27 |
deadline: '2025-09-24 23:59:59'
|
| 28 |
abstract_deadline: '2025-09-19 23:59:59'
|
|
|
|
| 29 |
deadlines:
|
| 30 |
- type: abstract
|
| 31 |
label: Abstract Submission
|
|
|
|
| 6 |
deadline: '2024-10-01 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: April 24-28, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- machine-learning
|
| 12 |
- computer-vision
|
|
|
|
| 27 |
link: https://iclr.cc/Conferences/2026
|
| 28 |
deadline: '2025-09-24 23:59:59'
|
| 29 |
abstract_deadline: '2025-09-19 23:59:59'
|
| 30 |
+
era_rating: a
|
| 31 |
deadlines:
|
| 32 |
- type: abstract
|
| 33 |
label: Abstract Submission
|
src/data/conferences/icml.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2025-01-30 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: July 11-19, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- machine-learning
|
| 11 |
city: Vancouver
|
|
@@ -23,6 +24,7 @@
|
|
| 23 |
deadline: '2026-01-28 23:59:59'
|
| 24 |
timezone: UTC-12
|
| 25 |
date: July 6-11, 2026
|
|
|
|
| 26 |
tags:
|
| 27 |
- machine-learning
|
| 28 |
deadlines:
|
|
|
|
| 6 |
deadline: '2025-01-30 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: July 11-19, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- machine-learning
|
| 12 |
city: Vancouver
|
|
|
|
| 24 |
deadline: '2026-01-28 23:59:59'
|
| 25 |
timezone: UTC-12
|
| 26 |
date: July 6-11, 2026
|
| 27 |
+
era_rating: a
|
| 28 |
tags:
|
| 29 |
- machine-learning
|
| 30 |
deadlines:
|
src/data/conferences/icra.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2024-07-15 12:00:00'
|
| 7 |
timezone: UTC-4
|
| 8 |
date: May 19-23, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- machine-learning
|
| 11 |
- robotics
|
|
@@ -20,6 +21,7 @@
|
|
| 20 |
id: icra26
|
| 21 |
full_name: International Conference on Robotics and Automation
|
| 22 |
link: https://2026.ieee-icra.org/
|
|
|
|
| 23 |
deadlines:
|
| 24 |
- type: submission
|
| 25 |
label: Paper Submission
|
|
|
|
| 6 |
deadline: '2024-07-15 12:00:00'
|
| 7 |
timezone: UTC-4
|
| 8 |
date: May 19-23, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- machine-learning
|
| 12 |
- robotics
|
|
|
|
| 21 |
id: icra26
|
| 22 |
full_name: International Conference on Robotics and Automation
|
| 23 |
link: https://2026.ieee-icra.org/
|
| 24 |
+
era_rating: a
|
| 25 |
deadlines:
|
| 26 |
- type: submission
|
| 27 |
label: Paper Submission
|
src/data/conferences/ijcnn.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2025-02-05 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: June 30 - July 5, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- machine-learning
|
| 11 |
city: Rome
|
|
@@ -19,6 +20,7 @@
|
|
| 19 |
deadline: '2025-09-24 23:59:59'
|
| 20 |
timezone: UTC-12
|
| 21 |
date: June 21-26, 2026
|
|
|
|
| 22 |
tags:
|
| 23 |
- machine-learning
|
| 24 |
city: Maastricht
|
|
|
|
| 6 |
deadline: '2025-02-05 23:59:59'
|
| 7 |
timezone: UTC-12
|
| 8 |
date: June 30 - July 5, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- machine-learning
|
| 12 |
city: Rome
|
|
|
|
| 20 |
deadline: '2025-09-24 23:59:59'
|
| 21 |
timezone: UTC-12
|
| 22 |
date: June 21-26, 2026
|
| 23 |
+
era_rating: a
|
| 24 |
tags:
|
| 25 |
- machine-learning
|
| 26 |
city: Maastricht
|
src/data/conferences/interspeech.yml
CHANGED
|
@@ -11,6 +11,7 @@
|
|
| 11 |
date: September 27-October 1, 2026
|
| 12 |
start: 2026-09-27
|
| 13 |
end: 2026-10-01
|
|
|
|
| 14 |
tags:
|
| 15 |
- speech
|
| 16 |
- signal-processing
|
|
|
|
| 11 |
date: September 27-October 1, 2026
|
| 12 |
start: 2026-09-27
|
| 13 |
end: 2026-10-01
|
| 14 |
+
era_rating: a
|
| 15 |
tags:
|
| 16 |
- speech
|
| 17 |
- signal-processing
|
src/data/conferences/kdd.yml
CHANGED
|
@@ -10,6 +10,7 @@
|
|
| 10 |
date: August 3 - August 7, 2025
|
| 11 |
start: '2025-08-03'
|
| 12 |
end: '2025-08-07'
|
|
|
|
| 13 |
tags:
|
| 14 |
- data-mining
|
| 15 |
- machine-learning
|
|
@@ -31,6 +32,7 @@
|
|
| 31 |
date: August 9 - August 13, 2025
|
| 32 |
start: '2026-08-09'
|
| 33 |
end: '2026-08-13'
|
|
|
|
| 34 |
tags:
|
| 35 |
- data-mining
|
| 36 |
- machine-learning
|
|
|
|
| 10 |
date: August 3 - August 7, 2025
|
| 11 |
start: '2025-08-03'
|
| 12 |
end: '2025-08-07'
|
| 13 |
+
era_rating: a
|
| 14 |
tags:
|
| 15 |
- data-mining
|
| 16 |
- machine-learning
|
|
|
|
| 32 |
date: August 9 - August 13, 2025
|
| 33 |
start: '2026-08-09'
|
| 34 |
end: '2026-08-13'
|
| 35 |
+
era_rating: a
|
| 36 |
tags:
|
| 37 |
- data-mining
|
| 38 |
- machine-learning
|
src/data/conferences/miccai.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2026-02-26 23:59:59'
|
| 7 |
timezone: UTC-08
|
| 8 |
date: October 4-8, 2026
|
|
|
|
| 9 |
tags:
|
| 10 |
- computer-vision
|
| 11 |
deadlines:
|
|
|
|
| 6 |
deadline: '2026-02-26 23:59:59'
|
| 7 |
timezone: UTC-08
|
| 8 |
date: October 4-8, 2026
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- computer-vision
|
| 12 |
deadlines:
|
src/data/conferences/neurips.yml
CHANGED
|
@@ -11,5 +11,6 @@
|
|
| 11 |
date: December 2-7, 2025
|
| 12 |
start: '2025-12-02'
|
| 13 |
end: '2025-12-07'
|
|
|
|
| 14 |
tags:
|
| 15 |
- machine-learning
|
|
|
|
| 11 |
date: December 2-7, 2025
|
| 12 |
start: '2025-12-02'
|
| 13 |
end: '2025-12-07'
|
| 14 |
+
era_rating: a
|
| 15 |
tags:
|
| 16 |
- machine-learning
|
src/data/conferences/rss.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2025-01-24 23:59:00'
|
| 7 |
timezone: AoE
|
| 8 |
date: June 21-25, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- robotics
|
| 11 |
- machine-learning
|
|
@@ -19,6 +20,7 @@
|
|
| 19 |
id: rss26
|
| 20 |
full_name: Robotics Science and Systems
|
| 21 |
link: https://roboticsconference.org
|
|
|
|
| 22 |
deadlines:
|
| 23 |
- type: abstract
|
| 24 |
label: Abstract Submission
|
|
|
|
| 6 |
deadline: '2025-01-24 23:59:00'
|
| 7 |
timezone: AoE
|
| 8 |
date: June 21-25, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- robotics
|
| 12 |
- machine-learning
|
|
|
|
| 20 |
id: rss26
|
| 21 |
full_name: Robotics Science and Systems
|
| 22 |
link: https://roboticsconference.org
|
| 23 |
+
era_rating: a
|
| 24 |
deadlines:
|
| 25 |
- type: abstract
|
| 26 |
label: Abstract Submission
|
src/data/conferences/ruleml+rr.yml
CHANGED
|
@@ -3,6 +3,7 @@
|
|
| 3 |
id: rulemlrr26
|
| 4 |
full_name: International Joint Conference on Rules and Reasoning
|
| 5 |
link: https://2026.declarativeai.net/events/ruleml-rr
|
|
|
|
| 6 |
deadlines:
|
| 7 |
- type: abstract
|
| 8 |
label: Title and Abstract Submission (AoE)
|
|
|
|
| 3 |
id: rulemlrr26
|
| 4 |
full_name: International Joint Conference on Rules and Reasoning
|
| 5 |
link: https://2026.declarativeai.net/events/ruleml-rr
|
| 6 |
+
era_rating: c
|
| 7 |
deadlines:
|
| 8 |
- type: abstract
|
| 9 |
label: Title and Abstract Submission (AoE)
|
src/data/conferences/siggraph.yml
CHANGED
|
@@ -11,5 +11,6 @@
|
|
| 11 |
date: August 10-14, 2025
|
| 12 |
start: '2025-08-10'
|
| 13 |
end: '2025-08-14'
|
|
|
|
| 14 |
tags:
|
| 15 |
- computer-graphics
|
|
|
|
| 11 |
date: August 10-14, 2025
|
| 12 |
start: '2025-08-10'
|
| 13 |
end: '2025-08-14'
|
| 14 |
+
era_rating: a
|
| 15 |
tags:
|
| 16 |
- computer-graphics
|
src/data/conferences/uai.yml
CHANGED
|
@@ -6,6 +6,7 @@
|
|
| 6 |
deadline: '2025-02-10 23:59:59'
|
| 7 |
timezone: AoE
|
| 8 |
date: July 21-25, 2025
|
|
|
|
| 9 |
tags:
|
| 10 |
- machine-learning
|
| 11 |
city: Rio de Janeiro
|
|
@@ -19,6 +20,7 @@
|
|
| 19 |
deadline: '2026-02-25 23:59:59'
|
| 20 |
timezone: AoE
|
| 21 |
date: August 17-21, 2025
|
|
|
|
| 22 |
tags:
|
| 23 |
- machine-learning
|
| 24 |
city: Amsterdam
|
|
|
|
| 6 |
deadline: '2025-02-10 23:59:59'
|
| 7 |
timezone: AoE
|
| 8 |
date: July 21-25, 2025
|
| 9 |
+
era_rating: a
|
| 10 |
tags:
|
| 11 |
- machine-learning
|
| 12 |
city: Rio de Janeiro
|
|
|
|
| 20 |
deadline: '2026-02-25 23:59:59'
|
| 21 |
timezone: AoE
|
| 22 |
date: August 17-21, 2025
|
| 23 |
+
era_rating: a
|
| 24 |
tags:
|
| 25 |
- machine-learning
|
| 26 |
city: Amsterdam
|
src/data/conferences/www.yml
CHANGED
|
@@ -5,6 +5,7 @@
|
|
| 5 |
link: https://www2026.thewebconf.org/
|
| 6 |
deadline: '2025-10-07 23:59:59'
|
| 7 |
abstract_deadline: '2025-09-30 23:59:59'
|
|
|
|
| 8 |
deadlines:
|
| 9 |
- type: abstract
|
| 10 |
label: Abstract deadline on 2025-09-30 23:59:59 UTC-12!
|
|
|
|
| 5 |
link: https://www2026.thewebconf.org/
|
| 6 |
deadline: '2025-10-07 23:59:59'
|
| 7 |
abstract_deadline: '2025-09-30 23:59:59'
|
| 8 |
+
era_rating: a
|
| 9 |
deadlines:
|
| 10 |
- type: abstract
|
| 11 |
label: Abstract deadline on 2025-09-30 23:59:59 UTC-12!
|
src/pages/Index.tsx
CHANGED
|
@@ -10,7 +10,8 @@ import { extractCountry } from "@/utils/countryExtractor";
|
|
| 10 |
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
|
| 11 |
import { Button } from "@/components/ui/button";
|
| 12 |
import { Checkbox } from "@/components/ui/checkbox";
|
| 13 |
-
import { X, ChevronRight, Filter, Globe } from "lucide-react";
|
|
|
|
| 14 |
import { getAllCountries } from "@/utils/countryExtractor";
|
| 15 |
import { getDeadlineInLocalTime } from "@/utils/dateUtils";
|
| 16 |
import { sortConferencesByDeadline } from "@/utils/conferenceUtils";
|
|
@@ -21,6 +22,7 @@ const Index = () => {
|
|
| 21 |
const [selectedCountries, setSelectedCountries] = useState<Set<string>>(new Set());
|
| 22 |
const [searchQuery, setSearchQuery] = useState("");
|
| 23 |
const [showPastConferences, setShowPastConferences] = useState(false);
|
|
|
|
| 24 |
|
| 25 |
// Dynamically generate category buttons from conference data
|
| 26 |
const categoryButtons = useMemo(() => {
|
|
@@ -58,6 +60,9 @@ const Index = () => {
|
|
| 58 |
// Filter by deadline (past/future) - use new deadline logic
|
| 59 |
if (!showPastConferences && !hasUpcomingDeadlines(conf)) return false;
|
| 60 |
|
|
|
|
|
|
|
|
|
|
| 61 |
// Filter by tags
|
| 62 |
const matchesTags = selectedTags.size === 0 ||
|
| 63 |
(Array.isArray(conf.tags) && conf.tags.some(tag => selectedTags.has(tag)));
|
|
@@ -76,7 +81,7 @@ const Index = () => {
|
|
| 76 |
|
| 77 |
// Use the proper sorting function that handles both deadline formats
|
| 78 |
return sortConferencesByDeadline(filtered);
|
| 79 |
-
}, [selectedTags, selectedCountries, searchQuery, showPastConferences]);
|
| 80 |
|
| 81 |
// Update handleTagsChange to handle multiple tags
|
| 82 |
const handleTagsChange = (newTags: Set<string>) => {
|
|
@@ -207,6 +212,27 @@ const Index = () => {
|
|
| 207 |
/>
|
| 208 |
</div>
|
| 209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
<div className="flex items-center gap-2 bg-white p-2 rounded-md shadow-sm">
|
| 211 |
<Popover>
|
| 212 |
<PopoverTrigger asChild>
|
|
|
|
| 10 |
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
|
| 11 |
import { Button } from "@/components/ui/button";
|
| 12 |
import { Checkbox } from "@/components/ui/checkbox";
|
| 13 |
+
import { X, ChevronRight, Filter, Globe, HelpCircle } from "lucide-react";
|
| 14 |
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";
|
| 15 |
import { getAllCountries } from "@/utils/countryExtractor";
|
| 16 |
import { getDeadlineInLocalTime } from "@/utils/dateUtils";
|
| 17 |
import { sortConferencesByDeadline } from "@/utils/conferenceUtils";
|
|
|
|
| 22 |
const [selectedCountries, setSelectedCountries] = useState<Set<string>>(new Set());
|
| 23 |
const [searchQuery, setSearchQuery] = useState("");
|
| 24 |
const [showPastConferences, setShowPastConferences] = useState(false);
|
| 25 |
+
const [showTopTierOnly, setShowTopTierOnly] = useState(true);
|
| 26 |
|
| 27 |
// Dynamically generate category buttons from conference data
|
| 28 |
const categoryButtons = useMemo(() => {
|
|
|
|
| 60 |
// Filter by deadline (past/future) - use new deadline logic
|
| 61 |
if (!showPastConferences && !hasUpcomingDeadlines(conf)) return false;
|
| 62 |
|
| 63 |
+
// Filter by top tier (ERA A-rated conferences)
|
| 64 |
+
if (showTopTierOnly && conf.era_rating !== 'a') return false;
|
| 65 |
+
|
| 66 |
// Filter by tags
|
| 67 |
const matchesTags = selectedTags.size === 0 ||
|
| 68 |
(Array.isArray(conf.tags) && conf.tags.some(tag => selectedTags.has(tag)));
|
|
|
|
| 81 |
|
| 82 |
// Use the proper sorting function that handles both deadline formats
|
| 83 |
return sortConferencesByDeadline(filtered);
|
| 84 |
+
}, [selectedTags, selectedCountries, searchQuery, showPastConferences, showTopTierOnly]);
|
| 85 |
|
| 86 |
// Update handleTagsChange to handle multiple tags
|
| 87 |
const handleTagsChange = (newTags: Set<string>) => {
|
|
|
|
| 212 |
/>
|
| 213 |
</div>
|
| 214 |
|
| 215 |
+
<div className="flex items-center gap-2 bg-white p-2 rounded-md shadow-sm">
|
| 216 |
+
<label htmlFor="top-tier-only" className="text-sm text-neutral-600 flex items-center gap-1">
|
| 217 |
+
Top tier only
|
| 218 |
+
<TooltipProvider>
|
| 219 |
+
<Tooltip>
|
| 220 |
+
<TooltipTrigger asChild>
|
| 221 |
+
<HelpCircle className="h-3.5 w-3.5 text-neutral-400 hover:text-neutral-600 cursor-help" />
|
| 222 |
+
</TooltipTrigger>
|
| 223 |
+
<TooltipContent side="top" className="max-w-xs">
|
| 224 |
+
<p>Filter on only conferences which have an ERA rating of A according to <a href="http://www.conferenceranks.com/" target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:underline">conferenceranks.com</a></p>
|
| 225 |
+
</TooltipContent>
|
| 226 |
+
</Tooltip>
|
| 227 |
+
</TooltipProvider>
|
| 228 |
+
</label>
|
| 229 |
+
<Switch
|
| 230 |
+
id="top-tier-only"
|
| 231 |
+
checked={showTopTierOnly}
|
| 232 |
+
onCheckedChange={setShowTopTierOnly}
|
| 233 |
+
/>
|
| 234 |
+
</div>
|
| 235 |
+
|
| 236 |
<div className="flex items-center gap-2 bg-white p-2 rounded-md shadow-sm">
|
| 237 |
<Popover>
|
| 238 |
<PopoverTrigger asChild>
|
src/types/conference.ts
CHANGED
|
@@ -35,4 +35,5 @@ export interface Conference {
|
|
| 35 |
commitment_deadline?: string;
|
| 36 |
paperslink?: string;
|
| 37 |
pwclink?: string;
|
|
|
|
| 38 |
}
|
|
|
|
| 35 |
commitment_deadline?: string;
|
| 36 |
paperslink?: string;
|
| 37 |
pwclink?: string;
|
| 38 |
+
era_rating?: string; // ERA rating (e.g., 'a', 'b', 'c')
|
| 39 |
}
|