From 26633b4b5565db61c0f2042086330ca5b58af1d1 Mon Sep 17 00:00:00 2001 From: Arseniy Sitnikov Date: Wed, 11 Dec 2024 05:02:21 +0300 Subject: [PATCH] added energy, mult storage, button and profile | also fixed bugs --- frontend/.DS_Store | Bin 6148 -> 6148 bytes frontend/index.html | 6 +- frontend/public/assets/Angry.png | Bin 8008 -> 0 bytes frontend/public/assets/Biceps.png | Bin 1732 -> 0 bytes frontend/public/assets/Chain.png | Bin 2185 -> 0 bytes frontend/public/assets/Fire.png | Bin 5885 -> 0 bytes frontend/public/assets/Gift.png | Bin 6667 -> 0 bytes frontend/public/assets/Money.png | Bin 7757 -> 0 bytes frontend/public/assets/Monocle.png | Bin 2300 -> 0 bytes frontend/public/assets/Rocket.png | Bin 2094 -> 0 bytes frontend/public/assets/Volt.png | Bin 641 -> 0 bytes frontend/public/assets/dev.png | Bin 5255 -> 0 bytes frontend/public/favicon.ico | Bin 165662 -> 0 bytes frontend/src/.DS_Store | Bin 6148 -> 6148 bytes frontend/src/App.tsx | 1 + frontend/src/main.global.css | 1 + .../shared/Clicker/ClickerBtn/ClickerBtn.tsx | 70 ++++---- .../Clicker/ClickerBtn/clickerbtn.module.css | 3 + .../ClickerBtnFooter/ClickerBtnFooter.tsx | 2 +- .../Clicker/ClickerFooter/ClickerFooter.tsx | 4 +- .../shared/Clicker/PointsZoom/PointsZoom.tsx | 47 +++++ .../src/shared/Clicker/PointsZoom/index.ts | 1 + .../Clicker/PointsZoom/pointszoom.module.css | 102 +++++++++++ .../src/shared/Clicker/Profile/Profile.tsx | 5 +- .../shared/Clicker/Profile/profile.module.css | 10 ++ .../Clicker/SectionsBlock/SectionsBlock.tsx | 21 ++- .../SectionsBlock/sectionsblock.module.css | 16 ++ .../src/shared/Elements/DevPopup/DevPopup.tsx | 6 +- .../Elements/StylesSwiper/StylesSwiper.tsx | 2 +- .../StylesSwiper/stylesswiper.module.css | 16 +- .../Elements/UsersIcons/usersicons.module.css | 2 +- frontend/src/shared/Icons/Icon.tsx | 6 +- frontend/src/shared/Icons/commonIcons.tsx | 18 ++ .../src/shared/ModalWindow/ModalWindow.tsx | 10 ++ .../shared/Pages/ClickerPage/ClickerPage.tsx | 36 +++- .../Pages/ClickerPage/clickerpage.module.css | 9 +- .../src/shared/Pages/RoutePage/RoutePage.tsx | 22 ++- .../shared/Pages/StoragePage/StoragePage.tsx | 19 +- .../Pages/WrongSourcePage/WrongSourcePage.tsx | 8 +- .../wrongsourcepage.module.css | 8 + .../shared/Storage/StorageBtn/StorageBtn.tsx | 7 +- .../Storage/StorageBtn/storagebtn.module.css | 18 +- .../StoragePageBlock/StoragePageBlock.tsx | 21 ++- .../storagepageblock.module.css | 19 +- .../Storage/StorageScale/StorageScale.tsx | 8 +- frontend/src/shared/hooks/useReferral.ts | 23 +++ frontend/src/shared/hooks/useTgData.ts | 2 - frontend/src/shared/hooks/useUserData.ts | 17 +- frontend/src/store/me/actions.ts | 163 ++++++++++++------ frontend/src/store/mult.ts | 19 ++ frontend/src/store/reducer.ts | 18 +- frontend/src/store/referral.ts | 22 +++ frontend/src/utils/verification.js | 6 +- 53 files changed, 634 insertions(+), 160 deletions(-) delete mode 100644 frontend/public/assets/Angry.png delete mode 100644 frontend/public/assets/Biceps.png delete mode 100644 frontend/public/assets/Chain.png delete mode 100644 frontend/public/assets/Fire.png delete mode 100644 frontend/public/assets/Gift.png delete mode 100644 frontend/public/assets/Money.png delete mode 100644 frontend/public/assets/Monocle.png delete mode 100644 frontend/public/assets/Rocket.png delete mode 100644 frontend/public/assets/Volt.png delete mode 100644 frontend/public/assets/dev.png delete mode 100644 frontend/public/favicon.ico create mode 100644 frontend/src/shared/Clicker/PointsZoom/PointsZoom.tsx create mode 100644 frontend/src/shared/Clicker/PointsZoom/index.ts create mode 100644 frontend/src/shared/Clicker/PointsZoom/pointszoom.module.css create mode 100644 frontend/src/shared/hooks/useReferral.ts create mode 100644 frontend/src/store/mult.ts create mode 100644 frontend/src/store/referral.ts diff --git a/frontend/.DS_Store b/frontend/.DS_Store index 9a9ce6d0fa0bd21eeb6ab77125674268cfd75f15..a6500821479b9f30f79e547f57e01483e489f542 100644 GIT binary patch delta 17 YcmZoMXfc=&$H*`--ky - + + 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 LNkvXXu0mjf{U;a( diff --git a/frontend/public/assets/Fire.png b/frontend/public/assets/Fire.png deleted file mode 100644 index dcdfb590f607fc223a0cbb7443d5988f6d414d93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5885 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 T-d~CK00000NkvXXu0mjfWs6at diff --git a/frontend/public/assets/Gift.png b/frontend/public/assets/Gift.png deleted file mode 100644 index 0ec7685c5653707b4edfa234623ae35dab348287..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6667 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 diff --git a/frontend/public/assets/Money.png b/frontend/public/assets/Money.png deleted file mode 100644 index 07dfb963b3ecdb08d7be337a72a17a9181589b0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7757 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 T$n?f700000NkvXXu0mjffBj1v diff --git a/frontend/public/assets/Monocle.png b/frontend/public/assets/Monocle.png deleted file mode 100644 index 0a260b6b41b2ab1d99e103efd2ea539d14aac1cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2300 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 b2DsoCznsd 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

|SO+HmoETQr|EL!GiuvZ+ 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 V>Zp%*XGQb8oJgH1IaQVS{{bXE=iLAR diff --git a/frontend/src/.DS_Store b/frontend/src/.DS_Store index da1fd53b57bf8d29abd0cd3a3cc8decd2bb13120..dcd4dc89d57160cf1ac6489f325c17924f9c964e 100644 GIT binary patch delta 401 zcmZvYK}rKb5Jg`SqY)RAMaWt&ke&$MKyV`>h;Bn>GD38mjx!x0tGLJk44!0&;6Xe< z&fvpayMl<+`lReZ0+(LMOpdjEXpo ztW8BC_?=*%kRy7shq8UbiHlCBh0Ddf;)0n7Hg4eaSNan@W%|=0Sx#cPw-!bVRhV18#-H448;vxe+rK%Wz%AzD`0Wg^@m2 z&issaqLgp*-)v`_+5W6Y(x&)MjdGIjWl_GpZmo7&K}(x1-#;49L8ssLD}2<|>s?mo HotMTZsY*}- delta 144 zcmZoMXfc=|#>CJ*u~2NHo+2*`0|Nsi1A_nqLmorPg_F+we$ljuBbG3;+)hB830| diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4ea8038..d66bf2b 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -32,6 +32,7 @@ function AppComponent() { } /> } /> } /> + } /> diff --git a/frontend/src/main.global.css b/frontend/src/main.global.css index 0c714b0..aaa6fd0 100644 --- a/frontend/src/main.global.css +++ b/frontend/src/main.global.css @@ -82,6 +82,7 @@ --grey22: #222222; --grey9A: #9A9A9A; --grey93: #939393; + --grey1F: #1F1F1F; } body { diff --git a/frontend/src/shared/Clicker/ClickerBtn/ClickerBtn.tsx b/frontend/src/shared/Clicker/ClickerBtn/ClickerBtn.tsx index 0d47501..9f73692 100644 --- a/frontend/src/shared/Clicker/ClickerBtn/ClickerBtn.tsx +++ b/frontend/src/shared/Clicker/ClickerBtn/ClickerBtn.tsx @@ -8,14 +8,16 @@ import { useDispatch } from 'react-redux'; import { updateCoinsRequestAsync } from '../../../store/me/actions'; import axios from 'axios'; import { DevPopup } from '../../Elements/DevPopup'; +import { saveMult } from '../../../store/mult'; interface IClickerBtn { coins: number, setCoins(a: number): void, - energy: number + energy: number, + setMult(a: number): void } -export function ClickerBtn({ coins, setCoins, energy }: IClickerBtn) { +export function ClickerBtn({ coins, setCoins, energy, setMult }: IClickerBtn) { const urlClick = useAppSelector(state => state.urlClick); const token = useAppSelector(state => state.token); const [fill, setFill] = useState(0); @@ -27,14 +29,20 @@ export function ClickerBtn({ coins, setCoins, energy }: IClickerBtn) { const [gradient, setGradient] = useState(getGradient()); let styleIndex = useAppSelector(state => state.styleIndex); const [initEnergy, setEnergy] = useState(energy); - const maxEnergy = Number(localStorage.getItem('eg')); + //const maxEnergy = Number(localStorage.getItem('eg')); + const [maxEnergy, setMaxEnergy] = useState(500); const [closeError, setCloseError] = useState(true); const [error, setError] = useState(false); const [animClose, setAnimClose] = useState(false); const dispatch = useDispatch(); useEffect(() => { - setFill((maxEnergy - initEnergy)/maxEnergy * 100); + const savedEnergy = sessionStorage.getItem('eg'); + if(savedEnergy) { + const encodeEnergy = atob(savedEnergy); + setMaxEnergy(Number(encodeEnergy)); + } + setFill((maxEnergy - initEnergy) / maxEnergy * 100); }, []); useEffect(() => { @@ -42,54 +50,36 @@ export function ClickerBtn({ coins, setCoins, energy }: IClickerBtn) { }, [styleIndex]); const btnClick = () => { - sendClick(); - /*if(!error) { + if (!(initEnergy === 0)) { sendClick(); - const newEnergy = initEnergy - 1; - const newFill = (maxEnergy - newEnergy) / maxEnergy * 100; - if (newFill <= 100) { - sendClick(); - const newCoins = coins + 1; - dispatch(updateCoinsRequestAsync(newCoins, newEnergy)) - setCoins(newCoins); - setEnergy(newEnergy) - setFill(newFill); - } else { - setFill(100); - } - - if (newFill < 100) { - setSize(220); - - const timer = setTimeout(() => { - setSize(240); - clearTimeout(timer); - }, 100); - } else { - setClose(false); - } } else { - sendClick(); - }*/ + setClose(false); + } }; const sendClick = () => { - if(urlClick && token) { - axios.get(`${urlClick}/api/v1/click`, { - headers: { - //"Content-type": "application/json", - "Authorization": `TelegramToken ${token}` + if(token) { + axios.post(`${urlClick}/api/v1/click/`, + {}, + { + headers: { + "Authorization": `TelegramToken ${token}` + } } - }, ).then((resp) => { - console.log(resp); + //console.log(resp); if(resp.data) { const click = Number(resp.data.click.value); // - const newEnergy = initEnergy - click; + const encodeMult = btoa(click.toString()); + sessionStorage.setItem('mt', encodeMult); + // + const newEnergy = Number(resp.data.energy); + setMult(Number(click.toFixed(2))) + dispatch(saveMult(Number(click.toFixed(2)))); const newFill = (maxEnergy - newEnergy) / maxEnergy * 100; if (newFill <= 100) { - const newCoins = coins + click; + const newCoins = Number(coins + click); dispatch(updateCoinsRequestAsync(newCoins, newEnergy)) setCoins(newCoins); setEnergy(newEnergy) diff --git a/frontend/src/shared/Clicker/ClickerBtn/clickerbtn.module.css b/frontend/src/shared/Clicker/ClickerBtn/clickerbtn.module.css index 0b21bae..3306b9a 100644 --- a/frontend/src/shared/Clicker/ClickerBtn/clickerbtn.module.css +++ b/frontend/src/shared/Clicker/ClickerBtn/clickerbtn.module.css @@ -2,6 +2,7 @@ position: relative; width: 270px; height: 270px; + user-select: none; } .ringContainer::before { @@ -17,6 +18,7 @@ } .ringBig { + user-select: none; position: absolute; top: 0; left: 0; @@ -27,6 +29,7 @@ } .ringSmall { + user-select: none; z-index: 1; position: absolute; top: 50%; diff --git a/frontend/src/shared/Clicker/ClickerBtnFooter/ClickerBtnFooter.tsx b/frontend/src/shared/Clicker/ClickerBtnFooter/ClickerBtnFooter.tsx index f891281..918564a 100644 --- a/frontend/src/shared/Clicker/ClickerBtnFooter/ClickerBtnFooter.tsx +++ b/frontend/src/shared/Clicker/ClickerBtnFooter/ClickerBtnFooter.tsx @@ -13,7 +13,7 @@ export function ClickerBtnFooter({ text, className, onClick }: IClickerBtnFooter return (
-
+
{text === 'Аукцион' ? :}

{text}

diff --git a/frontend/src/shared/Clicker/ClickerFooter/ClickerFooter.tsx b/frontend/src/shared/Clicker/ClickerFooter/ClickerFooter.tsx index 90dd690..9858e57 100644 --- a/frontend/src/shared/Clicker/ClickerFooter/ClickerFooter.tsx +++ b/frontend/src/shared/Clicker/ClickerFooter/ClickerFooter.tsx @@ -16,9 +16,9 @@ export function ClickerFooter() {
navigate('/styles')}/> { !isDev ? navigate('/auction') : setCloseDev(false) }}/> -
+ { !isDev &&
-
+
} {!closeDev && } />} diff --git a/frontend/src/shared/Clicker/PointsZoom/PointsZoom.tsx b/frontend/src/shared/Clicker/PointsZoom/PointsZoom.tsx new file mode 100644 index 0000000..b9f02c4 --- /dev/null +++ b/frontend/src/shared/Clicker/PointsZoom/PointsZoom.tsx @@ -0,0 +1,47 @@ +import React, { useEffect, useState } from 'react'; +import styles from './pointszoom.module.css'; +import { formatNumber } from '../../../utils/formatNumber'; +import { ETextStyles } from '../../texts'; +import ReactDOM from 'react-dom'; + +interface IPointsZoom { + points: number, + setClose(a:boolean): void, + className ?: string, + closePointsAnim: boolean, + setClosePointsAnim(a: boolean): void +} + +export function PointsZoom({ points, setClose, className, closePointsAnim, setClosePointsAnim }: IPointsZoom) { + const [open, setOpen] = useState(true); + const node = document.querySelector('#modal_root'); + if (!node) return null; + + useEffect(() => { + const timer = setInterval(() => { + setOpen(false); + clearInterval(timer); + }, 400); + }, []); + + useEffect(() => { + if (closePointsAnim) { + const timer = setTimeout(() => { + setClosePointsAnim(false); + setClose(true); + clearTimeout(timer); + }, 400); + } + }, [closePointsAnim]); + + return ( +
+ {ReactDOM.createPortal(( +
+
+

{formatNumber(Number(points.toFixed(2)))}

+
+ ), node)} +
+ ); +} diff --git a/frontend/src/shared/Clicker/PointsZoom/index.ts b/frontend/src/shared/Clicker/PointsZoom/index.ts new file mode 100644 index 0000000..15bf8da --- /dev/null +++ b/frontend/src/shared/Clicker/PointsZoom/index.ts @@ -0,0 +1 @@ +export * from './PointsZoom'; diff --git a/frontend/src/shared/Clicker/PointsZoom/pointszoom.module.css b/frontend/src/shared/Clicker/PointsZoom/pointszoom.module.css new file mode 100644 index 0000000..ece51cb --- /dev/null +++ b/frontend/src/shared/Clicker/PointsZoom/pointszoom.module.css @@ -0,0 +1,102 @@ +.container { + position: absolute; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: 100%; + background: rgba(14, 14, 14, 0.01); + backdrop-filter: blur(2px); +} + +.innerContainer { + position: fixed; + top: 20px; + left: 10px; + z-index: 50; + width: calc(100% - 20px); + display: flex; + justify-content: space-between; + align-items: center; + padding: 5px 12px; + border-radius: 20px; + background-color: var(--grey1F); + box-shadow: 0px 0px 30px 15px rgba(128, 135, 192, 0.25); +} + +.icon { + width: 40px; + height: 40px; + background-position: center; + background-size: contain; + background-repeat: no-repeat; +} + +.animBack { + animation-name: animBack; + animation-duration: 0.4s; + animation-iteration-count: 1; + animation-timing-function: ease-in; +} + +.animBlock { + animation-name: animBlock; + animation-duration: 0.4s; + animation-iteration-count: 1; + animation-timing-function: ease-in; +} + +@keyframes animBack { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes animBlock { + 0% { + width: 64px; + } + + 100% { + width: 100%; + } +} + + +.animBackClose { + animation-name: animBackClose; + animation-duration: 0.4s; + animation-iteration-count: 1; + animation-timing-function: ease-out; +} + +.animBlockClose { + animation-name: animBlockClose; + animation-duration: 0.4s; + animation-iteration-count: 1; + animation-timing-function: ease-out; +} + +@keyframes animBackClose { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes animBlockClose { + 0% { + width: 100%; + } + + 100% { + width: 64px; + } +} \ No newline at end of file diff --git a/frontend/src/shared/Clicker/Profile/Profile.tsx b/frontend/src/shared/Clicker/Profile/Profile.tsx index c4b3748..f26f490 100644 --- a/frontend/src/shared/Clicker/Profile/Profile.tsx +++ b/frontend/src/shared/Clicker/Profile/Profile.tsx @@ -3,6 +3,7 @@ import styles from './profile.module.css'; import { ETextStyles } from '../../texts'; import { formatNumber } from '../../../utils/formatNumber'; import { PersonIcon } from '../../Elements/PersonIcon'; +import { EIcons, Icon } from '../../Icons'; interface IProfileClicker { name: string, @@ -14,12 +15,12 @@ interface IProfileClicker { export function Profile({ name, points, img, className }: IProfileClicker) { return (
- + {img ? :
}

{name}

- {formatNumber(points)} + {formatNumber(Number(points.toFixed(2)))}

diff --git a/frontend/src/shared/Clicker/Profile/profile.module.css b/frontend/src/shared/Clicker/Profile/profile.module.css index 3345976..0552925 100644 --- a/frontend/src/shared/Clicker/Profile/profile.module.css +++ b/frontend/src/shared/Clicker/Profile/profile.module.css @@ -37,4 +37,14 @@ .content { margin-left: 4px; +} + +.emptyIcon { + display: flex; + align-items: center; + justify-content: center; + width: 25px; + height: 25px; + background-color: var(--grey12); + border-radius: 50%; } \ No newline at end of file diff --git a/frontend/src/shared/Clicker/SectionsBlock/SectionsBlock.tsx b/frontend/src/shared/Clicker/SectionsBlock/SectionsBlock.tsx index b542ffc..3212c56 100644 --- a/frontend/src/shared/Clicker/SectionsBlock/SectionsBlock.tsx +++ b/frontend/src/shared/Clicker/SectionsBlock/SectionsBlock.tsx @@ -10,7 +10,11 @@ import { UsersIcons } from '../../Elements/UsersIcons'; import { formatNumber } from '../../../utils/formatNumber'; import { DevPopup } from '../../Elements/DevPopup'; -export function SectionsBlock() { +interface ISectionsBlock { + mult:number; +} + +export function SectionsBlock({ mult }: ISectionsBlock) { const scaleRef = 70; const [close, setClose] = useState(true); const navigate = useNavigate(); @@ -41,20 +45,23 @@ export function SectionsBlock() {
{!isDev ? navigate('/rating') : setCloseDev(false)}}> - {!isDev &&
+ {
# - {formatNumber(12980)} + {formatNumber(1)}
} - { !isDev ? setClose(false) : setCloseDev(false) }}> - {!isDev &&} + { setClose(false) }}> +

+ {'X '} + {mult} +

- { !isDev ? navigate('/referral') : setCloseDev(false) }}> - {!isDev &&
+ { navigate('/referral') }}> + {
diff --git a/frontend/src/shared/Clicker/SectionsBlock/sectionsblock.module.css b/frontend/src/shared/Clicker/SectionsBlock/sectionsblock.module.css index 66b598e..0b7d52e 100644 --- a/frontend/src/shared/Clicker/SectionsBlock/sectionsblock.module.css +++ b/frontend/src/shared/Clicker/SectionsBlock/sectionsblock.module.css @@ -54,4 +54,20 @@ left: 0; height: 10px; background: var(--primary); +} + +.dev { + position: relative; +} + +.dev::after { + content: ''; + position: absolute; + top: -12px; + left: -12px; + width: calc(100% + 24px); + height: calc(100% + 24px); + border-radius: 14px; + background: rgba(20, 20, 20, 0.80); + backdrop-filter: blur(5px); } \ No newline at end of file diff --git a/frontend/src/shared/Elements/DevPopup/DevPopup.tsx b/frontend/src/shared/Elements/DevPopup/DevPopup.tsx index ec31b38..7cca1f7 100644 --- a/frontend/src/shared/Elements/DevPopup/DevPopup.tsx +++ b/frontend/src/shared/Elements/DevPopup/DevPopup.tsx @@ -14,9 +14,9 @@ export function DevPopup({ setClose, type }: IDevPopup) {
-

{type === 'dev' ? 'Скоро будет доступно' : 'Возникла ошибка'}

-

{type === 'dev' ? 'Пока что делаем эту фичу. Скоро сможете поюзать.' : 'Мы пока не можем принимать клики, но скоро всё починим.'}

-
); } diff --git a/frontend/src/shared/Elements/StylesSwiper/StylesSwiper.tsx b/frontend/src/shared/Elements/StylesSwiper/StylesSwiper.tsx index e03d223..5014f8f 100644 --- a/frontend/src/shared/Elements/StylesSwiper/StylesSwiper.tsx +++ b/frontend/src/shared/Elements/StylesSwiper/StylesSwiper.tsx @@ -73,7 +73,7 @@ export const StylesSwiper: React.FC = memo(({ selectedStyle, setC transform: `rotate(${isActive ? 0 : deg}deg)`, filter: `blur(${isActive ? 0 : 3}px)` }} - >
+ >
); }} ))} diff --git a/frontend/src/shared/Elements/StylesSwiper/stylesswiper.module.css b/frontend/src/shared/Elements/StylesSwiper/stylesswiper.module.css index 1243414..1a46410 100644 --- a/frontend/src/shared/Elements/StylesSwiper/stylesswiper.module.css +++ b/frontend/src/shared/Elements/StylesSwiper/stylesswiper.module.css @@ -24,33 +24,33 @@ background: var(--gradientBlue); } -.card1 div { +/*.card1 div { background-image: url('assets/style1.png'); -} +}*/ .card2 { background: var(--gradientOrange); } -.card2 div { +/*.card2 div { background-image: url('assets/style2.png'); -} +}*/ .card3 { background: var(--gradientYellow); } -.card3 div { +/*.card3 div { background-image: url('assets/style3.png'); -} +}*/ .card4 { background: var(--gradientOrangeYellow); } -.card4 div { +/*.card4 div { background-image: url('assets/style4.png'); -} +}*/ .disabled { position: relative; diff --git a/frontend/src/shared/Elements/UsersIcons/usersicons.module.css b/frontend/src/shared/Elements/UsersIcons/usersicons.module.css index d3aa17e..8cb546e 100644 --- a/frontend/src/shared/Elements/UsersIcons/usersicons.module.css +++ b/frontend/src/shared/Elements/UsersIcons/usersicons.module.css @@ -6,7 +6,7 @@ position: absolute; top: 0; border-radius: 50%; - background-color: var(--white); + background-color: var(--grey6C); border: 1px solid var(--grey12); } diff --git a/frontend/src/shared/Icons/Icon.tsx b/frontend/src/shared/Icons/Icon.tsx index 159d5be..1c7ecc6 100644 --- a/frontend/src/shared/Icons/Icon.tsx +++ b/frontend/src/shared/Icons/Icon.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { ArrowIcon, BitCoinIcon, ChartIcon, CopyIcon, FireIcon, SmallCoinIcon, TrendIcon, UpPriceIcon } from './commonIcons'; +import { ArrowIcon, BitCoinIcon, ChartIcon, CopyIcon, FireIcon, ProfileIcon, SmallCoinIcon, StyleIcon, TrendIcon, UpPriceIcon } from './commonIcons'; import { MedalFirstIcon, MedalSecondIcon, MedalThirdIcon } from './medals'; interface IconsProps { icon: EIcons; @@ -17,7 +17,9 @@ export const EIcons = { TrendIcon: , ChartIcon: , CopyIcon: , - UpPriceIcon: + UpPriceIcon: , + ProfileIcon: , + StyleIcon: } as const; type EIcons = typeof EIcons[keyof typeof EIcons]; diff --git a/frontend/src/shared/Icons/commonIcons.tsx b/frontend/src/shared/Icons/commonIcons.tsx index 2b2e2fb..20dc2bc 100644 --- a/frontend/src/shared/Icons/commonIcons.tsx +++ b/frontend/src/shared/Icons/commonIcons.tsx @@ -76,4 +76,22 @@ export function UpPriceIcon() { ) +} + +export function ProfileIcon() { + return ( + + + + ) +} + +export function StyleIcon() { + return ( + + + + + + ) } \ No newline at end of file diff --git a/frontend/src/shared/ModalWindow/ModalWindow.tsx b/frontend/src/shared/ModalWindow/ModalWindow.tsx index 9ffc001..e59103b 100644 --- a/frontend/src/shared/ModalWindow/ModalWindow.tsx +++ b/frontend/src/shared/ModalWindow/ModalWindow.tsx @@ -15,11 +15,21 @@ interface IModalWindow { export function ModalWindow({ modalBlock, setClose, removeBtn, closeAnimOut, setCloseAnimOut }: IModalWindow) { const node = document.querySelector('#modal_root'); const [closeAnim, setCloseAnim] = useState(false); + const html = document.querySelector('html'); + + useEffect(() => { + if (html) { + html.style.overflowY = 'hidden'; + } + }, []); if (!node) return null; const closePopUp = () => { setCloseAnim(true); + if (html) { + html.style.overflowY = 'auto'; + } const timer = setTimeout(() => { setClose(true); diff --git a/frontend/src/shared/Pages/ClickerPage/ClickerPage.tsx b/frontend/src/shared/Pages/ClickerPage/ClickerPage.tsx index d744cb4..86cc53b 100644 --- a/frontend/src/shared/Pages/ClickerPage/ClickerPage.tsx +++ b/frontend/src/shared/Pages/ClickerPage/ClickerPage.tsx @@ -6,6 +6,10 @@ import { ETextStyles } from '../../texts'; import { SectionsBlock } from '../../Clicker/SectionsBlock'; import { ClickerFooter } from '../../Clicker/ClickerFooter'; import { StyleElements } from '../../Clicker/StyleElements'; +import { PointsZoom } from '../../Clicker/PointsZoom'; +import { Timer } from '../../Auction/Timer'; +import { useWindowSize } from 'usehooks-ts'; +import { useAppSelector } from '../../hooks/useAppSelector'; interface IClickerPageInterface { name: string, @@ -17,16 +21,42 @@ interface IClickerPageInterface { export function ClickerPage({ name, points, img, energy }: IClickerPageInterface) { const styleIndex = Number(localStorage.getItem('selectedStyle')); const [coins, setCoins] = useState(points); + const [mult, setMult] = useState(1); + const [closePoints, setClosePoints] = useState(true); + const [closePointsAnim, setClosePointsAnim] = useState(false); + const { width, height } = useWindowSize(); + const savedMult = useAppSelector(state => state.mult); + useEffect(() => { + setMult(savedMult); + }, [savedMult]); + + useEffect(() => { + //@ts-ignore + let timer; + + if (points !== coins) { + setClosePoints(false); + timer = setTimeout(() => { + setClosePointsAnim(true); + }, 2000); + } + return () => { + //@ts-ignore + clearTimeout(timer); + }; + }, [coins]); + return (
+ {!closePoints && }

Мои рекорды

- +
-
- +
670 && 'calc(100vh - 355px)'}`}}> +
{styleIndex != 0 &&
diff --git a/frontend/src/shared/Pages/ClickerPage/clickerpage.module.css b/frontend/src/shared/Pages/ClickerPage/clickerpage.module.css index 1184469..c8a5103 100644 --- a/frontend/src/shared/Pages/ClickerPage/clickerpage.module.css +++ b/frontend/src/shared/Pages/ClickerPage/clickerpage.module.css @@ -30,7 +30,7 @@ .clicker { position: relative; z-index: 5; - margin-bottom: 24px; + margin-bottom: 100px; display: flex; align-items: center; justify-content: center; @@ -39,3 +39,10 @@ .profile { margin-bottom: 8px; } + +/*.pointsAnim { + position: absolute; + width: 100%; + top: 0; + left: 0; +}*/ \ No newline at end of file diff --git a/frontend/src/shared/Pages/RoutePage/RoutePage.tsx b/frontend/src/shared/Pages/RoutePage/RoutePage.tsx index c9b7548..ac27988 100644 --- a/frontend/src/shared/Pages/RoutePage/RoutePage.tsx +++ b/frontend/src/shared/Pages/RoutePage/RoutePage.tsx @@ -12,6 +12,7 @@ import { useUserData } from '../../hooks/useUserData'; import { Spinner } from '../../Elements/Spinner'; import { updateBackground } from '../../../utils/updateBackground'; import { ErrorPage } from '../ErrorPage'; +import { useNavigate } from 'react-router-dom'; interface IRoutePage { page: string @@ -20,26 +21,37 @@ interface IRoutePage { export function RoutePage({ page }: IRoutePage) { const verified = useTgData(); const { dataUser, loadingUser, errorUser } = useUserData(); + const navigate = useNavigate(); + //@ts-ignore + const tg = window.Telegram.WebApp; + var BackButton = tg.BackButton; useEffect(() => { updateBackground(page); updateStyles(); + if(page === 'main') { + BackButton.hide(); + } else { + BackButton.show(); + } }, [page]); - //{!verified ? : - //} + BackButton.onClick(function () { + navigate(-1); + }); return (
-
- {page === 'main' && !loadingUser && !errorUser && dataUser.name && dataUser.avatar && } + {!verified ? :
+ { //@ts-ignore + page === 'main' && !loadingUser && !errorUser && dataUser.name && } {page === 'rating' && !loadingUser && !errorUser && } {page === 'referral' && !loadingUser && !errorUser && } {page === 'auction' && !loadingUser && !errorUser && } {page === 'styles' && !loadingUser && !errorUser && } {(loadingUser) &&
} {errorUser && !loadingUser && } -
+
}
); } diff --git a/frontend/src/shared/Pages/StoragePage/StoragePage.tsx b/frontend/src/shared/Pages/StoragePage/StoragePage.tsx index 9f3007f..3845246 100644 --- a/frontend/src/shared/Pages/StoragePage/StoragePage.tsx +++ b/frontend/src/shared/Pages/StoragePage/StoragePage.tsx @@ -2,30 +2,41 @@ import React, { useEffect, useState } from 'react'; import styles from './storagepage.module.css'; import { ETextStyles } from '../../texts'; import { StorageBtn } from '../../Storage/StorageBtn'; -import { StorageScale } from '../../Storage/StorageScale'; -import { PopupCard } from '../../Elements/PopupCard'; import { Button } from '../../Button'; import { EIcons, Icon } from '../../Icons'; import { сopyTextToClipboard } from '../../../utils/copyText'; import { Notification } from '../../Notification'; import { StoragePageBlock } from '../../Storage/StoragePageBlock'; import { FriendsPageBlock } from '../../Storage/FriendsPageBlock'; +import { useAppSelector } from '../../hooks/useAppSelector'; +import { DevPopup } from '../../Elements/DevPopup'; +import { ModalWindow } from '../../ModalWindow'; export function StoragePage() { + const userId = useAppSelector(state => state.userTg.id); const [page, setPage] = useState('storage'); - const refLink = 'https://open.spotify.com/'; + const refLink = `https://t.me/sapphirecrown_bot?start=user_${userId}`; const [showNotif, setShow] = useState(false); + const [closeAnimOut, setCloseAnimOut] = useState(false); + const [closeDev, setCloseDev] = useState(true); return (

Реферальная программа

setPage('storage')}/> - setPage('friends')} /> + { + setCloseDev(false); + //setPage('friends') + } + } />
{page === 'storage' ? : }
); } diff --git a/frontend/src/shared/Pages/WrongSourcePage/WrongSourcePage.tsx b/frontend/src/shared/Pages/WrongSourcePage/WrongSourcePage.tsx index 9f781cc..2f6737d 100644 --- a/frontend/src/shared/Pages/WrongSourcePage/WrongSourcePage.tsx +++ b/frontend/src/shared/Pages/WrongSourcePage/WrongSourcePage.tsx @@ -8,9 +8,11 @@ export function WrongSourcePage() { const { width, height } = useWindowSize(); return ( -
-

Похоже вы вошли не по той ссылке...

-
); } diff --git a/frontend/src/shared/Pages/WrongSourcePage/wrongsourcepage.module.css b/frontend/src/shared/Pages/WrongSourcePage/wrongsourcepage.module.css index 6910fb4..db9a2b0 100644 --- a/frontend/src/shared/Pages/WrongSourcePage/wrongsourcepage.module.css +++ b/frontend/src/shared/Pages/WrongSourcePage/wrongsourcepage.module.css @@ -4,7 +4,15 @@ align-items: center; justify-content: center; flex-direction: column; +} + +.innerContainer { + max-width: 400px; gap: 30px; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; } .title { diff --git a/frontend/src/shared/Storage/StorageBtn/StorageBtn.tsx b/frontend/src/shared/Storage/StorageBtn/StorageBtn.tsx index 3870c6b..6f80fe5 100644 --- a/frontend/src/shared/Storage/StorageBtn/StorageBtn.tsx +++ b/frontend/src/shared/Storage/StorageBtn/StorageBtn.tsx @@ -6,14 +6,15 @@ import { EIcons, Icon } from '../../Icons'; interface IStorageBtn { type: 'storage' | 'friends', active: boolean, - onClick(): void + onClick(): void, + isDev ?: boolean, } -export function StorageBtn({ type, active, onClick }: IStorageBtn) { +export function StorageBtn({ type, active, onClick, isDev=false }: IStorageBtn) { const selectedStyle = Number(localStorage.getItem('selectedStyle')); return ( -