diff --git a/next.config.ts b/next.config.ts
index 9712f9d..223de60 100644
--- a/next.config.ts
+++ b/next.config.ts
@@ -10,8 +10,22 @@ const nextConfig: NextConfig = {
port: '54321',
pathname: '/storage/v1/**',
},
+ {
+ protocol: 'https',
+ hostname: 'euma9sxl9y.ufs.sh',
+ pathname: '/f/**',
+ }
],
},
+ redirects: async () => {
+ return [
+ {
+ source: '/img/badge-dark.png',
+ destination: 'https://euma9sxl9y.ufs.sh/f/zxX0gGr1fg9cnaso9bhNGy79goWrVw5OTBFjMdbiXvASpLRE',
+ permanent: false,
+ },
+ ];
+ },
turbopack: {
resolveExtensions: ['.mdx', '.md', '.tsx', '.ts', '.jsx', '.js', '.mjs', '.json'],
rules: {
diff --git a/src/app/hack/[slug]/page.tsx b/src/app/hack/[slug]/page.tsx
index 29c72d6..f718b62 100644
--- a/src/app/hack/[slug]/page.tsx
+++ b/src/app/hack/[slug]/page.tsx
@@ -12,6 +12,7 @@ import PokeCommunityIcon from "@/components/Icons/PokeCommunityIcon";
import { createClient, createServiceClient } from "@/utils/supabase/server";
import HackOptionsMenu from "@/components/Hack/HackOptionsMenu";
import DownloadsBadge from "@/components/Hack/DownloadsBadge";
+import HackShareButton from "@/components/Hack/HackShareButton";
import type { CreativeWork, WithContext } from "schema-dts";
import serialize from "serialize-javascript";
import { headers } from "next/headers";
@@ -339,6 +340,11 @@ export default async function HackDetail({ params }: HackDetailProps) {
{patchVersion || "Pre-release"}
+ {!isArchive && (
+
+
+
+ )}
By {isArchive ? (hack.original_author || "Unknown") : author}
{hack.summary}
@@ -352,7 +358,12 @@ export default async function HackDetail({ params }: HackDetailProps) {
))}
- {!isArchive &&
}
+ {!isArchive && (
+
+
+
+ )}
+
{isAdmin && !hack.approved && (