From 70dc9f30aedd26d06acb64c557b08314a805216c Mon Sep 17 00:00:00 2001 From: Andrew Khadder Date: Wed, 1 Nov 2023 12:10:37 -0700 Subject: [PATCH 1/2] added arrow key shortcuts --- .../dynamic/admin/services/calendar/Events.jsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components/dynamic/admin/services/calendar/Events.jsx b/src/components/dynamic/admin/services/calendar/Events.jsx index 18325c409..26c741948 100644 --- a/src/components/dynamic/admin/services/calendar/Events.jsx +++ b/src/components/dynamic/admin/services/calendar/Events.jsx @@ -25,6 +25,20 @@ const CalendarEvents = () => { case "w": setView("week"); break; + case "ArrowRight": + if (view === "month") { + setDate(new Date(date.setMonth(date.getMonth() + 1))); + } else if (view === "week") { + setDate(new Date(date.setDate(date.getDate() + 7))); + } + break; + case "ArrowLeft": + if (view === "month") { + setDate(new Date(date.setMonth(date.getMonth() - 1))); + } else if (view === "week") { + setDate(new Date(date.setDate(date.getDate() - 7))); + } + break; } }; @@ -49,7 +63,7 @@ const CalendarEvents = () => { }); document.addEventListener("keydown", handleShortcuts); return () => document.removeEventListener("keydown", handleShortcuts); - }, []); + }, [view]); return (
From 2f1ccf2e4d812c71ec000750a4c65722a1a581b8 Mon Sep 17 00:00:00 2001 From: Andrew Khadder Date: Wed, 8 Nov 2023 23:01:46 -0800 Subject: [PATCH 2/2] moved arrow key shortcuts to toolbar --- .../dynamic/admin/services/calendar/Events.jsx | 16 +--------------- .../dynamic/admin/services/calendar/Toolbar.jsx | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/components/dynamic/admin/services/calendar/Events.jsx b/src/components/dynamic/admin/services/calendar/Events.jsx index 62b7364f8..535e5f567 100644 --- a/src/components/dynamic/admin/services/calendar/Events.jsx +++ b/src/components/dynamic/admin/services/calendar/Events.jsx @@ -25,20 +25,6 @@ const CalendarEvents = () => { case "w": setView("week"); break; - case "ArrowRight": - if (view === "month") { - setDate(new Date(date.setMonth(date.getMonth() + 1))); - } else if (view === "week") { - setDate(new Date(date.setDate(date.getDate() + 7))); - } - break; - case "ArrowLeft": - if (view === "month") { - setDate(new Date(date.setMonth(date.getMonth() - 1))); - } else if (view === "week") { - setDate(new Date(date.setDate(date.getDate() - 7))); - } - break; } }; @@ -72,7 +58,7 @@ const CalendarEvents = () => { document.addEventListener("keydown", handleShortcuts); return () => document.removeEventListener("keydown", handleShortcuts); - }, [view]); + }, []); return (
diff --git a/src/components/dynamic/admin/services/calendar/Toolbar.jsx b/src/components/dynamic/admin/services/calendar/Toolbar.jsx index 7ea83a83b..0c32f65d3 100644 --- a/src/components/dynamic/admin/services/calendar/Toolbar.jsx +++ b/src/components/dynamic/admin/services/calendar/Toolbar.jsx @@ -2,6 +2,7 @@ import { LABELS } from "@/data/dynamic/admin/Calendar.js"; import Tag from "../../Tag.jsx"; import { COLORS } from "@/data/dynamic/Tags.js"; import { FaChevronLeft, FaChevronRight } from "react-icons/fa6"; +import { useEffect } from "react"; const CustomToolbar = ({ onView, @@ -36,6 +37,22 @@ const CustomToolbar = ({ } }; + const handleShortcuts = (e) => { + switch (e.key) { + case "ArrowRight": + onNavigate("NEXT"); + break; + case "ArrowLeft": + onNavigate("PREV"); + break; + } + }; + + useEffect(() => { + document.addEventListener("keydown", handleShortcuts); + return () => document.removeEventListener("keydown", handleShortcuts); + }, []); + return (