diff --git a/sites/sh1pt.com/app/components/PitFooter.tsx b/sites/sh1pt.com/app/components/PitFooter.tsx new file mode 100644 index 00000000..a8f55b5d --- /dev/null +++ b/sites/sh1pt.com/app/components/PitFooter.tsx @@ -0,0 +1,21 @@ +/** + * The pit.world network footer, fetched on the server and rendered as the last + * thing in
. Cached for an hour; any failure (timeout, non-200, odd body) + * renders nothing so the page never breaks. + */ +const PIT_FOOTER_URL = 'https://pit.world/snippets/footer.html?site=sh1pt.com'; + +export default async function PitFooter() { + try { + const res = await fetch(PIT_FOOTER_URL, { + next: { revalidate: 3600 }, + signal: AbortSignal.timeout(3000), + }); + if (!res.ok) return null; + const html = await res.text(); + if (!html.includes('data-pit-footer')) return null; + return ; + } catch { + return null; + } +} diff --git a/sites/sh1pt.com/app/globals.css b/sites/sh1pt.com/app/globals.css index 98f7894b..ea4a0206 100644 --- a/sites/sh1pt.com/app/globals.css +++ b/sites/sh1pt.com/app/globals.css @@ -101,3 +101,8 @@ section:last-child { border-bottom: 0; } text-shadow: 0 0 24px rgba(194, 255, 61, 0.75), 0 0 4px rgba(194, 255, 61, 0.9); margin-left: 0.06em; } + +.site-footer { border-top: 1px solid var(--border, rgba(255,255,255,0.1)); margin-top: 3rem; font-size: 0.875rem; color: var(--muted); } +.site-footer .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem 1.25rem; padding-top: 1.5rem; padding-bottom: 1.5rem; } +.site-footer a { color: inherit; text-decoration: none; } +.site-footer a:hover, .site-footer a:focus-visible { color: var(--fg, #fff); text-decoration: underline; } diff --git a/sites/sh1pt.com/app/layout.tsx b/sites/sh1pt.com/app/layout.tsx index 94aa6e8f..a41414ac 100644 --- a/sites/sh1pt.com/app/layout.tsx +++ b/sites/sh1pt.com/app/layout.tsx @@ -6,7 +6,7 @@ import RobautoPixel from './components/RobautoPixel'; import CrawlproofStats from './components/CrawlproofStats'; import { getSupabaseServerClient } from '@/lib/supabase/server'; import Script from "next/script"; -import { Footer } from '@profullstack/footer/react'; +import PitFooter from './components/PitFooter'; export const metadata = { title: 'sh1pt — Build. Promote. Scale. Iterate…', @@ -80,20 +80,18 @@ export default async function RootLayout({ children }: { children: ReactNode }) {children} - +