nielsr HF Staff commited on
Commit
bb528f4
·
1 Parent(s): 0fc7363

Update deadlines

Browse files
README.md CHANGED
@@ -16,7 +16,7 @@ This helps researchers in quickly seeing when to submit their paper.
16
 
17
  Note: papers can be submitted at any time to [hf.co/papers](https://hf.co/papers) at [hf.co/papers/submit](https://hf.co/papers/submit), assuming the paper is available on [Arxiv](https://arxiv.org/).
18
 
19
- The benefit of hf.co/papers is that it allows people to quickly find related artifacts, such as models, datasets and demos. See [this paper page](https://huggingface.co/papers/2502.04328) as a nice example - it has 3 models, 1 dataset and 1 demo linked.
20
 
21
  ## Project info
22
 
 
16
 
17
  Note: papers can be submitted at any time to [hf.co/papers](https://hf.co/papers) at [hf.co/papers/submit](https://hf.co/papers/submit), assuming the paper is available on [Arxiv](https://arxiv.org/).
18
 
19
+ The benefit of [hf.co/papers](https://hf.co/papers) is that it allows people to quickly find related artifacts, such as models, datasets and demos. See [this paper page](https://huggingface.co/papers/2502.04328) as a nice example - it has 3 models, 1 dataset and 1 demo linked.
20
 
21
  ## Project info
22
 
src/data/conferences.yml CHANGED
@@ -68,8 +68,12 @@
68
  id: icassp26
69
  full_name: International Conference on Acoustics, Speech and Signal Processing
70
  link: https://2026.ieeeicassp.org
71
- deadline: '2025-09-17 23:59:59'
72
- timezone: UTC-12
 
 
 
 
73
  city: Barcelona
74
  country: Spain
75
  venue: Barcelona International Convention Center (CCIB), Barcelona, Spain
@@ -295,7 +299,11 @@
295
  id: icassp25
296
  full_name: International Conference on Acoustics, Speech and Signal Processing
297
  link: https://2025.ieeeicassp.org/
298
- deadline: '2024-09-09 23:59:59'
 
 
 
 
299
  timezone: UTC-12
300
  city: Hyderabad
301
  country: India
@@ -1061,7 +1069,11 @@
1061
  id: icra26
1062
  full_name: International Conference on Robotics and Automation
1063
  link: https://2026.ieee-icra.org/
1064
- deadline: '2025-09-15 23:59:59'
 
 
 
 
1065
  timezone: PST
1066
  city: Vienna
1067
  country: Austria
 
68
  id: icassp26
69
  full_name: International Conference on Acoustics, Speech and Signal Processing
70
  link: https://2026.ieeeicassp.org
71
+ deadlines:
72
+ - type: submission
73
+ label: Paper Submission
74
+ date: '2025-09-18 08:59:59'
75
+ timezone: GMT+02
76
+ timezone: GMT+02
77
  city: Barcelona
78
  country: Spain
79
  venue: Barcelona International Convention Center (CCIB), Barcelona, Spain
 
299
  id: icassp25
300
  full_name: International Conference on Acoustics, Speech and Signal Processing
301
  link: https://2025.ieeeicassp.org/
302
+ deadlines:
303
+ - type: submission
304
+ label: Paper Submission
305
+ date: '2025-09-18 08:59:59'
306
+ timezone: GMT+02
307
  timezone: UTC-12
308
  city: Hyderabad
309
  country: India
 
1069
  id: icra26
1070
  full_name: International Conference on Robotics and Automation
1071
  link: https://2026.ieee-icra.org/
1072
+ deadlines:
1073
+ - type: submission
1074
+ label: Paper Submission
1075
+ date: '2025-09-15 23:59:59'
1076
+ timezone: GMT-08
1077
  timezone: PST
1078
  city: Vienna
1079
  country: Austria
src/pages/Index.tsx CHANGED
@@ -14,6 +14,7 @@ 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";
 
17
 
18
  const Index = () => {
19
  const [selectedTags, setSelectedTags] = useState<Set<string>>(new Set());
@@ -43,12 +44,10 @@ const Index = () => {
43
  return [];
44
  }
45
 
46
- return conferencesData
47
  .filter((conf: Conference) => {
48
- // Filter by deadline (past/future)
49
- const deadlineDate = conf.deadline && conf.deadline !== 'TBD' ? parseISO(conf.deadline) : null;
50
- const isUpcoming = !deadlineDate || !isValid(deadlineDate) || !isPast(deadlineDate);
51
- if (!showPastConferences && !isUpcoming) return false;
52
 
53
  // Filter by tags
54
  const matchesTags = selectedTags.size === 0 ||
@@ -64,22 +63,10 @@ const Index = () => {
64
  (conf.full_name && conf.full_name.toLowerCase().includes(searchQuery.toLowerCase()));
65
 
66
  return matchesTags && matchesCountry && matchesSearch;
67
- })
68
- .sort((a: Conference, b: Conference) => {
69
- const aDeadline = getDeadlineInLocalTime(a.deadline, a.timezone);
70
- const bDeadline = getDeadlineInLocalTime(b.deadline, b.timezone);
71
-
72
- if (aDeadline && bDeadline) {
73
- return aDeadline.getTime() - bDeadline.getTime();
74
- }
75
-
76
- // Handle cases where one or both deadlines are invalid
77
- if (!aDeadline && !bDeadline) return 0;
78
- if (!aDeadline) return 1;
79
- if (!bDeadline) return -1;
80
-
81
- return 0;
82
  });
 
 
 
83
  }, [selectedTags, selectedCountries, searchQuery, showPastConferences]);
84
 
85
  // Update handleTagsChange to handle multiple tags
 
14
  import { getAllCountries } from "@/utils/countryExtractor";
15
  import { getDeadlineInLocalTime } from "@/utils/dateUtils";
16
  import { sortConferencesByDeadline } from "@/utils/conferenceUtils";
17
+ import { hasUpcomingDeadlines } from "@/utils/deadlineUtils";
18
 
19
  const Index = () => {
20
  const [selectedTags, setSelectedTags] = useState<Set<string>>(new Set());
 
44
  return [];
45
  }
46
 
47
+ const filtered = conferencesData
48
  .filter((conf: Conference) => {
49
+ // Filter by deadline (past/future) - use new deadline logic
50
+ if (!showPastConferences && !hasUpcomingDeadlines(conf)) return false;
 
 
51
 
52
  // Filter by tags
53
  const matchesTags = selectedTags.size === 0 ||
 
63
  (conf.full_name && conf.full_name.toLowerCase().includes(searchQuery.toLowerCase()));
64
 
65
  return matchesTags && matchesCountry && matchesSearch;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  });
67
+
68
+ // Use the proper sorting function that handles both deadline formats
69
+ return sortConferencesByDeadline(filtered);
70
  }, [selectedTags, selectedCountries, searchQuery, showPastConferences]);
71
 
72
  // Update handleTagsChange to handle multiple tags
src/utils/dateUtils.ts CHANGED
@@ -22,13 +22,21 @@ export const getDeadlineInLocalTime = (deadline: string | undefined, timezone: s
22
  // Handle AoE (Anywhere on Earth) timezone
23
  if (tz === 'AoE') return '-12:00';
24
 
 
 
 
 
 
 
 
 
25
  // If it's already an IANA timezone, return as is
26
- if (!tz.toUpperCase().startsWith('UTC')) return tz;
27
 
28
  // Convert UTC±XX to proper format
29
- const match = tz.match(/^UTC([+-])(\d+)$/);
30
- if (match) {
31
- const [, sign, hours] = match;
32
  const paddedHours = hours.padStart(2, '0');
33
  return `${sign}${paddedHours}:00`;
34
  }
 
22
  // Handle AoE (Anywhere on Earth) timezone
23
  if (tz === 'AoE') return '-12:00';
24
 
25
+ // Handle GMT±XX format
26
+ const gmtMatch = tz.match(/^GMT([+-])(\d+)$/);
27
+ if (gmtMatch) {
28
+ const [, sign, hours] = gmtMatch;
29
+ const paddedHours = hours.padStart(2, '0');
30
+ return `${sign}${paddedHours}:00`;
31
+ }
32
+
33
  // If it's already an IANA timezone, return as is
34
+ if (!tz.toUpperCase().startsWith('UTC') && !tz.toUpperCase().startsWith('GMT')) return tz;
35
 
36
  // Convert UTC±XX to proper format
37
+ const utcMatch = tz.match(/^UTC([+-])(\d+)$/);
38
+ if (utcMatch) {
39
+ const [, sign, hours] = utcMatch;
40
  const paddedHours = hours.padStart(2, '0');
41
  return `${sign}${paddedHours}:00`;
42
  }