From 001f7a2a165fade9deaafb4cb319aa27926685e5 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sun, 3 Aug 2025 12:01:38 +0200 Subject: [PATCH] fix: not hardcode hero banner scroll (#3741) --- .../manage/_components/hero-banner.tsx | 49 ++++++++----------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.tsx b/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.tsx index b9aec4e3a..f1f4ddf39 100644 --- a/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.tsx +++ b/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.tsx @@ -1,37 +1,16 @@ import { Box, Grid, GridCol, Group, Image, Stack, Title } from "@mantine/core"; import { splitToNChunks } from "@homarr/common"; +import { integrationDefs } from "@homarr/definitions"; import classes from "./hero-banner.module.css"; -const icons = [ - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/homarr.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/sabnzbd.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/deluge.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/radarr.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/sonarr.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/lidarr.svg", - "https://cdn.jsdelivr.net/gh/loganmarchione/homelab-svg-assets/assets/pihole.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/dashdot.png", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/overseerr.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plex.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/jellyfin.svg", - "https://cdn.jsdelivr.net/gh/loganmarchione/homelab-svg-assets/assets/homeassistant.svg", - "https://cdn.jsdelivr.net/gh/loganmarchione/homelab-svg-assets/assets/freshrss.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/readarr.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/transmission.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/qbittorrent.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nzbget.png", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/openmediavault.svg", - "https://cdn.jsdelivr.net/gh/loganmarchione/homelab-svg-assets/assets/docker.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/jellyseerr.svg", - "https://cdn.jsdelivr.net/gh/loganmarchione/homelab-svg-assets/assets/adguardhome.svg", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tdarr.png", - "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/prowlarr.svg", -]; +const icons = Object.values(integrationDefs) + .filter((int) => int.name !== "Mock") + .map((int) => int.iconUrl); const countIconGroups = 3; -const animationDurationInSeconds = 12; +const animationDurationInSeconds = icons.length; const arrayInChunks = splitToNChunks(icons, countIconGroups); export const HeroBanner = () => { @@ -61,12 +40,26 @@ export const HeroBanner = () => { }} > {arrayInChunks[columnIndex]?.map((icon, index) => ( - + ))} {/* This is used for making the animation seem seamless */} {arrayInChunks[columnIndex]?.map((icon, index) => ( - + ))}