From ec731916d9dcb14331ccc0a34428380df065ff95 Mon Sep 17 00:00:00 2001
From: rasguy92
Date: Mon, 4 Dec 2023 12:15:37 +0700
Subject: [PATCH] feat: add modal warning, cleanup apis
---
src/assets/icons/HamburgerIcon.tsx | 14 ++-
src/common/Button/types.ts | 5 +-
src/common/ButtonForJoinableGame/index.tsx | 4 +-
src/common/ButtonForWaitingGame/index.tsx | 4 +-
src/common/ClaimBar/index.tsx | 14 ++-
src/common/FloatingOrbs/index.tsx | 65 +++++++++-----
src/common/FloatingOrbs/types.ts | 16 ++--
src/common/Section/types.tsx | 13 +++
src/common/modals/GlobalModal.tsx | 4 +
src/common/modals/WebAppInBetaModal.tsx | 33 +++++++
src/common/modals/images/warning-triangle.png | Bin 0 -> 1259 bytes
.../CreateGameCard/CreateCoinFlipGameCard.tsx | 2 +-
.../CreateGameCard/CreateDiceGameCard.tsx | 2 +-
src/components/GameCard/index.tsx | 6 +-
.../JoinGameCard/JoinCoinFlipGameCard.tsx | 2 +-
.../JoinGameCard/JoinDiceGamecard.tsx | 2 +-
.../PlayPageGameCardsSection/index.tsx | 36 ++++++++
src/components/PlayPageHeroMobile/index.tsx | 10 +++
src/components/WegaGames/index.tsx | 53 ++++++-----
src/containers/App/index.tsx | 8 +-
src/containers/ErrorPage/images/404.svg | 10 +++
src/containers/ErrorPage/images/404.tsx | 61 +++++++++++++
src/containers/ErrorPage/index.tsx | 31 +++++++
src/containers/FooterMobile/index.tsx | 64 ++++++++++++++
src/containers/Layout/index.tsx | 33 +++----
src/containers/NavigationMobile/index.tsx | 82 ++++++++++++++++++
src/containers/PlayPage/index.tsx | 42 +++------
.../images/HeroIllustration.tsx | 44 ++++++++++
.../PlayPageMobile/images/internet-icon.png | Bin 0 -> 820 bytes
.../images/mobile-hero-illustration.png | Bin 0 -> 10632 bytes
src/containers/PlayPageMobile/index.tsx | 79 +++++++++++++++++
src/containers/Router/index.tsx | 75 +++++++++-------
src/containers/WalletProvider/index.tsx | 7 +-
src/hooks/index.ts | 5 +-
src/hooks/useFirebaseData.ts | 3 +-
src/hooks/useHamburgerTween.ts | 32 +++++++
src/hooks/useMediaQuery.ts | 8 ++
src/hooks/useWarnAppInBeta.ts | 25 ++++++
src/main.tsx | 2 +
src/models/constants.ts | 5 ++
tailwind.config.cjs | 6 +-
41 files changed, 736 insertions(+), 171 deletions(-)
create mode 100644 src/common/modals/WebAppInBetaModal.tsx
create mode 100644 src/common/modals/images/warning-triangle.png
create mode 100644 src/components/PlayPageGameCardsSection/index.tsx
create mode 100644 src/components/PlayPageHeroMobile/index.tsx
create mode 100644 src/containers/ErrorPage/images/404.svg
create mode 100644 src/containers/ErrorPage/images/404.tsx
create mode 100644 src/containers/ErrorPage/index.tsx
create mode 100644 src/containers/FooterMobile/index.tsx
create mode 100644 src/containers/NavigationMobile/index.tsx
create mode 100644 src/containers/PlayPageMobile/images/HeroIllustration.tsx
create mode 100644 src/containers/PlayPageMobile/images/internet-icon.png
create mode 100644 src/containers/PlayPageMobile/images/mobile-hero-illustration.png
create mode 100644 src/containers/PlayPageMobile/index.tsx
create mode 100644 src/hooks/useHamburgerTween.ts
create mode 100644 src/hooks/useMediaQuery.ts
create mode 100644 src/hooks/useWarnAppInBeta.ts
diff --git a/src/assets/icons/HamburgerIcon.tsx b/src/assets/icons/HamburgerIcon.tsx
index 8352d73..883b64f 100644
--- a/src/assets/icons/HamburgerIcon.tsx
+++ b/src/assets/icons/HamburgerIcon.tsx
@@ -1,14 +1,13 @@
-import { SVGProps } from "react"
+import { SVGProps, forwardRef } from "react"
-const HamburgerIcon = (props: SVGProps) => (
+const HamburgerIcon = forwardRef((props: SVGProps, ref: any) => (
-)
-
+))
export default HamburgerIcon;
diff --git a/src/common/Button/types.ts b/src/common/Button/types.ts
index 5f1316d..25aadad 100644
--- a/src/common/Button/types.ts
+++ b/src/common/Button/types.ts
@@ -23,11 +23,12 @@ interface ButtonProps {
export const PrimaryButton = styled(BaseButton)(
({disabled}) => !disabled ? [
- tw`dark:text-pretu dark:bg-gradient-to-r from-oranjo-blanc to-oranjo hover:outline hover:outline-blanc`,
+ tw`dark:text-pretu dark:bg-gradient-to-r from-oranjo-blanc to-oranjo`,
`
box-shadow: 0px 1px 5px 0px #090300;
&:hover {
- outline-width: 1.5px;
+ outline: 1.5px solid #FDFDFD;
+ --webkit-outline: 1.5px solid #FDFDFD;
}
`
] : [
diff --git a/src/common/ButtonForJoinableGame/index.tsx b/src/common/ButtonForJoinableGame/index.tsx
index 5a0aef0..0eab3e6 100644
--- a/src/common/ButtonForJoinableGame/index.tsx
+++ b/src/common/ButtonForJoinableGame/index.tsx
@@ -24,12 +24,12 @@ export const ButtonForJoinableGame = ({ gameType, gameId, gameUuid }: ButtonForJ
>
Join
- : !isGamePlayable ?
+ : !isGamePlayable ?
- :
+ :
: isGamePlayable ? (
-
+
} />
+ Loading...} />
)
diff --git a/src/containers/ErrorPage/images/404.svg b/src/containers/ErrorPage/images/404.svg
new file mode 100644
index 0000000..79e8e37
--- /dev/null
+++ b/src/containers/ErrorPage/images/404.svg
@@ -0,0 +1,10 @@
+
diff --git a/src/containers/ErrorPage/images/404.tsx b/src/containers/ErrorPage/images/404.tsx
new file mode 100644
index 0000000..ffe11d3
--- /dev/null
+++ b/src/containers/ErrorPage/images/404.tsx
@@ -0,0 +1,61 @@
+import { SVGProps } from "react";
+const SvgComponent = (props: SVGProps) => (
+
+)
+export default SvgComponent
diff --git a/src/containers/ErrorPage/index.tsx b/src/containers/ErrorPage/index.tsx
new file mode 100644
index 0000000..ab7cb76
--- /dev/null
+++ b/src/containers/ErrorPage/index.tsx
@@ -0,0 +1,31 @@
+import { Helmet } from 'react-helmet-async';
+import ErrorIllustration from './images/404';
+import Section from '../../common/Section';
+import { SectionHeaderTitle, SectionHeaderContainer } from '../../common/Section/types';
+import MainContainer from '../../components/MainContainer';
+import 'twin.macro';
+
+const ErrorPage = () => (
+ <>
+
+ Error - 404
+
+
+
+
+
+
+ This page is not having a great day... Try again later {'<3'}
+
+ }>
+
+
+ >
+ )
+
+export default ErrorPage;
+
diff --git a/src/containers/FooterMobile/index.tsx b/src/containers/FooterMobile/index.tsx
new file mode 100644
index 0000000..928027a
--- /dev/null
+++ b/src/containers/FooterMobile/index.tsx
@@ -0,0 +1,64 @@
+/* eslint-disable react/no-unknown-property */
+import { Link } from 'react-router-dom';
+import { LogoDarkWo } from '../../assets/images';
+import { TwitterIcon, GithubIcon, WhitepaperIcon } from '../../assets/icons';
+import { Brand, BrandContainer } from '../Navigation/types';
+import { NormalText } from '../../components/CreateGameCard/types';
+import tw, { css} from 'twin.macro';
+
+const FooterMobile = () => {
+ const hoverStrokeOranjoStyle = css`
+ &:hover svg path {
+ border-color: black;
+ ${tw`stroke-oranjo`}
+ }
+ `
+ const hoverFillOranjoStyle = css`
+ &:hover svg path {
+ border-color: black;
+ ${tw`fill-oranjo`}
+ }
+ `
+
+ return (
+
+ )
+}
+export default FooterMobile;
\ No newline at end of file
diff --git a/src/containers/Layout/index.tsx b/src/containers/Layout/index.tsx
index 4694122..e014df0 100644
--- a/src/containers/Layout/index.tsx
+++ b/src/containers/Layout/index.tsx
@@ -9,19 +9,23 @@ import {
import Navigation from '../Navigation'
import Footer from '../Footer';
import { Toaster } from 'react-hot-toast';
-import { GlobalModal } from '../../common/modals';
+import { useMediaQuery, useWarnAppInBeta } from '../../hooks';
+import NavigationMobile from '../NavigationMobile';
+import FooterMobile from '../FooterMobile';
import 'twin.macro';
const Layout = () => {
- const navigation = useNavigation();
- const getKey = useCallback(
- (location: Location, matches: ReturnType) => {
- const match = matches.find((m) => (m.handle as any)?.scrollMode);
- if ((match?.handle as any)?.scrollMode === "pathname") {
- return location.pathname;
- }
- return location.key;
- },
+ useWarnAppInBeta();
+ const navigation = useNavigation();
+ const { windowIsCurrentlyMobile } = useMediaQuery();
+ const getKey = useCallback(
+ (location: Location, matches: ReturnType) => {
+ const match = matches.find((m) => (m.handle as any)?.scrollMode);
+ if ((match?.handle as any)?.scrollMode === "pathname") {
+ return location.pathname;
+ }
+ return location.key;
+ },
[]
);
@@ -35,15 +39,14 @@ const Layout = () => {
>
Navigating...
-
-
-
+ { windowIsCurrentlyMobile ? : }
+
-
-
+ { windowIsCurrentlyMobile ? : }
+
>
)
}
diff --git a/src/containers/NavigationMobile/index.tsx b/src/containers/NavigationMobile/index.tsx
new file mode 100644
index 0000000..41950f1
--- /dev/null
+++ b/src/containers/NavigationMobile/index.tsx
@@ -0,0 +1,82 @@
+/* eslint-disable jsx-a11y/click-events-have-key-events */
+/* eslint-disable jsx-a11y/no-static-element-interactions */
+import { useState, useEffect, useRef } from 'react';
+import {DeleteCircleIcon, HamburgerIcon} from '../../assets/icons';
+import {Link} from 'react-router-dom';
+import {
+ BrandContainer,
+ Brand,
+ NavigationLinksContainer,
+ NavigationBar
+} from '../Navigation/types';
+import { NormalText } from '../../components/CreateGameCard/types';
+import { useHamburgerTween, useAnimateNav } from '../../hooks';
+import tw, {styled} from 'twin.macro';
+
+const NavLinksBackdropFilter = styled.div`
+ ${tw`absolute top-0 right-0 w-full h-full z-[795] transition-wega-nav backdrop-opacity-[1] backdrop-blur-[15px] rounded-[5px]`}
+ -webkit-backdrop-filter: blur(15px);
+`
+const NavigationMobile = () => {
+ const close = 1, open = 0;
+ const mobileLinksContainerRef = useRef(null);
+ useAnimateNav(); // initiate nav animation
+ const [burgerState, setBurgerState] = useState(1);
+
+ // const burgerRef = useRef>()
+ const toggleBurger = useHamburgerTween(burgerState, mobileLinksContainerRef);
+
+ const toggleNav = (e: any) => {
+ e.preventDefault();
+ setBurgerState(s => s == close ? open : close);
+ toggleBurger();
+ };
+
+ useEffect(()=>{
+ const bodyElement = document.getElementsByTagName('body')[0];
+ const overLayElement = document.querySelector('#wega-overlay');
+ const root = bodyElement.querySelector('#root');
+ if(burgerState === open) {
+ bodyElement.style['overflow-y' as any] = 'hidden';
+ (overLayElement as any).style.display = 'block';
+ (root as any).style.display = 'block';
+ (root as any).style['overflow-y'] = 'hidden';
+
+ } else {
+ bodyElement.style['overflow-y' as any] = 'scroll';
+ (overLayElement as any).style.display = 'none';
+ (root as any).style['overflow-y'] = 'scroll';
+ }
+ })
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+ Docs
+ X
+ Telegram
+ Github
+
+
+
+ {/*
*/}
+
+
+ >
+ );
+};
+export default NavigationMobile;
\ No newline at end of file
diff --git a/src/containers/PlayPage/index.tsx b/src/containers/PlayPage/index.tsx
index 7c665bd..fc5e3e9 100644
--- a/src/containers/PlayPage/index.tsx
+++ b/src/containers/PlayPage/index.tsx
@@ -1,48 +1,28 @@
import {Helmet} from 'react-helmet-async'
-import Section from '../../common/Section';
-import WordCarousel from '../../components/WordCarousel';
-import {
- DiceGameCard,
- CoinFlipGameCard,
- RaffleGameCard
-} from '../../components/GameCard';
import MainContainer from '../../components/MainContainer';
import { JoinableAndPlayableGames } from '../../components/WegaGames'
-import { useWegaStore, useFirebaseData } from '../../hooks';
+import PlayPageMobile from '../PlayPageMobile'
+import { useWegaStore, useFirebaseData, useMediaQuery } from '../../hooks';
+import PlayPageGameCardsSection from '../../components/PlayPageGameCardsSection'
import 'twin.macro';
const PlayPage = () => {
const { user } = useWegaStore();
const { gamesCount } = useFirebaseData('');
+ const { windowIsCurrentlyMobile } = useMediaQuery();
return (
<>
Play
- }
- >
-
-
-
-
-
-
- {/* { user?.uuid ? : } */}
- { user?.uuid ? : gamesCount && !user.uuid ? <>> : <>> }
+ {
+ !windowIsCurrentlyMobile ? :
+
+ }
+ {
+ !windowIsCurrentlyMobile && user?.uuid && ( )
+ }
>
)
diff --git a/src/containers/PlayPageMobile/images/HeroIllustration.tsx b/src/containers/PlayPageMobile/images/HeroIllustration.tsx
new file mode 100644
index 0000000..f4eedc6
--- /dev/null
+++ b/src/containers/PlayPageMobile/images/HeroIllustration.tsx
@@ -0,0 +1,44 @@
+import { SVGProps } from "react"
+const SvgComponent = (props: SVGProps) => (
+
+)
+export default SvgComponent
diff --git a/src/containers/PlayPageMobile/images/internet-icon.png b/src/containers/PlayPageMobile/images/internet-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..b027035756ece4a04c2949e7eaafdeb2ddcc84db
GIT binary patch
literal 820
zcmV-41Izr0P)ihjFjhtJ=1$bPV5HjI9QP!NUD7aO2bIG(p>-wTZ_0
z>29~H+`j@(dp@6^bOVri(BC9x2)4)Lae+3&_gduto(vS;%E`F-JqVQ~C7VpGtPtCX
zOi6iJyQUuZ8bHw(o(9U7_B2pfbKF0nT7#P#9hI@lox28N0h)KlQ`tE=*;8npTEja`
ziSb9#muC^fe(e)5zOP+^yvB-0WJ!WqF+yL*gk`RE@dK0^ye@pW4Xx!;(39@>`@0Ci
zWy}={amhNO|2|}?p0^1jzD8?Y7!}%9S`4MMCZ+>PZQk$qKgUS4%z7~0%3n!yVs4Cn
zjy_64<TeHEHl{kq>X5?EA9A2T)QQ?X#N75Na!OH5gkmIMbI7lDwxhD7#!p-Tm$6k{
z^A-rYPiWiRc}t=}cX@mwE{U4hhsH(jymiMVU~mgYsfAs)Lu9@(X~k~Z3*BZR^ZS})
zaD{&Of;TreA0cxKneWc`X;D0=^`!o=8FPl~`fWHIHZBLIc)6xMduQbRxIF2arsd_W
zvq*$$0t-<#@6u!CXc>GzDw(WTRBM8eFkeTlo>Drb#M^jdwH7$QB&j3yH1FibtI8f6M)3XR#Mzt;$tdR7IiFL7c{82p>>Upr+jOI^HSWHfTufH
zVNFTYuq^kvT
ytZ?;zQEn)yeT-J(A$k|fh#Hv4sGYgx4a6@ZWerI7snCW10000tQ
literal 0
HcmV?d00001
diff --git a/src/containers/PlayPageMobile/images/mobile-hero-illustration.png b/src/containers/PlayPageMobile/images/mobile-hero-illustration.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ad83dc48320861d83d129ad44ed70fe39d56167
GIT binary patch
literal 10632
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 {
+ const animationTl = gsap.timeline({ paused: true }),
+ orbs = document.querySelectorAll('.orb'),
+ duration = 5;
+ // animation
+ animationTl.repeatDelay(0.25);
+ animationTl.fromTo(orbs[0], { scale: 1.1, rotate: '0deg', x: "-=0.5rem", y: "+=1rem" }, { scale: 1.05 , rotate: '360deg', x: "+=0.5rem", y: "-=1rem", repeat: -1, yoyo: true, duration, ease: Sine.easeInOut }, 'start')
+ animationTl.fromTo(orbs[1], { scale: 1.05, rotate: '0deg', x: "-=0.5rem", y: "-=1rem" }, { scale: 1.1 , rotate: '360deg', x: "-=0.5rem", y: "+=1rem", repeat: -1, yoyo: true, duration, ease: Sine.easeInOut }, '<')
+ animationTl.fromTo(orbs[2], { scale: 1.2, rotate: '0deg', x: "-=1rem", y: "+=1rem" }, { scale: 1 , rotate: '360deg', x: "+=1rem", y: "-=1rem", repeat: -1, yoyo: true, duration, ease: Sine.easeInOut }, '<')
+ animationTl.yoyo(true);
+
+ return (
+ <>
+
+
+
+
+
+ }
+ animationTl={animationTl}/>
+
+
+ Mobile version coming soon!
+
+
Meanwhile,
+
+ experience,
+
+
+ Wega
+
+ on desktop.
+
+
+
+
wega.fun
+
+
+
+ }>
+
+ >
+ )
+}
+export default LandingPageHeroSectionMobile;
\ No newline at end of file
diff --git a/src/containers/Router/index.tsx b/src/containers/Router/index.tsx
index 794770e..9640af5 100644
--- a/src/containers/Router/index.tsx
+++ b/src/containers/Router/index.tsx
@@ -6,7 +6,10 @@ import PlayPage from '../PlayPage';
import CreateGamePage from '../CreateGamePage';
import JoinGamePage from '../JoinGamePage';
import PlayGamePage from '../PlayGamePage';
+import ErrorPage from '../ErrorPage';
import WinsPage from '../WinsPage';
+import { GlobalModal } from '../../common/modals';
+
declare global {
interface Window{
@@ -17,41 +20,55 @@ declare global {
const router = createHashRouter([
{
path: '/',
- element: ,
+ element: ,
children: [
{
index: true,
- element:
- },
- {
- path: ':gameType',
- children: [
- {
- index: true,
- element: ,
- },
- {
- path: 'create',
- element: ,
- },
- {
- path: 'join/:id',
- element:
- },
- {
- path: 'play/:id',
- element:
- }
- ]
- },
- {
- path: 'swap',
- element: This is the homepage of swap
+ element: ,
+ errorElement: ,
+ },
+ {
+ path: 'create/:gameType',
+ element: ,
+ errorElement: ,
+ },
+ {
+ path: 'join/:gameType/:id',
+ element: ,
+ errorElement: ,
+ },
+ {
+ path: 'play/:gameType/:id',
+ element: ,
+ errorElement: ,
},
{
path: 'wins',
- element:
- }
+ element: ,
+ errorElement: ,
+ },
+ {
+ path: '*',
+ element: ,
+ },
+ ]
+ },
+])
+
+export const mobileRouter = createHashRouter([
+ {
+ path: '/',
+ element: ,
+ children: [
+ {
+ index: true,
+ element: ,
+ errorElement:
+ },
+ {
+ path: "*",
+ element:
+ },
]
}
])
diff --git a/src/containers/WalletProvider/index.tsx b/src/containers/WalletProvider/index.tsx
index 1814bef..691c29b 100644
--- a/src/containers/WalletProvider/index.tsx
+++ b/src/containers/WalletProvider/index.tsx
@@ -1,6 +1,6 @@
import { RainbowKitProvider, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';
import wagmiConfig, { chains } from '../../libs/wagmi'
-import { polygonMumbai } from 'wagmi/chains';
+import {defaultNetwork } from '../../models/constants'
import { WagmiConfig } from 'wagmi';
import WalletAvatar from '../../common/WalletAvatar';
import 'twin.macro';
@@ -9,13 +9,14 @@ export interface WalletConnectorProps {
children: React.ReactElement | React.ReactElement[];
}
-const WalletProvider = (props: WalletConnectorProps) => {
+
+const WalletProvider = (props: WalletConnectorProps) => {
return (
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index 893d705..01e6b8b 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -5,4 +5,7 @@ export { useNavigateTo } from './useNavigateTo';
export { useFirebaseData } from './useFirebaseData';
export { useCreateGameParams } from './useCreateGameParams';
export { useTokenUSDValue } from './useTokenUSDValue';
-export { useDrand } from './useDrand';
\ No newline at end of file
+export { useDrand } from './useDrand';
+export { useMediaQuery } from './useMediaQuery';
+export { useHamburgerTween } from './useHamburgerTween';
+export { useWarnAppInBeta } from './useWarnAppInBeta';
\ No newline at end of file
diff --git a/src/hooks/useFirebaseData.ts b/src/hooks/useFirebaseData.ts
index 69c3a59..6cb97bb 100644
--- a/src/hooks/useFirebaseData.ts
+++ b/src/hooks/useFirebaseData.ts
@@ -27,8 +27,9 @@ export function useFirebaseData(gameUuid: string) {
onValue(databaseRef, (snapshot) => {
if(snapshot.val()){
- const { games } = snapshot.val();
+ const { games } = snapshot.val(); // this should retrigger refetch
setGamesCount(Object.keys(games).length);
+
if(gameUuid) {
setGame(games[gameUuid]);
const { players, requiredPlayerNum, currentTurn, gameAttributes, gameType } = games[gameUuid];
diff --git a/src/hooks/useHamburgerTween.ts b/src/hooks/useHamburgerTween.ts
new file mode 100644
index 0000000..c2e8119
--- /dev/null
+++ b/src/hooks/useHamburgerTween.ts
@@ -0,0 +1,32 @@
+import { useLayoutEffect } from 'react';
+import { gsap, Power4 } from 'gsap';
+import MorphSVGPlugin from 'gsap/MorphSVGPlugin';
+import ScrollToPlugin from 'gsap/ScrollToPlugin';
+// import DrawSVGPlugin from 'gsap/DrawSVGPlugin';
+gsap.registerPlugin(ScrollToPlugin);
+gsap.registerPlugin(MorphSVGPlugin);
+
+export function useHamburgerTween(state: number, linksContainerRef: any) {
+
+ function toggleShowNavlinksContainer() {
+ const tl = gsap.timeline();
+ if(state === 1) {
+ // tl.to("#nav-mobile-overlay", { display: 'none', duration: 0.1}, 'hide')
+ tl.to(linksContainerRef.current, { y: "-21rem", ease: Power4.easeOut, duration: 0.5 }, 'hide');
+ } else {
+
+ // tl.to("#nav-mobile-overlay", { display: 'block', duration: 0.1 }, 'show')
+ tl.to(linksContainerRef.current, { y: "5rem", ease: Power4.easeOut, duration: 0.5 }, 'show');
+ }
+ }
+ useLayoutEffect(() => {
+ const ctx = gsap.context(() => {
+ toggleShowNavlinksContainer();
+ }, linksContainerRef.current)
+ return () => {
+ ctx.revert();
+ }
+ }, [state]);
+
+ return toggleShowNavlinksContainer;
+}
\ No newline at end of file
diff --git a/src/hooks/useMediaQuery.ts b/src/hooks/useMediaQuery.ts
new file mode 100644
index 0000000..39a3d24
--- /dev/null
+++ b/src/hooks/useMediaQuery.ts
@@ -0,0 +1,8 @@
+import { windowIsCurrentlyMobileQuery } from '../models/constants'
+import { useMedia } from 'react-use'
+
+export function useMediaQuery() {
+ const windowIsCurrentlyMobile = useMedia(windowIsCurrentlyMobileQuery);
+ return { windowIsCurrentlyMobile }
+}
+
diff --git a/src/hooks/useWarnAppInBeta.ts b/src/hooks/useWarnAppInBeta.ts
new file mode 100644
index 0000000..f0cd96b
--- /dev/null
+++ b/src/hooks/useWarnAppInBeta.ts
@@ -0,0 +1,25 @@
+import {useEffect, useState} from 'react'
+import { useGlobalModalContext, MODAL_TYPES } from '../common/modals'
+export function useWarnAppInBeta() {
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
+ // const [lastVisitedTimestamp, _] = useState(window.localStorage.getItem('lastVisited') ?? '');
+ // const timeBeforeShowModal = 24 * 60 * 60 * 1000;
+ const [triggered, setTriggered] = useState(false);
+ const { showModal, hideModal } = useGlobalModalContext();
+ useEffect(() => {
+ // if(lastVisitedTimestamp.length === 0) {
+ // // show modal
+ // const newLastVisitedDateTime = String(new Date().getTime());
+ // window.localStorage.setItem('lastVisited', newLastVisitedDateTime);
+ // showModal(MODAL_TYPES.WARN_IN_BETA_MODAL, { persist: false })
+ // } else if (new Date().getTime() - Number(lastVisitedTimestamp) >= timeBeforeShowModal) {
+ // // show modal
+ // window.localStorage.setItem('lastVisited', String(new Date().getTime()));
+ // }
+ // console.log('showingModal', new Date().getTime() - Number(lastVisitedTimestamp) >= timeBeforeShowModal)
+ if(!triggered) {
+ showModal(MODAL_TYPES.WARN_IN_BETA_MODAL, { hide: hideModal })
+ setTriggered(true);
+ }
+ }, []);
+}
diff --git a/src/main.tsx b/src/main.tsx
index 625ab64..d543e93 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -3,12 +3,14 @@ import ReactDOM from "react-dom/client"
import App from "./containers/App";
import { Provider as ReduxProvider } from 'react-redux';
import { store } from './app/store';
+import { gamesApiSlice } from './components/WegaGames/apiSlice.ts'
import './themes/index.css'
import GlobalStyles from "./themes/GlobalStyles.tsx";
import WalletProvider from './containers/WalletProvider/index.tsx'
// TODO
// remove old api files
+store.dispatch(gamesApiSlice.endpoints.getGames.initiate(undefined));
ReactDOM.createRoot(document.getElementById("root")!).render(
diff --git a/src/models/constants.ts b/src/models/constants.ts
index 9d7fd3e..27d6bd8 100644
--- a/src/models/constants.ts
+++ b/src/models/constants.ts
@@ -1,3 +1,4 @@
+// TODO name config
import { CurrencyTypes, CurrencyTypesEnum } from ".";
import { tokenConfig } from "../utils";
import { polygon, polygonMumbai } from "wagmi/chains";
@@ -17,3 +18,7 @@ export const SupportedBlockExplorers = new Map([
[polygon.id ?? 137, 'https://polygonscan.com/tx/'],
[polygonMumbai.id ?? 80001, 'https://mumbai.polygonscan.com/tx/']
])
+
+export const windowIsCurrentlyMobileQuery = '(max-width: 639px)';
+
+export const defaultNetwork = polygonMumbai;
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
index 749970b..9e8c06c 100644
--- a/tailwind.config.cjs
+++ b/tailwind.config.cjs
@@ -45,7 +45,8 @@ export default {
'90': '0.9'
},
boxShadow: {
- 'wega-nav': '0px 0px 50px 50px #151515',
+ 'wega-nav': '0rem -3.5rem 1.5rem 5rem #151515',
+ 'primary-button': '0px 10.74153px 16.52542px 0px rgba(0, 0, 0, 0.30)'
},
animation: {
'rotate-orbs': 'rotate-orbs 10s linear 5s infinite',
@@ -55,6 +56,9 @@ export default {
'from': { transform: "rotate(0deg) translateX(100px) rotate(360deg)" },
'to': { transform: "rotate(360deg) translateX(100px) rotate(0deg)" }
}
+ },
+ transitionProperty: {
+ 'wega-nav': 'translate 500ms ease-out 60ms',
}
},
container: {