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 && (
+
+ )}
);
};