From 1a1fab3f58a8459c3327e2e085e235ad732560e4 Mon Sep 17 00:00:00 2001
From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com>
Date: Fri, 27 Jun 2025 23:39:28 -0700
Subject: [PATCH] =?UTF-8?q?Resources=20Seite=20f=C3=BCr=20Desktop-client?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../app/(app)/resources/_components/Card.tsx | 43 ++++++++++++++++
.../resources/_components/desktop-client.png | Bin 0 -> 51285 bytes
apps/hub/app/(app)/resources/page.tsx | 18 +++++++
apps/hub/app/(auth)/passwort-reset/action.ts | 19 ++++---
apps/hub/app/_components/Nav.tsx | 7 +++
apps/hub/app/api/auth/[...nextauth]/auth.ts | 45 +---------------
apps/hub/types/oldUser.ts | 48 ++++++++++++++++++
7 files changed, 131 insertions(+), 49 deletions(-)
create mode 100644 apps/hub/app/(app)/resources/_components/Card.tsx
create mode 100644 apps/hub/app/(app)/resources/_components/desktop-client.png
create mode 100644 apps/hub/app/(app)/resources/page.tsx
diff --git a/apps/hub/app/(app)/resources/_components/Card.tsx b/apps/hub/app/(app)/resources/_components/Card.tsx
new file mode 100644
index 00000000..481ea283
--- /dev/null
+++ b/apps/hub/app/(app)/resources/_components/Card.tsx
@@ -0,0 +1,43 @@
+import { Download } from "lucide-react";
+import Image, { StaticImageData } from "next/image";
+import { ReactNode } from "react";
+
+type ResourceCardProps = {
+ title?: string;
+ description?: string;
+ btnLabel?: string;
+ imageAlt?: string;
+ image?: StaticImageData;
+ btnHref?: string;
+ BtnIcon: ReactNode;
+};
+
+export default function ResourceCard({
+ title,
+ BtnIcon,
+ description,
+ btnLabel: downloadLabel,
+ imageAlt,
+ image,
+ btnHref: downloadHref,
+}: ResourceCardProps) {
+ return (
+
+
+ {image && (
+
+
+
+ )}
+
+
+
+ );
+}
diff --git a/apps/hub/app/(app)/resources/_components/desktop-client.png b/apps/hub/app/(app)/resources/_components/desktop-client.png
new file mode 100644
index 0000000000000000000000000000000000000000..7bc1e7dbd544359d9e8278c3e01d83576fc7b7e3
GIT binary patch
literal 51285
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