Move componets and make it so escape clicks the back button for you
This commit is contained in:
34 files changed
+460
-159
No files matched your search
@@ -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'}
|
||||||
|
|||||||
@@ -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'}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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'}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -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'>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 />
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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={() => {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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's GDPS Downloads</p>
|
<p className='px-10 -my-2 mb-4 text-3xl'>Xytriza'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'>
|
||||||
|
|||||||
@@ -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's GDPS</p>
|
<p className='text-4xl'>Xytriza's GDPS</p>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
+2
-2
@@ -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',
|
||||||
|
|||||||
@@ -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.
@@ -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.
Reference in new issue
Block a user