-
- {/* Status Bar configuration for Android devices */}
-
- {/* Status Bar configuration for IOS devices */}
-
-
- {/* Open/Close Sidebar Button */}
-
setIsOpen(!isOpen)}
- >
-
-
-
-
+
+
+
+ {/* Status Bar configuration for Android devices */}
+
+ {/* Status Bar configuration for IOS devices */}
+
+
+ {/* Open/Close Sidebar Button */}
+
setIsOpen(!isOpen)}
+ >
+
+
+
+
- {/* Notification Badges */}
-
+ {/* Notification Badges */}
+
- {/* Calendarium Logo */}
-
-
-
-
-
+ {/* Calendarium Logo */}
+
-
- {/* Sidebar */}
-
-
-
+ {/* Sidebar */}
+
+
+
- {/* Feedback Button */}
-
-
window.open("https://forms.gle/C2uxuUKqoeqMWfcZ6")}
- className={styles.buttonBug}
+ {/* Feedback Button */}
+
+ window.open("https://forms.gle/C2uxuUKqoeqMWfcZ6")}
+ className={styles.buttonBug}
+ >
+
+
+
- {/* Children */}
-
- {children}
-
-
+ {/* Children */}
+
+ {children}
+
+
+
);
};
diff --git a/components/ScheduleFilters/ScheduleFilters.tsx b/components/ScheduleFilters/ScheduleFilters.tsx
index 9c1b3381..05ea9cff 100644
--- a/components/ScheduleFilters/ScheduleFilters.tsx
+++ b/components/ScheduleFilters/ScheduleFilters.tsx
@@ -1,25 +1,26 @@
import { useCallback, useEffect } from "react";
-import { IFilterDTO } from "../../dtos";
+import { IFilterDTO, ISelectedFilterDTO } from "../../dtos";
import FilterBlock from "../FilterBlock";
-import { CheckBoxProps, SelectedShift } from "../../types";
+import { CheckBoxProps } from "../../types";
+import { useAppInfo } from "../../contexts/AppInfoProvider";
interface ISelectScheduleProps {
- filters: IFilterDTO[];
- handleFilters: (selectedFilter: SelectedShift[]) => void;
clearSchedule: boolean;
- checked: number[] | SelectedShift[];
- setChecked: (obj: number[] | SelectedShift[]) => void;
+ checked: number[] | ISelectedFilterDTO[];
+ setChecked: (obj: number[] | ISelectedFilterDTO[]) => void;
}
const ScheduleFilters = ({
- filters,
- handleFilters,
clearSchedule,
checked,
setChecked,
}: ISelectScheduleProps) => {
+ const info = useAppInfo();
+ const filters = info.filters as IFilterDTO[];
+ const handleFilters = info.handleFilters;
+
useEffect(() => {
const stored = JSON.parse(localStorage.getItem("shifts")) ?? [];
setChecked(stored);
@@ -29,8 +30,8 @@ const ScheduleFilters = ({
const clearSelection = useCallback(() => {
setChecked([]);
localStorage.setItem("shifts", JSON.stringify([]));
- handleFilters([]);
- }, [handleFilters, setChecked]);
+ info.handleFilters([]);
+ }, [info, setChecked]);
useEffect(() => {
clearSchedule && clearSelection();
@@ -113,8 +114,7 @@ const ScheduleFilters = ({
layer2={semesters}
checkBoxes={getCheckBoxes().slice(0, 6)}
checked={checked}
- setChecked={setChecked as (v: SelectedShift[]) => void}
- handleFilters={handleFilters}
+ setChecked={setChecked as (v: ISelectedFilterDTO[]) => void}
isShifts
/>
{/* MEI */}
@@ -123,8 +123,7 @@ const ScheduleFilters = ({
layer2={semesters}
checkBoxes={getCheckBoxes().slice(6, 9)}
checked={checked}
- setChecked={setChecked as (v: SelectedShift[]) => void}
- handleFilters={handleFilters}
+ setChecked={setChecked as (v: ISelectedFilterDTO[]) => void}
isShifts
/>
>
diff --git a/components/Settings/Settings.tsx b/components/Settings/Settings.tsx
index 14d5dc6d..b1d8b4cd 100644
--- a/components/Settings/Settings.tsx
+++ b/components/Settings/Settings.tsx
@@ -6,35 +6,19 @@ import DarkModeToggler from "../DarkModeToggler";
import { BeforeInstallPromptEvent } from "../../types";
type SettingsProps = {
- saveTheme: () => void;
- filters: IFilterDTO[];
isOpen: boolean;
setIsOpen: (isOpen: boolean) => void;
- isHome: boolean;
installPwaPrompt: BeforeInstallPromptEvent;
};
-const Settings = ({
- saveTheme,
- filters,
- isOpen,
- setIsOpen,
- isHome,
- installPwaPrompt,
-}: SettingsProps) => {
+const Settings = ({ isOpen, setIsOpen, installPwaPrompt }: SettingsProps) => {
return (
{/* Title */}
Settings
{/* Configs */}
-
+
diff --git a/components/ShareButton/ShareButton.tsx b/components/ShareButton/ShareButton.tsx
index abdea1e7..61c0314f 100644
--- a/components/ShareButton/ShareButton.tsx
+++ b/components/ShareButton/ShareButton.tsx
@@ -1,24 +1,14 @@
import { useState } from "react";
-
import ShareModal from "../ShareModal";
-
-import { IFilterDTO } from "../../dtos";
-
-import { SelectedShift } from "../../types";
+import { ISelectedFilterDTO } from "../../dtos";
+import { useAppInfo } from "../../contexts/AppInfoProvider";
type ShareButtonProps = {
- isHome: boolean;
- filters: IFilterDTO[];
- handleFilters: any;
- setChecked: (obj: number[] | SelectedShift[]) => void;
+ setChecked: (obj: number[] | ISelectedFilterDTO[]) => void;
};
-const ShareButton = ({
- isHome,
- filters,
- handleFilters,
- setChecked,
-}: ShareButtonProps) => {
+const ShareButton = ({ setChecked }: ShareButtonProps) => {
+ const info = useAppInfo();
const [isModalOpen, setIsModalOpen] = useState
(false);
return (
@@ -28,7 +18,7 @@ const ShareButton = ({
title="Share"
onClick={() => setIsModalOpen(true)}
data-umami-event="share-button"
- data-umami-event-type={isHome ? "events" : "shifts"}
+ data-umami-event-type={info.isEvents ? "events" : "shifts"}
>
@@ -36,9 +26,6 @@ const ShareButton = ({
diff --git a/components/ShareModal/ShareModal.tsx b/components/ShareModal/ShareModal.tsx
index 28e61791..61b03a77 100644
--- a/components/ShareModal/ShareModal.tsx
+++ b/components/ShareModal/ShareModal.tsx
@@ -2,34 +2,26 @@ import { Backdrop, Box, Fade, Modal } from "@mui/material";
import { useCallback, useEffect, useState } from "react";
-import { IFilterDTO } from "../../dtos";
-
-import { SelectedShift } from "../../types";
+import { IFilterDTO, ISelectedFilterDTO } from "../../dtos";
import { Collapse } from "antd";
+import { useAppInfo } from "../../contexts/AppInfoProvider";
type ShareModalProps = {
isOpen: boolean;
setIsOpen: (isOpen: boolean) => void;
- isHome: boolean;
- filters: IFilterDTO[];
- handleFilters: any;
- setChecked: (obj: number[] | SelectedShift[]) => void;
+ setChecked: (obj: number[] | ISelectedFilterDTO[]) => void;
};
-const ShareModal = ({
- isOpen,
- setIsOpen,
- isHome,
- filters,
- handleFilters,
- setChecked,
-}: ShareModalProps) => {
+const ShareModal = ({ isOpen, setIsOpen, setChecked }: ShareModalProps) => {
const [code, setCode] = useState