diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b59e8a9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +.env +buikd-push.sh \ No newline at end of file diff --git a/build-push.sh b/build-push.sh index ef08376..deb7797 100755 --- a/build-push.sh +++ b/build-push.sh @@ -12,10 +12,10 @@ fi echo "$GITEA_PAT" | docker login $GITEA_SERVER -u $GITEA_USER --password-stdin # Build and tag the Docker image -docker build -t $GITEA_SERVER/$GITEA_USER/$GITEA_REPO:$IMAGE_TAG . +docker build --output=type=docker -t $GITEA_SERVER/$GITEA_USER/$GITEA_REPO:$IMAGE_TAG . # Push the image -DOCKER_CLI_EXPERIMENTAL=enabled docker --log-level debug push $GITEA_SERVER/$GITEA_USER/$GITEA_REPO:$IMAGE_TAG +docker --log-level debug push $GITEA_SERVER/$GITEA_USER/$GITEA_REPO:$IMAGE_TAG # Logout to prevent credential storage docker logout $GITEA_SERVER diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx index 704e716..7de239c 100644 --- a/src/app/blog/page.tsx +++ b/src/app/blog/page.tsx @@ -54,7 +54,7 @@ export default async function BlogPage() {
- +
Posts
diff --git a/src/app/blog/posts/0/page.tsx b/src/app/blog/posts/0/page.tsx index 4547e65..aa03df6 100644 --- a/src/app/blog/posts/0/page.tsx +++ b/src/app/blog/posts/0/page.tsx @@ -18,7 +18,7 @@ export default function ExamplePost() {
- +
{title}
diff --git a/src/app/blog/posts/1/page.tsx b/src/app/blog/posts/1/page.tsx index ddf99be..d5396f5 100644 --- a/src/app/blog/posts/1/page.tsx +++ b/src/app/blog/posts/1/page.tsx @@ -47,7 +47,7 @@ export default function ExamplePost() {
- +
{title}
diff --git a/src/app/blog/posts/2/page.tsx b/src/app/blog/posts/2/page.tsx index a836032..4d8cfd2 100644 --- a/src/app/blog/posts/2/page.tsx +++ b/src/app/blog/posts/2/page.tsx @@ -48,7 +48,7 @@ export default function ExamplePost() {
- +
{title}
diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index 5a077b1..c3f03bf 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -42,7 +42,7 @@ export default function ContactPage() {
- +
Get in touch
diff --git a/src/components/BackButton.tsx b/src/components/BackButton.tsx index 389e1cd..2918632 100644 --- a/src/components/BackButton.tsx +++ b/src/components/BackButton.tsx @@ -2,12 +2,38 @@ import { IoMdArrowBack } from "react-icons/io"; import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; -export default function BackButton() { +interface BackButtonProps { + defaultPath?: string; +} + +export default function BackButton({ defaultPath = "/" }: BackButtonProps) { const router = useRouter(); + const [shouldUseDefault, setShouldUseDefault] = useState(false); + + useEffect(() => { + // Check if we should use default path + const hasNoValidHistory = window.history.length <= 1; + const hasNoReferrer = !document.referrer || document.referrer === ''; + const referrerIsExternal = document.referrer && !document.referrer.includes(window.location.hostname); + const referrerIsEmpty = document.referrer === 'about:blank' || document.referrer.startsWith('data:'); + + setShouldUseDefault(hasNoValidHistory || hasNoReferrer || referrerIsExternal || referrerIsEmpty); + }, []); const handleBack = () => { - router.back(); + if (shouldUseDefault) { + router.push(defaultPath); + } else { + // Try to go back, but fallback to default if it fails + try { + router.back(); + } catch (error: unknown) { + console.error("Error going back:", error); + router.push(defaultPath); + } + } }; return (