-
+
-

+

Privacy Policy

@@ -50,14 +52,14 @@ const PrivacyPolicyPage = () => { Privacy Policiy Pana Illustration

-
-
+
+

Overview

  • @@ -193,7 +195,9 @@ const PrivacyPolicyPage = () => { {" "} for more info on how to opt out.

    -

    Cookies and other tracking technologies

    +

    + Cookies and other tracking technologies +

    • Cookies are small text files that websites place on the computers @@ -220,7 +224,10 @@ const PrivacyPolicyPage = () => { improve the user experience, manage the content on our Sites, and analyze how users navigate and use the Sites.

      Third-party service providers we may use include{" "} - + Google Analytics ,{" "} @@ -233,21 +240,28 @@ const PrivacyPolicyPage = () => { .

      -

      How to opt-out of the use of cookies

      +

      + How to opt-out of the use of cookies +

      Most browsers are initially set up to accept HTTP cookies. If you want to restrict or block the cookies that are set by our Site, or any other site, you can do so through your browser setting. The ‘Help’ function in your browser should explain how. Alternatively, you can visit{" "} - + www.aboutcookies.org , which contains comprehensive information on how to do this on a wide variety of browsers. You will find general information about cookies and details on how to delete cookies from your machine.

      -

      As required by law and similar disclosures

      +

      + As required by law and similar disclosures +

      • We may access, preserve, and disclose your information if we @@ -312,7 +326,9 @@ const PrivacyPolicyPage = () => { security or privacy of your information.
      -

      Right to be forgotten and rectification

      +

      + Right to be forgotten and rectification +

      • You may request that we make corrections to any personal data that @@ -344,7 +360,10 @@ const PrivacyPolicyPage = () => {

        If you have any questions, comments, concerns, or complaints related to our Review Tool websites, please contact us by email at{" "} - + privacy@hackforla.org , or by mail at: diff --git a/frontend/src/pages/QualifierPage/QualifierComponents.tsx b/frontend/src/pages/QualifierPage/QualifierComponents.tsx index 928cef4c..f2ec08d5 100644 --- a/frontend/src/pages/QualifierPage/QualifierComponents.tsx +++ b/frontend/src/pages/QualifierPage/QualifierComponents.tsx @@ -13,7 +13,7 @@ function QualifierTitle({ children, title }: QualifierTitleProps) { return (

        {title}

        -

        {children}

        +

        {children}

        ); } diff --git a/frontend/src/pages/QualifierPage/QualifierPage.tsx b/frontend/src/pages/QualifierPage/QualifierPage.tsx index 38882a61..d8cda37e 100644 --- a/frontend/src/pages/QualifierPage/QualifierPage.tsx +++ b/frontend/src/pages/QualifierPage/QualifierPage.tsx @@ -1,19 +1,12 @@ // External Imports -import React, { Fragment, Suspense } from "react"; -import { Outlet, useLoaderData } from "react-router-dom"; +import React from "react"; +import { useParams } from "react-router-dom"; // Internal Imports import { ProgressBar } from "components/components"; - -// Lazy Imports -const QualifierPageRoles = React.lazy(() => import("./QualifierPageRoles")); -const QualifierPageCalendar = React.lazy( - () => import("./QualifierPageCalendar") -); - -function loader({ params }: any) { - return params.page; -} +import { QualifiersProvider } from "context/QualifiersContext"; +import { QualifierPageRoles } from "./QualifierPageRoles"; +import { QualifierPageCalendar } from "./QualifierPageCalendar"; function Content({ page }: { page: string }) { switch (page) { @@ -22,39 +15,32 @@ function Content({ page }: { page: string }) { case "2": return ; default: - return
        404 page...
        ; + throw new Error("Page not found"); } } -function QualifierContent() { - const page = useLoaderData() as string; +function QualifierPage() { + let { page } = useParams(); + if (!page) { + page = "1"; + } return ( - - -
        -
        - + +
        + +
        +
        + +
        -
        {" "} - - ); -} - -function QualifierPage() { - return ( - - ...Loading
        }> -
        - -
        - -
        + + ); } -export { QualifierPage, QualifierContent, loader }; +export default QualifierPage; diff --git a/frontend/src/pages/QualifierPage/QualifierPageCalendar.tsx b/frontend/src/pages/QualifierPage/QualifierPageCalendar.tsx index 5c53b5ee..d4001690 100644 --- a/frontend/src/pages/QualifierPage/QualifierPageCalendar.tsx +++ b/frontend/src/pages/QualifierPage/QualifierPageCalendar.tsx @@ -13,8 +13,11 @@ import { import { QualifierNav, QualifierTitle } from "./QualifierComponents"; import { timezones } from "../../api_data/timezoneData"; import { iconArrowLeft } from "assets/images/images"; +// import { useQualifiersContext } from "context/QualifiersContext"; function QualifierPageCalendar() { + // const {qualifiers} = useQualifiersContext(); + // console.log(qualifiers); const navigate = useNavigate(); return ( @@ -35,7 +38,7 @@ function QualifierPageCalendar() { navigate("../1")} + onClick={() => navigate("../1", { relative: "path" })} /> ); -} - -interface CopRolesProps { - copDatum: copDatum; -} - -function CopRoles({ copDatum }: CopRolesProps) { - const [isAllSelected, setIsAllSelected] = useState(false); - const [isRoleChecked, setIsRoleChecked] = useState( - Array(copDatum.roles.length).fill(false) - ); - - function handleSelectAll() { - const copy = isRoleChecked.map((_) => !isAllSelected); - setIsRoleChecked(copy); - setIsAllSelected(!isAllSelected); - } - - return ( -
        -
        -
        -
        -
        - onKey(handleSelectAll, "Enter")(e)} - > - {isAllSelected ? "Deselect all" : "Select all"} - -
        -
        - {copDatum.roles.map((role, index) => { - return ( - { - const copy = [...isRoleChecked]; - copy[index] = active; - setIsRoleChecked(copy); - console.log(isRoleChecked); - }} - /> - ); - })} -
        -
        -
        - ); -} +}; -export default QualifierPageRoles; +export { QualifierPageRoles }; diff --git a/frontend/src/pages/QualifierPage/_QualifierComponents.scss b/frontend/src/pages/QualifierPage/_QualifierComponents.scss index cfd715bb..aa5f529c 100644 --- a/frontend/src/pages/QualifierPage/_QualifierComponents.scss +++ b/frontend/src/pages/QualifierPage/_QualifierComponents.scss @@ -1,4 +1,4 @@ -@use "components/Basics/" as *; +@use "@/components/Basics" as *; .qualifier-nav { background-color: $color-white; diff --git a/frontend/src/pages/QualifierPage/_QualifierPage.scss b/frontend/src/pages/QualifierPage/_QualifierPage.scss index 0d38ff17..be33262a 100644 --- a/frontend/src/pages/QualifierPage/_QualifierPage.scss +++ b/frontend/src/pages/QualifierPage/_QualifierPage.scss @@ -1,4 +1,4 @@ -@use "components/Basics/" as *; +@use "@/components/Basics" as *; // Main Page .qualifier-content { diff --git a/frontend/src/router/Router.tsx b/frontend/src/router/Router.tsx index 00178845..5893b8f9 100644 --- a/frontend/src/router/Router.tsx +++ b/frontend/src/router/Router.tsx @@ -8,20 +8,22 @@ import { Demo } from "pages/Demo/Demo"; import DemoTailwind from "pages/Demo/DemoTailwind"; import { NotFoundPage } from "pages/NotFoundPage/NotFoundPage"; import { LandingPage } from "pages/LandingPage/LandingPage"; -import { - QualifierPage, - QualifierContent, - loader as qualifierLoader, -} from "pages/QualifierPage/QualifierPage"; import AuthenticationPage from "pages/Authentication/page"; import HomeLayout from "layouts/HomeLayout"; import DefaultNavLayout from "layouts/DefaultNavLayout"; import PrivacyPolicyPage from "pages/PrivacyPolicyPage/PrivacyPolicyPage"; +// TODO: fix lazy loading +/* const QualifierPage = lazy( + () => import("../pages/QualifierPage/QualifierPage"), +); */ +import QualifierPage from "pages/QualifierPage/QualifierPage"; + const router = createBrowserRouter([ { path: "/", element: , + errorElement: , children: [ { path: "/", @@ -32,15 +34,13 @@ const router = createBrowserRouter([ element: , }, { - path: "qualifier", + path: "qualifier/:page", + /* element: ( + ...loading
}> + + + ), */ element: , - children: [ - { - path: ":page", - element: , - loader: qualifierLoader, - }, - ], }, { path: "credits", @@ -54,13 +54,9 @@ const router = createBrowserRouter([ path: "demo-tailwind", element: , }, - { - path: "*", - element: , - }, { path: "privacypolicy", - element: , + element: , }, ], }, diff --git a/frontend/src/tw-components/AuthNav.tsx b/frontend/src/tw-components/AuthNav.tsx index c188b51a..6624f9ac 100644 --- a/frontend/src/tw-components/AuthNav.tsx +++ b/frontend/src/tw-components/AuthNav.tsx @@ -21,8 +21,8 @@ function AuthNav() { }; return ( -
-
+
+
Back to home arrow diff --git a/frontend/src/tw-components/CookieBanner.tsx b/frontend/src/tw-components/CookieBanner.tsx index 5a2fcc1e..a41bf804 100644 --- a/frontend/src/tw-components/CookieBanner.tsx +++ b/frontend/src/tw-components/CookieBanner.tsx @@ -1,6 +1,7 @@ +/* eslint-disable react/no-unescaped-entities */ // External Imports import React, { useState } from "react"; -import Cookies from 'js-cookie'; +import Cookies from "js-cookie"; // Internal Imports import { IconButton } from "components/components"; @@ -9,47 +10,62 @@ import { iconX } from "assets/images/images"; interface CookieBannerProps extends React.PropsWithChildren {} function CookieBanner(props: CookieBannerProps) { - const [hidden, setIsHidden] = useState(Cookies.get('cookieConsent') !== undefined); + const [hidden, setIsHidden] = useState( + Cookies.get("cookieConsent") !== undefined, + ); const handleAcceptCookies = () => { - Cookies.set('cookieConsent', 'true', { expires: 365}) - setIsHidden(true) - } + Cookies.set("cookieConsent", "true", { expires: 365 }); + setIsHidden(true); + }; const handleDeclineCookies = () => { - Cookies.set('cookieConsent', 'false', { expires: 365}) - setIsHidden(true) - } + Cookies.set("cookieConsent", "false", { expires: 365 }); + setIsHidden(true); + }; return (