Move componets and make it so escape clicks the back button for you

This commit is contained in:
Lncvrt committed 2026-02-19 08:43:28 -07:00
1 parent 9463415331
commit 18816a1eb9
34 files changed
+460 -159

No files matched your search

+15 -5
View File
@@ -1,15 +1,16 @@
'use client' 'use client'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
import axios from 'axios' import axios from 'axios'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
import { getCookie, setCookie } from '@/util/cookie' import { getCookie, setCookie } from '@/util/cookie'
export default function AccountChangePasswordPage () { export default function AccountChangePasswordPage () {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [newPassword, setNewPassword] = useState<string>('') const [newPassword, setNewPassword] = useState<string>('')
const [retypeNewPassword, setRetypeNewPassword] = useState<string>('') const [retypeNewPassword, setRetypeNewPassword] = useState<string>('')
@@ -20,12 +21,21 @@ export default function AccountChangePasswordPage () {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token === '-1') { if (token === '-1') {
router.push('/account/login') router.push('/account/login')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router]) }, [router])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/account' /> <BackButton href='/account' refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading ? 'Loading...' : 'Change Lncvrt Games Account Password'} {loading ? 'Loading...' : 'Change Lncvrt Games Account Password'}
+15 -5
View File
@@ -1,15 +1,16 @@
'use client' 'use client'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
import axios from 'axios' import axios from 'axios'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
import { getCookie, setCookie } from '@/util/cookie' import { getCookie, setCookie } from '@/util/cookie'
export default function AccountChangeUsernamePage () { export default function AccountChangeUsernamePage () {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [newUsername, setNewUsername] = useState<string>('') const [newUsername, setNewUsername] = useState<string>('')
@@ -19,12 +20,21 @@ export default function AccountChangeUsernamePage () {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token === '-1') { if (token === '-1') {
router.push('/account/login') router.push('/account/login')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router]) }, [router])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/account' /> <BackButton href='/account' refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading ? 'Loading...' : 'Change Lncvrt Games Account Username'} {loading ? 'Loading...' : 'Change Lncvrt Games Account Username'}
+16 -6
View File
@@ -1,16 +1,17 @@
'use client' 'use client'
import { Turnstile } from '@marsidev/react-turnstile' import { Turnstile } from '@marsidev/react-turnstile'
import { DiscordButton } from '../../components/DiscordButton' import { DiscordButton } from '../../../components/DiscordButton'
import axios from 'axios' import axios from 'axios'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { getCookie } from '@/util/cookie' import { getCookie } from '@/util/cookie'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
export default function AccountForgotPasswordPage () { export default function AccountForgotPasswordPage () {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [token, setToken] = useState<string | null>(null) const [token, setToken] = useState<string | null>(null)
const [result, setResult] = useState<number>(-1) const [result, setResult] = useState<number>(-1)
@@ -23,12 +24,21 @@ export default function AccountForgotPasswordPage () {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token !== '-1') { if (token !== '-1') {
router.push('/account') router.push('/account')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
}, [])
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/account/login' /> <BackButton href='/account/login' refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading {loading
+16 -6
View File
@@ -1,16 +1,17 @@
'use client' 'use client'
import { Turnstile } from '@marsidev/react-turnstile' import { Turnstile } from '@marsidev/react-turnstile'
import { DiscordButton } from '../../components/DiscordButton' import { DiscordButton } from '../../../components/DiscordButton'
import axios from 'axios' import axios from 'axios'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { getCookie } from '@/util/cookie' import { getCookie } from '@/util/cookie'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
export default function AccountForgotUsernamePage () { export default function AccountForgotUsernamePage () {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [token, setToken] = useState<string | null>(null) const [token, setToken] = useState<string | null>(null)
const [result, setResult] = useState<number>(-1) const [result, setResult] = useState<number>(-1)
@@ -23,12 +24,21 @@ export default function AccountForgotUsernamePage () {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token !== '-1') { if (token !== '-1') {
router.push('/account') router.push('/account')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
}, [])
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/account/login' /> <BackButton href='/account/login' refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading {loading
+21 -7
View File
@@ -2,17 +2,18 @@
import { useRouter, useSearchParams } from 'next/navigation' import { useRouter, useSearchParams } from 'next/navigation'
import { getCookie, setCookie } from '@/util/cookie' import { getCookie, setCookie } from '@/util/cookie'
import { Suspense, useEffect, useState } from 'react' import { Suspense, useEffect, useRef, useState } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
import axios from 'axios' import axios from 'axios'
import Link from 'next/link' import Link from 'next/link'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
function AccountLoginForm ({ redirect }: { redirect: string | null }) { function AccountLoginForm ({ redirect }: { redirect: string | null }) {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const [alreadyLoggedIn, setAlreadyLoggedIn] = useState<boolean>(false) const [alreadyLoggedIn, setAlreadyLoggedIn] = useState<boolean>(false)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [username, setUsername] = useState<string>('') const [username, setUsername] = useState<string>('')
const [password, setPassword] = useState<string>('') const [password, setPassword] = useState<string>('')
@@ -23,14 +24,27 @@ function AccountLoginForm ({ redirect }: { redirect: string | null }) {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token !== '-1') { if (token !== '-1') {
document.title = 'Lncvrt Games - Account Login' document.title = 'Lncvrt Games - Account Login'
setAlreadyLoggedIn(true) setTimeout(() => setAlreadyLoggedIn(true), 0)
} }
setLoading(false) setTimeout(() => setLoading(false), 0)
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router]) }, [router])
return ( return (
<div className='box'> <div className='box'>
{alreadyLoggedIn ? <BackButton href='/account' /> : <HomeButton />} {alreadyLoggedIn ? (
<BackButton href='/account' refLink={backButtonRef} />
) : (
<HomeButton refLink={backButtonRef} />
)}
<DiscordButton /> <DiscordButton />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading {loading
+15 -5
View File
@@ -1,15 +1,16 @@
'use client' 'use client'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
import { getCookie, unsetCookie } from '@/util/cookie' import { getCookie, unsetCookie } from '@/util/cookie'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
import Link from 'next/link' import Link from 'next/link'
export default function AccountPage () { export default function AccountPage () {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Account' document.title = 'Lncvrt Games - Account'
@@ -17,12 +18,21 @@ export default function AccountPage () {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token === '-1') { if (token === '-1') {
router.push('/account/login') router.push('/account/login')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router]) }, [router])
return ( return (
<div className='box'> <div className='box'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className={`px-8 -my-2 text-center`}> <p className={`px-8 -my-2 text-center`}>
{loading ? 'Loading...' : 'Account'} {loading ? 'Loading...' : 'Account'}
+16 -6
View File
@@ -1,17 +1,18 @@
'use client' 'use client'
import { Turnstile } from '@marsidev/react-turnstile' import { Turnstile } from '@marsidev/react-turnstile'
import { DiscordButton } from '../../components/DiscordButton' import { DiscordButton } from '../../../components/DiscordButton'
import axios from 'axios' import axios from 'axios'
import { getCookie } from '@/util/cookie' import { getCookie } from '@/util/cookie'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
import Link from 'next/link' import Link from 'next/link'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
export default function AccountRegisterPage () { export default function AccountRegisterPage () {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [token, setToken] = useState<string | null>(null) const [token, setToken] = useState<string | null>(null)
const [result, setResult] = useState<number>(-1) const [result, setResult] = useState<number>(-1)
@@ -28,12 +29,21 @@ export default function AccountRegisterPage () {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token !== '-1') { if (token !== '-1') {
router.push('/account') router.push('/account')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
}, [])
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/account/login' /> <BackButton href='/account/login' refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading {loading
+16 -6
View File
@@ -1,16 +1,17 @@
'use client' 'use client'
import { Turnstile } from '@marsidev/react-turnstile' import { Turnstile } from '@marsidev/react-turnstile'
import { DiscordButton } from '../../components/DiscordButton' import { DiscordButton } from '../../../components/DiscordButton'
import { HomeButton } from '../../components/HomeButton' import { HomeButton } from '../../../components/HomeButton'
import axios from 'axios' import axios from 'axios'
import { Suspense, useEffect, useState } from 'react' import { Suspense, useEffect, useRef, useState } from 'react'
import { useRouter, useSearchParams } from 'next/navigation' import { useRouter, useSearchParams } from 'next/navigation'
import { getCookie } from '@/util/cookie' import { getCookie } from '@/util/cookie'
function AccountResetPasswordForm ({ codeParam }: { codeParam: string }) { function AccountResetPasswordForm ({ codeParam }: { codeParam: string }) {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [token, setToken] = useState<string | null>(null) const [token, setToken] = useState<string | null>(null)
const [result, setResult] = useState<number>(-1) const [result, setResult] = useState<number>(-1)
@@ -24,12 +25,21 @@ function AccountResetPasswordForm ({ codeParam }: { codeParam: string }) {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token !== '-1') { if (token !== '-1') {
router.push('/account') router.push('/account')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
}, [])
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router])
return ( return (
<div className='box'> <div className='box'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading {loading
-31
View File
@@ -1,31 +0,0 @@
import { faArrowLeft } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import Link from 'next/link'
export function BackButton ({
href,
onClick
}: {
href?: string
onClick?: () => void
}) {
return (
<>
<div className='relative'>
{href && (
<Link href={href} className='top-button absolute -top-4 -left-4'>
<FontAwesomeIcon icon={faArrowLeft} />
</Link>
)}
{onClick && (
<button
onClick={onClick}
className='top-button absolute -top-4 -left-4'
>
<FontAwesomeIcon icon={faArrowLeft} />
</button>
)}
</div>
</>
)
}
+14 -4
View File
@@ -1,15 +1,16 @@
'use client' 'use client'
import Link from 'next/link' import Link from 'next/link'
import { HomeButton } from '../components/HomeButton' import { HomeButton } from '../../components/HomeButton'
import { DiscordButton } from '../components/DiscordButton' import { DiscordButton } from '../../components/DiscordButton'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import axios from 'axios' import axios from 'axios'
import { UAParser } from 'ua-parser-js' import { UAParser } from 'ua-parser-js'
export default function DownloadPage () { export default function DownloadPage () {
const [platform, setPlatform] = useState<string>('') const [platform, setPlatform] = useState<string>('')
const [version, setVersion] = useState<string | number | null>(null) const [version, setVersion] = useState<string | number | null>(null)
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Download' document.title = 'Lncvrt Games - Download'
@@ -21,6 +22,15 @@ export default function DownloadPage () {
setVersion(-1) setVersion(-1)
} }
})() })()
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
useEffect(() => { useEffect(() => {
@@ -50,7 +60,7 @@ export default function DownloadPage () {
return ( return (
<div className='box'> <div className='box'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-center text-4xl'>Downloads</p> <p className='text-center text-4xl'>Downloads</p>
<p className='text-center text-[18px] mb-2'> <p className='text-center text-[18px] mb-2'>
+15 -4
View File
@@ -6,18 +6,29 @@ import { Navigation, Keyboard } from 'swiper/modules'
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function BerryDashCustomGameInfo () { export default function BerryDashCustomGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash Custom' document.title = 'Lncvrt Games - Berry Dash Custom'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Berry Dash Custom</p> <p className='text-4xl'>Berry Dash Custom</p>
<p> <p>
+15 -4
View File
@@ -6,18 +6,29 @@ import { Navigation, Keyboard } from 'swiper/modules'
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function BerryDashGodotRemakeGameInfo () { export default function BerryDashGodotRemakeGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash Godot Remake' document.title = 'Lncvrt Games - Berry Dash Godot Remake'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Berry Dash Godot Remake</p> <p className='text-4xl'>Berry Dash Godot Remake</p>
<p> <p>
+15 -4
View File
@@ -6,18 +6,29 @@ import { Navigation, Keyboard } from 'swiper/modules'
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function BerryDashLiteGameInfo () { export default function BerryDashLiteGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash Lite' document.title = 'Lncvrt Games - Berry Dash Lite'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Berry Dash Lite</p> <p className='text-4xl'>Berry Dash Lite</p>
<p> <p>
+15 -4
View File
@@ -3,18 +3,29 @@
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function BerryDashUltimateGameInfo () { export default function BerryDashUltimateGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash Ultimate' document.title = 'Lncvrt Games - Berry Dash Ultimate'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Berry Dash Ultimate</p> <p className='text-4xl'>Berry Dash Ultimate</p>
<p> <p>
@@ -6,18 +6,29 @@ import { Navigation, Keyboard } from 'swiper/modules'
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function BerryDashWithGunsCustomGameInfo () { export default function BerryDashWithGunsCustomGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash with Guns Custom' document.title = 'Lncvrt Games - Berry Dash with Guns Custom'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Berry Dash with Guns Custom</p> <p className='text-4xl'>Berry Dash with Guns Custom</p>
<p> <p>
+15 -4
View File
@@ -6,18 +6,29 @@ import { Navigation, Keyboard } from 'swiper/modules'
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function BerryDashWithGunsGameInfo () { export default function BerryDashWithGunsGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash with Guns' document.title = 'Lncvrt Games - Berry Dash with Guns'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Berry Dash with Guns</p> <p className='text-4xl'>Berry Dash with Guns</p>
<p> <p>
+15 -3
View File
@@ -1,8 +1,8 @@
'use client' 'use client'
import './styles.css' import './styles.css'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
import { GetIconForUser } from '@/util/bd' import { GetIconForUser } from '@/util/bd'
import { getCookie } from '@/util/cookie' import { getCookie } from '@/util/cookie'
import { formatHumanTime } from '@/util/time' import { formatHumanTime } from '@/util/time'
@@ -42,6 +42,7 @@ export default function BerryDashChatroom () {
const [token, setToken] = useState<string | null>(null) const [token, setToken] = useState<string | null>(null)
const [messages, setMessages] = useState<Message[]>([]) const [messages, setMessages] = useState<Message[]>([])
const [ws, setWs] = useState<WebSocket | null>(null) const [ws, setWs] = useState<WebSocket | null>(null)
const backButtonRef = useRef<HTMLAnchorElement>(null)
const messagesDiv = useRef<HTMLDivElement>(null) const messagesDiv = useRef<HTMLDivElement>(null)
const [input, setInput] = useState<string>('') const [input, setInput] = useState<string>('')
@@ -109,6 +110,17 @@ export default function BerryDashChatroom () {
} }
}, []) }, [])
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [])
useEffect(() => { useEffect(() => {
if (messagesDiv.current) { if (messagesDiv.current) {
messagesDiv.current.scrollTop = messagesDiv.current.scrollHeight messagesDiv.current.scrollTop = messagesDiv.current.scrollHeight
@@ -117,7 +129,7 @@ export default function BerryDashChatroom () {
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/game/berry-dash' /> <BackButton href='/game/berry-dash' refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='px-8 mb-4 -mt-2 text-center text-2xl'> <p className='px-8 mb-4 -mt-2 text-center text-2xl'>
Berry Dash Chatroom Berry Dash Chatroom
@@ -1,10 +1,10 @@
'use client' 'use client'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import axios from 'axios' import axios from 'axios'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { ReloadButton } from '@/app/components/ReloadButton' import { ReloadButton } from '@/components/ReloadButton'
import { UploadButton } from '@/app/components/UploadButton' import { UploadButton } from '@/components/UploadButton'
import Image from 'next/image' import Image from 'next/image'
interface MarketplaceIcon { interface MarketplaceIcon {
@@ -20,6 +20,7 @@ interface MarketplaceIcon {
export default function BerryDashIconMarketplace () { export default function BerryDashIconMarketplace () {
const [response, setResponse] = useState<MarketplaceIcon[] | null | -1>(null) const [response, setResponse] = useState<MarketplaceIcon[] | null | -1>(null)
const backButtonRef = useRef<HTMLAnchorElement>(null)
async function Refresh () { async function Refresh () {
try { try {
@@ -33,11 +34,20 @@ export default function BerryDashIconMarketplace () {
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash Icon Marketplace' document.title = 'Lncvrt Games - Berry Dash Icon Marketplace'
setTimeout(() => Refresh(), 0) setTimeout(() => Refresh(), 0)
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<BackButton href='/game/berry-dash' /> <BackButton href='/game/berry-dash' refLink={backButtonRef} />
<UploadButton href='/game/berry-dash/icon-marketplace/upload' /> <UploadButton href='/game/berry-dash/icon-marketplace/upload' />
<ReloadButton <ReloadButton
action={() => { action={() => {
@@ -1,18 +1,19 @@
'use client' 'use client'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { ReloadButton } from '@/app/components/ReloadButton' import { ReloadButton } from '@/components/ReloadButton'
import { getCookie } from '@/util/cookie' import { getCookie } from '@/util/cookie'
import { Turnstile } from '@marsidev/react-turnstile' import { Turnstile } from '@marsidev/react-turnstile'
import axios from 'axios' import axios from 'axios'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
export default function BerryDashSubmitIcon () { export default function BerryDashSubmitIcon () {
const [token, setToken] = useState<string | null>(null) const [token, setToken] = useState<string | null>(null)
const [result, setResult] = useState<number>(-1) const [result, setResult] = useState<number>(-1)
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [name, setName] = useState<string>('') const [name, setName] = useState<string>('')
const [price, setPrice] = useState<number>(10) const [price, setPrice] = useState<number>(10)
@@ -27,12 +28,24 @@ export default function BerryDashSubmitIcon () {
router.push( router.push(
'/account/login?redirect=/game/berry-dash/icon-marketplace/upload' '/account/login?redirect=/game/berry-dash/icon-marketplace/upload'
) )
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
}, [])
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/game/berry-dash/icon-marketplace' /> <BackButton
href='/game/berry-dash/icon-marketplace'
refLink={backButtonRef}
/>
<ReloadButton action={() => window.location.reload()} /> <ReloadButton action={() => window.location.reload()} />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading {loading
+17 -4
View File
@@ -1,8 +1,8 @@
'use client' 'use client'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
import { useCallback, useEffect, useState } from 'react' import { useCallback, useEffect, useRef, useState } from 'react'
import { BirdColor } from '../chatroom/page' import { BirdColor } from '../chatroom/page'
import axios from 'axios' import axios from 'axios'
import { GetIconForUser } from '@/util/bd' import { GetIconForUser } from '@/util/bd'
@@ -84,6 +84,8 @@ export default function BerryDashLeaderboards () {
const [selectedBerryOption, setSelectedBerryOption] = useState<number>(0) const [selectedBerryOption, setSelectedBerryOption] = useState<number>(0)
const [gettingEntries, setGettingEntries] = useState<boolean>(false) const [gettingEntries, setGettingEntries] = useState<boolean>(false)
const [entries, setEntries] = useState<(LeaderboardEntry | Account)[]>([]) const [entries, setEntries] = useState<(LeaderboardEntry | Account)[]>([])
const backButtonRef = useRef<HTMLAnchorElement>(null)
const backButtonRef2 = useRef<HTMLButtonElement>(null)
const Refresh = useCallback(async () => { const Refresh = useCallback(async () => {
setGettingEntries(true) setGettingEntries(true)
@@ -137,6 +139,16 @@ export default function BerryDashLeaderboards () {
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash Leaderboards' document.title = 'Lncvrt Games - Berry Dash Leaderboards'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
backButtonRef2.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
useEffect(() => { useEffect(() => {
@@ -146,7 +158,7 @@ export default function BerryDashLeaderboards () {
return ( return (
<div className='box'> <div className='box'>
{selected == -1 ? ( {selected == -1 ? (
<BackButton href='/game/berry-dash' /> <BackButton href='/game/berry-dash' refLink={backButtonRef} />
) : ( ) : (
<BackButton <BackButton
onClick={() => { onClick={() => {
@@ -155,6 +167,7 @@ export default function BerryDashLeaderboards () {
setSelectedBerryOption(0) setSelectedBerryOption(0)
setSelected(-1) setSelected(-1)
}} }}
refButton={backButtonRef2}
/> />
)} )}
<DiscordButton /> <DiscordButton />
+15 -4
View File
@@ -6,18 +6,29 @@ import { Navigation, Keyboard } from 'swiper/modules'
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function BerryDashGameInfo () { export default function BerryDashGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash' document.title = 'Lncvrt Games - Berry Dash'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Berry Dash</p> <p className='text-4xl'>Berry Dash</p>
<p> <p>
+16 -6
View File
@@ -1,13 +1,14 @@
'use client' 'use client'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { ReloadButton } from '@/app/components/ReloadButton' import { ReloadButton } from '@/components/ReloadButton'
import { UploadButton } from '@/app/components/UploadButton' import { UploadButton } from '@/components/UploadButton'
import axios from 'axios' import axios from 'axios'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
export default function BerryDashSplash () { export default function BerryDashSplash () {
const [response, setResponse] = useState<string | null | -1>(null) const [response, setResponse] = useState<string | null | -1>(null)
const backButtonRef = useRef<HTMLAnchorElement>(null)
async function Refresh () { async function Refresh () {
try { try {
@@ -20,12 +21,21 @@ export default function BerryDashSplash () {
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Berry Dash Splash Texts' document.title = 'Lncvrt Games - Berry Dash Splash Texts'
Refresh() setTimeout(() => Refresh(), 0)
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/game/berry-dash' /> <BackButton href='/game/berry-dash' refLink={backButtonRef} />
<UploadButton href='/game/berry-dash/splash/submit' /> <UploadButton href='/game/berry-dash/splash/submit' />
<ReloadButton <ReloadButton
action={() => { action={() => {
+16 -6
View File
@@ -1,18 +1,19 @@
'use client' 'use client'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
import { ReloadButton } from '@/app/components/ReloadButton' import { ReloadButton } from '@/components/ReloadButton'
import { getCookie } from '@/util/cookie' import { getCookie } from '@/util/cookie'
import { Turnstile } from '@marsidev/react-turnstile' import { Turnstile } from '@marsidev/react-turnstile'
import axios from 'axios' import axios from 'axios'
import { useRouter } from 'next/navigation' import { useRouter } from 'next/navigation'
import { useEffect, useState } from 'react' import { useEffect, useRef, useState } from 'react'
export default function BerryDashSubmitSplash () { export default function BerryDashSubmitSplash () {
const [token, setToken] = useState<string | null>(null) const [token, setToken] = useState<string | null>(null)
const [result, setResult] = useState<number>(-1) const [result, setResult] = useState<number>(-1)
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const router = useRouter() const router = useRouter()
const backButtonRef = useRef<HTMLAnchorElement>(null)
const [text, setText] = useState<string>('') const [text, setText] = useState<string>('')
@@ -22,12 +23,21 @@ export default function BerryDashSubmitSplash () {
const token = getCookie('accountToken', '-1') const token = getCookie('accountToken', '-1')
if (token === '-1') { if (token === '-1') {
router.push('/account/login?redirect=/game/berry-dash/splash/submit') router.push('/account/login?redirect=/game/berry-dash/splash/submit')
} else setLoading(false) } else setTimeout(() => setLoading(false), 0)
}, [])
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [router])
return ( return (
<div className='box'> <div className='box'>
<BackButton href='/game/berry-dash/splash' /> <BackButton href='/game/berry-dash/splash' refLink={backButtonRef} />
<ReloadButton action={() => window.location.reload()} /> <ReloadButton action={() => window.location.reload()} />
<p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}> <p className={`px-8 ${loading ? '-my-2' : 'mb-4 -mt-2'} text-center`}>
{loading {loading
+15 -4
View File
@@ -6,18 +6,29 @@ import { Navigation, Keyboard } from 'swiper/modules'
import 'swiper/css' import 'swiper/css'
import 'swiper/css/navigation' import 'swiper/css/navigation'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function TrianglesGameInfo () { export default function TrianglesGameInfo () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = 'Lncvrt Games - Triangles' document.title = 'Lncvrt Games - Triangles'
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='text-4xl'>Triangles</p> <p className='text-4xl'>Triangles</p>
<p>Triangles is a Geometry Dash fan game made in the Unity Game Engine</p> <p>Triangles is a Geometry Dash fan game made in the Unity Game Engine</p>
+15 -4
View File
@@ -1,18 +1,29 @@
'use client' 'use client'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
import { BackButton } from '@/app/components/BackButton' import { BackButton } from '@/components/BackButton'
export default function XPSGameDownloads () { export default function XPSGameDownloads () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = "Lncvrt Games - Xytriza's GDPS Downloads" document.title = "Lncvrt Games - Xytriza's GDPS Downloads"
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<BackButton href='/game/xps' /> <BackButton href='/game/xps' refLink={backButtonRef} />
<DiscordButton href='https://discord.gg/9Yg7NX2HtG' /> <DiscordButton href='https://discord.gg/9Yg7NX2HtG' />
<p className='px-10 -my-2 mb-4 text-3xl'>Xytriza&apos;s GDPS Downloads</p> <p className='px-10 -my-2 mb-4 text-3xl'>Xytriza&apos;s GDPS Downloads</p>
<div className='downloads lg:max-w-[60vw] md:max-w-[80vw] flex-col'> <div className='downloads lg:max-w-[60vw] md:max-w-[80vw] flex-col'>
+15 -4
View File
@@ -1,18 +1,29 @@
'use client' 'use client'
import Link from 'next/link' import Link from 'next/link'
import { useEffect } from 'react' import { useEffect, useRef } from 'react'
import { HomeButton } from '@/app/components/HomeButton' import { HomeButton } from '@/components/HomeButton'
import { DiscordButton } from '@/app/components/DiscordButton' import { DiscordButton } from '@/components/DiscordButton'
export default function XPSGame () { export default function XPSGame () {
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => { useEffect(() => {
document.title = "Lncvrt Games - Xytriza's GDPS" document.title = "Lncvrt Games - Xytriza's GDPS"
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, []) }, [])
return ( return (
<div className='box text-center'> <div className='box text-center'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton href='https://discord.gg/9Yg7NX2HtG' /> <DiscordButton href='https://discord.gg/9Yg7NX2HtG' />
<p className='text-4xl'>Xytriza&apos;s GDPS</p> <p className='text-4xl'>Xytriza&apos;s GDPS</p>
<p> <p>
+2 -2
View File
@@ -1,8 +1,8 @@
import Image from 'next/image' import Image from 'next/image'
import Link from 'next/link' import Link from 'next/link'
import { Metadata } from 'next' import { Metadata } from 'next'
import { DiscordButton } from './components/DiscordButton' import { DiscordButton } from '../components/DiscordButton'
import { AccountButton } from './components/AccountButton' import { AccountButton } from '../components/AccountButton'
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Lncvrt Games - Home', title: 'Lncvrt Games - Home',
+16 -4
View File
@@ -2,19 +2,31 @@
import { Turnstile } from '@marsidev/react-turnstile' import { Turnstile } from '@marsidev/react-turnstile'
import axios from 'axios' import axios from 'axios'
import { useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { DiscordButton } from '../components/DiscordButton' import { DiscordButton } from '../../components/DiscordButton'
import { HomeButton } from '../components/HomeButton' import { HomeButton } from '../../components/HomeButton'
export default function CaptchaCodePage () { export default function CaptchaCodePage () {
const [code, setCode] = useState<string | null>(null) const [code, setCode] = useState<string | null>(null)
const [result, setResult] = useState<number>(-1) const [result, setResult] = useState<number>(-1)
const [resultMsg, setResultMsg] = useState<string | null>(null) const [resultMsg, setResultMsg] = useState<string | null>(null)
const [showCopied, setShowCopied] = useState<boolean>(false) const [showCopied, setShowCopied] = useState<boolean>(false)
const backButtonRef = useRef<HTMLAnchorElement>(null)
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
backButtonRef.current?.click()
}
}
window.addEventListener('keydown', handleKeyDown)
return () => window.removeEventListener('keydown', handleKeyDown)
}, [])
return ( return (
<div className='box'> <div className='box'>
<HomeButton /> <HomeButton refLink={backButtonRef} />
<DiscordButton /> <DiscordButton />
<p className='mb-4 px-8 -mt-2 text-center'> <p className='mb-4 px-8 -mt-2 text-center'>
Verify you are human to get a code Verify you are human to get a code
File renamed without changes.
+39
View File
@@ -0,0 +1,39 @@
import { faArrowLeft } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import Link from 'next/link'
import { RefObject } from 'react'
export function BackButton ({
href,
onClick,
refLink,
refButton
}: {
href?: string
onClick?: () => void
refLink?: RefObject<HTMLAnchorElement | null>
refButton?: RefObject<HTMLButtonElement | null>
}) {
return (
<div className='relative'>
{href && (
<Link
href={href}
className='top-button absolute -top-4 -left-4'
ref={refLink}
>
<FontAwesomeIcon icon={faArrowLeft} />
</Link>
)}
{onClick && (
<button
onClick={onClick}
className='top-button absolute -top-4 -left-4'
ref={refButton}
>
<FontAwesomeIcon icon={faArrowLeft} />
</button>
)}
</div>
)
}
File renamed without changes.
@@ -1,12 +1,21 @@
import { faHome } from '@fortawesome/free-regular-svg-icons' import { faHome } from '@fortawesome/free-regular-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import Link from 'next/link' import Link from 'next/link'
import { RefObject } from 'react'
export function HomeButton () { export function HomeButton ({
refLink
}: {
refLink?: RefObject<HTMLAnchorElement | null>
}) {
return ( return (
<> <>
<div className='relative'> <div className='relative'>
<Link href='/' className='top-button absolute -top-4 -left-4'> <Link
href='/'
className='top-button absolute -top-4 -left-4'
ref={refLink}
>
<FontAwesomeIcon icon={faHome} /> <FontAwesomeIcon icon={faHome} />
</Link> </Link>
</div> </div>
File renamed without changes.
File renamed without changes.