From d584ade8f4a788b284071cb9d17b6d8b606098c8 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sun, 9 Mar 2025 14:20:23 +0100 Subject: [PATCH] fix(media-request-stats): improve responsive styles (#2544) * fix(media-request-stats): improve responsive styles * fix(media-request-stats): put user to start --- .../src/media-requests/stats/component.tsx | 153 ++++++++---------- 1 file changed, 70 insertions(+), 83 deletions(-) diff --git a/packages/widgets/src/media-requests/stats/component.tsx b/packages/widgets/src/media-requests/stats/component.tsx index 59be66653..87e7da8aa 100644 --- a/packages/widgets/src/media-requests/stats/component.tsx +++ b/packages/widgets/src/media-requests/stats/component.tsx @@ -1,11 +1,9 @@ "use client"; -import { ActionIcon, Avatar, Card, Grid, Group, Space, Stack, Text, Tooltip } from "@mantine/core"; -import { useElementSize } from "@mantine/hooks"; +import { Avatar, Card, Grid, Group, Stack, Text, Tooltip } from "@mantine/core"; import type { Icon } from "@tabler/icons-react"; import { IconDeviceTv, - IconExternalLink, IconHourglass, IconLoaderQuarter, IconMovie, @@ -28,6 +26,7 @@ import classes from "./component.module.css"; export default function MediaServerWidget({ integrationIds, isEditMode, + width, }: WidgetComponentProps<"mediaRequests-requestStats">) { const t = useScopedI18n("widget.mediaRequests-requestStats"); const [requestStats] = clientApi.widget.mediaRequests.getStats.useSuspenseQuery( @@ -41,8 +40,6 @@ export default function MediaServerWidget({ }, ); - const { width, height, ref } = useElementSize(); - const board = useRequiredBoard(); if (requestStats.users.length === 0 && requestStats.stats.length === 0) throw new NoIntegrationDataError(); @@ -90,94 +87,84 @@ export default function MediaServerWidget({ }, ] satisfies { name: keyof RequestStats; icon: Icon; number: number }[]; + const isTiny = width < 256; + return ( - - {t("titles.stats.main")} - - - {data.map((stat) => ( - - - - - - - {stat.number} - - - - - - ))} - - - {t("titles.users.main")} - - - {requestStats.users.slice(0, Math.max(Math.floor((height / width) * 5), 1)).map((user) => ( - - - - + + + {t("titles.stats.main")} + + + {data.map((stat) => ( + + + + + + + {stat.number} + + + - - - {user.displayName} + + ))} + + + + + {t("titles.users.main")} ({t("titles.users.requests")}) + + + {requestStats.users.slice(0, 10).map((user) => ( + + + + + + + + {user.displayName} + + + + + {user.requestCount} - - {`${t("titles.users.requests")}: ${user.requestCount}`} - - - - - - - - - ))} + + + ))} + );