diff --git a/apps/infoalloggi/src/components/Layout.tsx b/apps/infoalloggi/src/components/Layout.tsx index 0505412..4eb4676 100644 --- a/apps/infoalloggi/src/components/Layout.tsx +++ b/apps/infoalloggi/src/components/Layout.tsx @@ -5,7 +5,7 @@ import { SIDEBAR_COOKIE_NAME, Sidebar, } from "~/components/area-riservata/sidebar"; -import { BannerFactory } from "~/components/banners"; +import { BannerSection } from "~/components/banners"; import { Footer } from "~/components/footer"; import { LoadingPage } from "~/components/loading"; import { SiteHeader } from "~/components/navbar/site-header"; @@ -16,7 +16,6 @@ import { useSession, } from "~/providers/SessionProvider"; import type { UsersId } from "~/schemas/public/Users"; -import { api } from "~/utils/api"; import { UserViewHeader } from "./area-riservata/userViewHeader"; interface Props { @@ -33,18 +32,16 @@ export const Layout = ({ containerClassName, footerClassName, }: Props) => { - const { data: bannerData } = api.banners.getBannerData.useQuery({ - area_riservata: false, - }); - return ( -
+
- {bannerData?.map((banner) => ( -
- {BannerFactory(banner)} -
- ))} + +
@@ -69,9 +66,6 @@ export const AreaRiservataLayout = ({ bodyClassName, containerClassName, }: AreaRiservataLayoutProps) => { - const { data: bannerData } = api.banners.getBannerData.useQuery({ - area_riservata: true, - }); const { status, user } = useSession(); if (!ignoreSessionCheck) { if (status === "LOADING") @@ -151,11 +145,7 @@ export const AreaRiservataLayout = ({ )} > - {bannerData?.map((banner) => ( -
- {BannerFactory(banner)} -
- ))} +
diff --git a/apps/infoalloggi/src/components/banners.tsx b/apps/infoalloggi/src/components/banners.tsx index e7bac51..e12a7e1 100644 --- a/apps/infoalloggi/src/components/banners.tsx +++ b/apps/infoalloggi/src/components/banners.tsx @@ -6,9 +6,30 @@ import { type MouseEvent, useEffect, useRef, useState } from "react"; import { IconMatrix, type IconType } from "~/components/IconComponents"; import { cn } from "~/lib/utils"; import type { Banners } from "~/schemas/public/Banners"; +import { api } from "~/utils/api"; const defaultHideDuration = 365; // days -export const BannerFactory = (bannerData: Banners) => { + +export const BannerSection = ({ + area_riservata, +}: { + area_riservata: boolean; +}) => { + const { data: bannerData } = api.banners.getBannerData.useQuery({ + area_riservata, + }); + if (!bannerData) return null; + return ( +
+ {bannerData.map((banner) => ( +
+ {BannerFactory(banner)} +
+ ))} +
+ ); +}; +const BannerFactory = (bannerData: Banners) => { const NEW_BANNER_KEY = `bannercookie_${bannerData.idbanner}`; let bgColor = ""; @@ -68,49 +89,52 @@ export const BannerFactory = (bannerData: Banners) => { return null; } return ( -
-
-
-
- {bannerData.titolo}{" "} -
-

- {bannerData.testo} - - {bannerData.has_cta && - bannerData.cta_href && - bannerData.cta_icon && ( - - {bannerData.cta_text} - - - )} -

+
+
+
+ {bannerData.titolo}{" "}
- {bannerData.is_unskippable === false && ( - - )} +

+ {bannerData.is_unskippable === false && ( + + )}
); };