From 4dc6f79b4bc6be11c95170effbf772fa8240144c Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 21 Oct 2024 23:23:33 +0300 Subject: [PATCH 01/79] Updated dockerfile to match new standard --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3dc0489..cbf76ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:latest as build-stage +FROM node:latest AS build-stage WORKDIR /app @@ -10,7 +10,7 @@ COPY . . RUN yarn build -FROM nginx:stable-alpine as production-stage +FROM nginx:stable-alpine AS production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html From 3b4d966a0f8f4a1a0341d37c44af91d8e081d794 Mon Sep 17 00:00:00 2001 From: Alex Dyakonov <115474788+AlexDyakonov@users.noreply.github.com> Date: Sat, 26 Oct 2024 21:09:27 +0300 Subject: [PATCH 02/79] added cd for dev branch (#22) Co-authored-by: Mike de Geofroy --- .github/workflows/cd-dev.yaml | 49 +++++++++++++++++++ ...ld-push-deploy.yaml => cd-production.yaml} | 0 2 files changed, 49 insertions(+) create mode 100644 .github/workflows/cd-dev.yaml rename .github/workflows/{cd-build-push-deploy.yaml => cd-production.yaml} (100%) diff --git a/.github/workflows/cd-dev.yaml b/.github/workflows/cd-dev.yaml new file mode 100644 index 0000000..f6ae44f --- /dev/null +++ b/.github/workflows/cd-dev.yaml @@ -0,0 +1,49 @@ +name: CD Dev + +on: + workflow_run: + workflows: ["CI"] + types: + - completed + +jobs: + deploy_to_dev: + name: Deploy to Dev + if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'dev' }} + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + attestations: write + id-token: write + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Set short git commit SHA + id: vars + run: | + calculatedSha=$(git rev-parse --short ${{ github.sha }}) + echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push Docker image + id: push + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: true + tags: | + shampiniony/dishdash-miniapp:dev + shampiniony/dishdash-miniapp:dev-${{ env.COMMIT_SHORT_SHA }} + + - name: Trigger Watchtower to update dev container + shell: bash + run: | + curl -H "Authorization: Bearer ${{ secrets.WATCHTOWER_HTTP_API_TOKEN }}" ${{ secrets.WATCHTOWER_UPDATE_ENDPOINT_DEV }} diff --git a/.github/workflows/cd-build-push-deploy.yaml b/.github/workflows/cd-production.yaml similarity index 100% rename from .github/workflows/cd-build-push-deploy.yaml rename to .github/workflows/cd-production.yaml From 1e706ecc3b6359534c59c639fb80c3c0e358f8e1 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 13:27:21 +0300 Subject: [PATCH 03/79] fixed formatting --- .env.example | 0 src/modules/game/card.tsx | 142 +++++++++++++++-------------- src/modules/game/swipable.card.tsx | 52 ++++++----- src/pages/game.page.tsx | 38 ++++---- src/pages/home.page.tsx | 19 ++++ src/shared/api/lobby.api.ts | 10 ++ src/shared/constants.ts | 3 +- src/shared/routes/routes.tsx | 50 +++++----- 8 files changed, 177 insertions(+), 137 deletions(-) create mode 100644 .env.example create mode 100644 src/pages/home.page.tsx diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index 8282c89..f30d665 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -8,85 +8,87 @@ import { useLobbyStore } from '@/shared/stores/lobby.store'; import { getTime } from '@/shared/util/time.util'; interface Props { - data: Card; + data: Card; } export const CardComponent = ({ data }: Props) => { - const [expanded, setExpanded] = useState(false); - const { settings } = useLobbyStore(); + const [expanded, setExpanded] = useState(false); + const { settings } = useLobbyStore(); - console.log(location, data.location); + console.log(location, data.location); - const { disableVerticalSwipes, enableVerticalSwipes } = useWebApp(); - useEffect(() => { - disableVerticalSwipes(); + const { disableVerticalSwipes, enableVerticalSwipes } = useWebApp(); + useEffect(() => { + disableVerticalSwipes(); - return () => { - enableVerticalSwipes(); - }; - }, []); + return () => { + enableVerticalSwipes(); + }; + }, []); - const toggleExpand = () => { - setExpanded(!expanded); - }; + const toggleExpand = () => { + setExpanded(!expanded); + }; - useEffect(() => { - console.log(expanded); - }, [expanded]); + useEffect(() => { + console.log(expanded); + }, [expanded]); - const handleDrag = (_: any, info: PanInfo) => { - if (info.offset.y < -20 && !expanded) { - setExpanded(true); - } else if (info.offset.y > 20 && expanded) { - setExpanded(false); - } - }; + const handleDrag = (_: any, info: PanInfo) => { + if (info.offset.y < -20 && !expanded) { + setExpanded(true); + } else if (info.offset.y > 20 && expanded) { + setExpanded(false); + } + }; - return ( -
-
-
- -
-
-

- {data.title.split(', ')[0]} -

-
- -
+ return ( +
+
+
+ +
+
+

+ {data.title.split(', ')[0]} +

+
+ +
+
+
+
+ +
+ {data?.tags.map((el, index) => ( + {el.name} + ))} + {`~ ${data.priceAvg.toString()}₽`} + {`~ ${getTime(settings.location, data.location)}`} +
+
+

+ {data?.description} +

+
+
+
-
-
- -
- {data?.tags.map((el, index) => ( - {el.name} - ))} - {`~ ${data.priceAvg.toString()}₽`} - {`~ ${getTime(settings.location, data.location)}`} -
-

- {data?.description} -

-
-
-
- ); + ); }; diff --git a/src/modules/game/swipable.card.tsx b/src/modules/game/swipable.card.tsx index 1307b5d..61deee3 100644 --- a/src/modules/game/swipable.card.tsx +++ b/src/modules/game/swipable.card.tsx @@ -1,4 +1,4 @@ -import { motion, useMotionValue, useTransform, animate } from 'framer-motion'; +import { motion, useMotionValue, useTransform, animate, PanInfo } from 'framer-motion'; import { CardSwipeDirection, Card } from '@/shared/types/card.interface'; import { useLobbyStore } from '@/shared/stores/lobby.store'; import { swipesEvent } from '@/shared/events/app-events/swipes.event'; @@ -10,6 +10,9 @@ type Props = { isLast: boolean; }; +// todo +// - for some reason the cards don't swipe on android right now + const SwipableCard = ({ id, data }: Props) => { const { cards, setCards } = useLobbyStore(); @@ -40,32 +43,35 @@ const SwipableCard = ({ id, data }: Props) => { sendDirection(direction); } else { - animate(x, 0, { type: 'spring', stiffness: 500, damping: 30 }); + animate(x, 0, { type: 'spring', stiffness: 1000, damping: 30 }); } }; - return ( - { - if ( - Math.abs(info.offset.x) > 20 || - Math.abs(info.offset.y) < 20 || - Math.abs(info.offset.x) * 1.8 > Math.abs(info.offset.y) - ) { + const onPan = (info: PanInfo) => { + console.log(info); + if ( + Math.abs(info.offset.x) > 20 || + Math.abs(info.offset.y) < 20 || + Math.abs(info.offset.x) * 1.8 > Math.abs(info.offset.y) + ) { x.set(info.offset.x); - } - }} - onPanEnd={(_, info) => handlePanEnd(info)} - > - - - ); + } + } + + return ( + onPan(info)} + onPanEnd={(_, info) => handlePanEnd(info)} + > + + + ); }; export default SwipableCard; diff --git a/src/pages/game.page.tsx b/src/pages/game.page.tsx index 6a95c25..0485117 100644 --- a/src/pages/game.page.tsx +++ b/src/pages/game.page.tsx @@ -9,27 +9,27 @@ import { useRoutes } from '@/shared/hooks/useRoutes'; import { GameComponent } from '@/components/ui/game'; const GamePage = () => { - const { setLobbyId, lobbyId } = useLobbyStore(); - const { id } = useParams<{ id: string }>(); //lobbyId - const { user, createUser, ready } = useAuth(); - const [initDataUnsafe] = useInitData(); - useRoutes(); + const { setLobbyId, lobbyId } = useLobbyStore(); + const { id } = useParams<{ id: string }>(); //lobbyId + const { user, createUser, ready } = useAuth(); + const [initDataUnsafe] = useInitData(); + useRoutes(); - useEffect(() => { - if (user === null && initDataUnsafe?.user && ready) { - createUser({ - name: initDataUnsafe.user.username ?? initDataUnsafe.user.first_name, - avatar: '', - telegram: initDataUnsafe.user.id, - }); - } - if (id && !!user && lobbyId === null) { - setLobbyId(id); - userEvents.joinLobby(id, user?.id); - } - }, [id, user, ready]); + useEffect(() => { + if (user === null && initDataUnsafe?.user && ready) { + createUser({ + name: initDataUnsafe.user.username ?? initDataUnsafe.user.first_name, + avatar: '', + telegram: initDataUnsafe.user.id, + }); + } + if (id && !!user && lobbyId === null) { + setLobbyId(id); + userEvents.joinLobby(id, user?.id); + } + }, [id, user, ready]); - return ; + return ; }; export default GamePage; diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx new file mode 100644 index 0000000..45ffbd1 --- /dev/null +++ b/src/pages/home.page.tsx @@ -0,0 +1,19 @@ +import { MainButton, useSwitchInlineQuery } from "@vkruglikov/react-telegram-web-app" +import { useNavigate } from "react-router-dom"; + +// todo +// first of all I need to find out why the fuck does this thing work so badly +// this means that I need to see why it works in a clunky way on mobile, then I need +// to find out how to fix the empty screen + +export const HomePage = () => { + const switchInlineQuery = useSwitchInlineQuery(); + const navigate = useNavigate(); + + return ( + { + switchInlineQuery('', ["users"]) + navigate('/') + }} text="Поделиться" /> + ) +} diff --git a/src/shared/api/lobby.api.ts b/src/shared/api/lobby.api.ts index ed541a8..05cfe38 100644 --- a/src/shared/api/lobby.api.ts +++ b/src/shared/api/lobby.api.ts @@ -16,3 +16,13 @@ export const fetchLobby = async (id: string): Promise => { return undefined; } }; + +export const postLobby = async (id: string): Promise => { + try { + const response = await axios.get(`${API_URL}/api/v1/lobbies/${id}`); + return response.data; + } catch (err) { + console.error('Error fetching tags:', err); + return undefined; + } +}; diff --git a/src/shared/constants.ts b/src/shared/constants.ts index 5cfd6a3..9a20d1b 100644 --- a/src/shared/constants.ts +++ b/src/shared/constants.ts @@ -1 +1,2 @@ -export const API_URL = 'https://dishdash.ru'; // Замените на ваш URL \ No newline at end of file +// export const API_URL = 'https://dishdash.ru'; // Замените на ваш URL +export const API_URL = import.meta.env.VITE_SOME_KEY; // Замените на ваш URL diff --git a/src/shared/routes/routes.tsx b/src/shared/routes/routes.tsx index a9647b6..6fa850b 100644 --- a/src/shared/routes/routes.tsx +++ b/src/shared/routes/routes.tsx @@ -16,35 +16,37 @@ import MatchCard from '@/modules/game/match.card'; import GameCards from '@/modules/game/swipes'; import { useThemeParams } from '@vkruglikov/react-telegram-web-app'; import useTheme from '../hooks/useTheme'; +import { HomePage } from '@/pages/home.page'; const AppRoutes = () => { - const { subscribe, socket } = useSocket(); + const { subscribe, socket } = useSocket(); - const params = useThemeParams(); - useTheme(params[1], params[0] === 'dark'); + const params = useThemeParams(); + useTheme(params[1], params[0] === 'dark'); - // не вижу смысла выносить в отдельный компонент-обертку 1 useEffect, да, конечно он тут не то чтобы к месту, но и так роуты пустые - useEffect(() => { - subscribe('card', (data) => cardEvent.handle(data)); - subscribe('match', (data) => matchEvent.handle(data)); - subscribe('userJoined', (data) => userEvents.userJoin(data)); - subscribe('userLeft', (data) => userEvents.userLeft(data)); - subscribe('settingsUpdate', (data) => settingsUpdateEvent.handle(data)); - subscribe('startSwipes', () => swipesEvent.handle()); - subscribe('releaseMatch', () => releaseMatchEvent.handle()); - subscribe('finish', (data) => finishEvent.handle(data)); - }, [socket]); + // не вижу смысла выносить в отдельный компонент-обертку 1 useEffect, да, конечно он тут не то чтобы к месту, но и так роуты пустые + useEffect(() => { + subscribe('card', (data) => cardEvent.handle(data)); + subscribe('match', (data) => matchEvent.handle(data)); + subscribe('userJoined', (data) => userEvents.userJoin(data)); + subscribe('userLeft', (data) => userEvents.userLeft(data)); + subscribe('settingsUpdate', (data) => settingsUpdateEvent.handle(data)); + subscribe('startSwipes', () => swipesEvent.handle()); + subscribe('releaseMatch', () => releaseMatchEvent.handle()); + subscribe('finish', (data) => finishEvent.handle(data)); + }, [socket]); - return ( - - }> - } /> - } /> - } /> - } /> - - - ); + return ( + + }/> + }> + } /> + } /> + } /> + } /> + + + ); }; export default AppRoutes; From c82671a3f2371834ed30816ad7e0f203a64e3431 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 13:58:20 +0300 Subject: [PATCH 04/79] Moved api url to env Cleaned up useless console log --- .env | 1 + .env.example | 1 + src/App.tsx | 18 +++++++++--------- src/shared/constants.ts | 3 +-- 4 files changed, 12 insertions(+), 11 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..0e7f06f --- /dev/null +++ b/.env @@ -0,0 +1 @@ +VITE_API_URL=https://dev.dishdash.ru diff --git a/.env.example b/.env.example index e69de29..0e7f06f 100644 --- a/.env.example +++ b/.env.example @@ -0,0 +1 @@ +VITE_API_URL=https://dev.dishdash.ru diff --git a/src/App.tsx b/src/App.tsx index 7dc9405..c366e82 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,15 +4,15 @@ import { AuthProvider } from './shared/providers/auth.provider'; import AppRoutes from './shared/routes/routes'; function App() { - return ( - - - - - - - - ); + return ( + + + + + + + + ); } export default App; diff --git a/src/shared/constants.ts b/src/shared/constants.ts index 9a20d1b..1aa05e4 100644 --- a/src/shared/constants.ts +++ b/src/shared/constants.ts @@ -1,2 +1 @@ -// export const API_URL = 'https://dishdash.ru'; // Замените на ваш URL -export const API_URL = import.meta.env.VITE_SOME_KEY; // Замените на ваш URL +export const API_URL = import.meta.env.VITE_API_URL; From 63cdef3c34d4b0cd680ac3cd6a32b426a05d4082 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 17:54:54 +0300 Subject: [PATCH 05/79] Added .env info log --- src/App.tsx | 3 + src/pages/lobby-settings.page.tsx | 217 +++++++++++++++--------------- 2 files changed, 113 insertions(+), 107 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index c366e82..01b37cc 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,8 +2,11 @@ import { SocketProvider } from './shared/providers/socket.provider'; import { WebAppProvider } from '@vkruglikov/react-telegram-web-app'; import { AuthProvider } from './shared/providers/auth.provider'; import AppRoutes from './shared/routes/routes'; +import { API_URL } from './shared/constants'; function App() { + console.info(API_URL); + return ( diff --git a/src/pages/lobby-settings.page.tsx b/src/pages/lobby-settings.page.tsx index ca108b9..75ae233 100644 --- a/src/pages/lobby-settings.page.tsx +++ b/src/pages/lobby-settings.page.tsx @@ -12,125 +12,128 @@ import { MainButton } from '@vkruglikov/react-telegram-web-app'; import { fetchTags } from '@/shared/api/tags.api'; const LobbySettingsPage = () => { - const { settings, tags, setTags } = useLobbyStore(); - const { user } = useAuth(); - const { priceMin, priceMax, maxDistance } = settings; + const { settings, tags, setTags } = useLobbyStore(); + const { user } = useAuth(); + const { priceMin, priceMax, maxDistance } = settings; - // causes lag wihout callback - const handleSettingsChange = useCallback((newSettings: Settings) => { - settingsUpdateEvent.update(newSettings); - }, []); + // causes lag wihout callback + const handleSettingsChange = useCallback((newSettings: Settings) => { + settingsUpdateEvent.update(newSettings); + }, []); - const onPriceChange = (value: number[]) => { - handleSettingsChange({ - priceMin: value[0], - priceMax: value[0], - maxDistance, - tags: settings.tags, - location: settings.location, - }); - }; + const onPriceChange = (value: number[]) => { + handleSettingsChange({ + priceMin: value[0], + priceMax: value[0], + maxDistance, + tags: settings.tags, + location: settings.location, + }); + }; - const toggleCategoryType = (tagId: number) => { - const found = settings.tags.find((x) => x == tagId); - let updatedTags: number[] = []; + const toggleCategoryType = (tagId: number) => { + const found = settings.tags.find((x) => x == tagId); + let updatedTags: number[] = []; - if (found != undefined) { - updatedTags = settings.tags.filter((x) => x != found); - } else { - updatedTags = [...settings.tags, tagId]; - } + if (found != undefined) { + updatedTags = settings.tags.filter((x) => x != found); + } else { + updatedTags = [...settings.tags, tagId]; + } - settingsUpdateEvent.update({ - priceMin: settings.priceMin, - priceMax: settings.priceMax, - maxDistance: settings.maxDistance, - tags: updatedTags, - location: settings.location, - }); - }; + settingsUpdateEvent.update({ + priceMin: settings.priceMin, + priceMax: settings.priceMax, + maxDistance: settings.maxDistance, + tags: updatedTags, + location: settings.location, + }); + }; - useEffect(() => { - fetchTags().then((tags) => { - if (tags != undefined) setTags(tags); - }); - }, [user]); + useEffect(() => { + fetchTags().then((tags) => { + if (tags != undefined) setTags(tags); + }); + }, [user]); - const pageVariants = { - initial: { opacity: 0 }, - animate: { - opacity: 1, - transition: { duration: 2, ease: cubicBezier(0.16, 1, 0.3, 1) }, - }, - exit: { - opacity: 0, - transition: { duration: 0.2, ease: cubicBezier(0.7, 0.84, 0, 0) }, - }, - }; + const pageVariants = { + initial: { opacity: 0 }, + animate: { + opacity: 1, + transition: { duration: 2, ease: cubicBezier(0.16, 1, 0.3, 1) }, + }, + exit: { + opacity: 0, + transition: { duration: 0.2, ease: cubicBezier(0.7, 0.84, 0, 0) }, + }, + }; - return ( - - - -
-

- Настройки -

+ return ( + + + +
+
+

+ Настройки +

+ penis +
-
- {tags - .sort((a, b) => a.id - b.id) - .map((tag) => ( - x === tag.id)} - className={ - 'flex items-center justify-between py-6 px-4 rounded-xl transition-colors bg-secondary border-none duration-150 w-full' - } - onClick={() => toggleCategoryType(tag.id)} - > -
- {tag.name} +
+ {tags + .sort((a, b) => a.id - b.id) + .map((tag) => ( + x === tag.id)} + className={ + 'flex items-center justify-between py-6 px-4 rounded-xl transition-colors bg-secondary border-none duration-150 w-full' + } + onClick={() => toggleCategoryType(tag.id)} + > +
+ {tag.name} +
+
+ ))} +
-
- ))} -
-
-
-
-

Средняя цена

-

- {(priceMin + priceMax) / 2 || 0} ₽ -

{' '} -
- -
-

0 ₽

-

3 000 ₽

-
-
+
+
+

Средняя цена

+

+ {(priceMin + priceMax) / 2 || 0} ₽ +

{' '} +
+ +
+

0 ₽

+

3 000 ₽

+
+
- swipesEvent.start()} text="Начать" /> -
-
-
- ); + swipesEvent.start()} text="Начать" /> + + + + ); }; export default LobbySettingsPage; From 557429f102ebf8092611adae38081c1f3c787878 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 17:56:49 +0300 Subject: [PATCH 06/79] fix(env): pushed env lol --- .env | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 0e7f06f..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -VITE_API_URL=https://dev.dishdash.ru From 9efa2e6bda96a3e8fafd87d3038b8feb71c9e61d Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 17:57:51 +0300 Subject: [PATCH 07/79] Added gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index a547bf3..50c8dda 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ dist-ssr *.njsproj *.sln *.sw? + +.env From dba7984b94f44b9b32cbbad9f12ee9a88c481fbf Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 18:14:54 +0300 Subject: [PATCH 08/79] Added .env values --- .env.development | 1 + .env.production | 1 + 2 files changed, 2 insertions(+) create mode 100644 .env.development create mode 100644 .env.production diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..0e7f06f --- /dev/null +++ b/.env.development @@ -0,0 +1 @@ +VITE_API_URL=https://dev.dishdash.ru diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..4d8ece4 --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +VITE_API_URL=https://dishdash.ru From f70d62de2708ee94b31e2ff726242156bb59bf7a Mon Sep 17 00:00:00 2001 From: Alex Dyakonov Date: Tue, 29 Oct 2024 18:21:15 +0300 Subject: [PATCH 09/79] Updated cd pipelines. Added envs into build --- .github/workflows/cd-dev.yaml | 4 ++++ .github/workflows/cd-production.yaml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/cd-dev.yaml b/.github/workflows/cd-dev.yaml index f6ae44f..2d3c757 100644 --- a/.github/workflows/cd-dev.yaml +++ b/.github/workflows/cd-dev.yaml @@ -32,6 +32,10 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + - name: Create .env file with secrets + run: | + echo "VITE_API_URL=${{ secrets.VITE_API_URL_DEV }}" >> .env + - name: Build and push Docker image id: push uses: docker/build-push-action@v5 diff --git a/.github/workflows/cd-production.yaml b/.github/workflows/cd-production.yaml index 5c06fa3..07ee36d 100644 --- a/.github/workflows/cd-production.yaml +++ b/.github/workflows/cd-production.yaml @@ -32,6 +32,10 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + - name: Create .env file with secrets + run: | + echo "VITE_API_URL=${{ secrets.VITE_API_URL_PRODUCTION }}" >> .env + - name: Build and push Docker image id: push uses: docker/build-push-action@v5 From e4481bcad09563562506d36d6c15c6b2df693aae Mon Sep 17 00:00:00 2001 From: Alex Dyakonov Date: Tue, 29 Oct 2024 18:54:25 +0300 Subject: [PATCH 10/79] added copy .env --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index cbf76ea..0468b82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,8 @@ RUN yarn install COPY . . +COPY .env .env + RUN yarn build FROM nginx:stable-alpine AS production-stage From 7336b85a2c0dfdc0a9080467c34347b227f09a50 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 19:02:18 +0300 Subject: [PATCH 11/79] Removed copy dev :) --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0468b82..cbf76ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,8 +8,6 @@ RUN yarn install COPY . . -COPY .env .env - RUN yarn build FROM nginx:stable-alpine AS production-stage From 4595ed4664e95d3724a8ec65f6e589d37a012a87 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 19:20:33 +0300 Subject: [PATCH 12/79] Update cd-dev.yaml --- .github/workflows/cd-dev.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cd-dev.yaml b/.github/workflows/cd-dev.yaml index 2d3c757..f59d5b9 100644 --- a/.github/workflows/cd-dev.yaml +++ b/.github/workflows/cd-dev.yaml @@ -34,7 +34,7 @@ jobs: - name: Create .env file with secrets run: | - echo "VITE_API_URL=${{ secrets.VITE_API_URL_DEV }}" >> .env + echo "VITE_API_URL=${{ secrets.VITE_API_URL_DEV }}" > .env - name: Build and push Docker image id: push From da71d79410537a612be14f326ac234bd2f2a7267 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 29 Oct 2024 22:15:31 +0300 Subject: [PATCH 13/79] feat(settings): Updated Settings Page (#32) * Added avatars to settings page * Updated settings page --- src/assets/icons/cafe.png | Bin 0 -> 25005 bytes src/components/ui/avatar.tsx | 12 ++++++ src/modules/settings/tags.tsx | 61 ++++++++++++++++++++++++++++++ src/modules/settings/users.tsx | 26 +++++++++++++ src/pages/lobby-settings.page.tsx | 60 +++++------------------------ 5 files changed, 109 insertions(+), 50 deletions(-) create mode 100644 src/assets/icons/cafe.png create mode 100644 src/components/ui/avatar.tsx create mode 100644 src/modules/settings/tags.tsx create mode 100644 src/modules/settings/users.tsx diff --git a/src/assets/icons/cafe.png b/src/assets/icons/cafe.png new file mode 100644 index 0000000000000000000000000000000000000000..b242ceaddb58a4c8fa0daf53b273f2a5ff8d4ba8 GIT binary patch literal 25005 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 { + return
+ +
+} diff --git a/src/modules/settings/tags.tsx b/src/modules/settings/tags.tsx new file mode 100644 index 0000000..021a776 --- /dev/null +++ b/src/modules/settings/tags.tsx @@ -0,0 +1,61 @@ +import { settingsUpdateEvent } from "@/shared/events/app-events/settings.event"; +import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { useEffect } from "react"; +import { fetchTags } from "@/shared/api/tags.api" +import { Toggle } from "@/components/ui/toggle"; + +import sandwitch from '@/assets/icons/cafe.png'; + +export const Tags = () => { + const { settings, tags, setTags } = useLobbyStore(); + + const toggleCategoryType = (tagId: number) => { + const found = settings.tags.find((x) => x == tagId); + let updatedTags: number[] = []; + + if (found != undefined) { + updatedTags = settings.tags.filter((x) => x != found); + } else { + updatedTags = [...settings.tags, tagId]; + } + + settingsUpdateEvent.update({ + priceMin: settings.priceMin, + priceMax: settings.priceMax, + maxDistance: settings.maxDistance, + tags: updatedTags, + location: settings.location, + }); + }; + + useEffect(() => { + fetchTags().then((tags) => { + console.log(tags); + if (tags != undefined) setTags(tags); + }); + }, []); + + return ( + <> + {tags + .sort((a, b) => a.id - b.id) + .map((tag) => ( + x === tag.id)} + className={ + 'flex gap-5 items-center justify-start py-8 px-3 rounded-xl transition-colors bg-secondary border-none duration-150 w-full' + } + onClick={() => toggleCategoryType(tag.id)} + > +
+ +
+
+ {tag.name} +
+
+ ))} + + ) +} diff --git a/src/modules/settings/users.tsx b/src/modules/settings/users.tsx new file mode 100644 index 0000000..b4c1953 --- /dev/null +++ b/src/modules/settings/users.tsx @@ -0,0 +1,26 @@ +import { Avatar } from "@/components/ui/avatar"; +import { useLobbyStore } from "@/shared/stores/lobby.store"; + +export const Users = () => { + const { users } = useLobbyStore() + + return ( +
+ {users.slice(0, 3).map((user, index) => { + return ( + + ); + })} + { users.length > 3 &&
+{users.length - 3}
} +
+ ) +} diff --git a/src/pages/lobby-settings.page.tsx b/src/pages/lobby-settings.page.tsx index 75ae233..114cc68 100644 --- a/src/pages/lobby-settings.page.tsx +++ b/src/pages/lobby-settings.page.tsx @@ -1,19 +1,18 @@ -import { useEffect, useCallback } from 'react'; +import { useCallback } from 'react'; import Layout from '@/components/layout'; -import { Toggle } from '@/components/ui/toggle'; import { Slider } from '@/components/ui/slider'; import { useLobbyStore } from '@/shared/stores/lobby.store'; import { motion, AnimatePresence, cubicBezier } from 'framer-motion'; -import { useAuth } from '@/shared/hooks/useAuth'; import { Settings } from '@/shared/types/settings.interface'; +import { MainButton } from '@vkruglikov/react-telegram-web-app'; import { settingsUpdateEvent } from '@/shared/events/app-events/settings.event'; + import { swipesEvent } from '@/shared/events/app-events/swipes.event'; -import { MainButton } from '@vkruglikov/react-telegram-web-app'; -import { fetchTags } from '@/shared/api/tags.api'; +import { Tags } from '@/modules/settings/tags'; +import { Users } from '@/modules/settings/users'; const LobbySettingsPage = () => { - const { settings, tags, setTags } = useLobbyStore(); - const { user } = useAuth(); + const { settings } = useLobbyStore(); const { priceMin, priceMax, maxDistance } = settings; // causes lag wihout callback @@ -31,31 +30,7 @@ const LobbySettingsPage = () => { }); }; - const toggleCategoryType = (tagId: number) => { - const found = settings.tags.find((x) => x == tagId); - let updatedTags: number[] = []; - - if (found != undefined) { - updatedTags = settings.tags.filter((x) => x != found); - } else { - updatedTags = [...settings.tags, tagId]; - } - - settingsUpdateEvent.update({ - priceMin: settings.priceMin, - priceMax: settings.priceMax, - maxDistance: settings.maxDistance, - tags: updatedTags, - location: settings.location, - }); - }; - - useEffect(() => { - fetchTags().then((tags) => { - if (tags != undefined) setTags(tags); - }); - }, [user]); - + const pageVariants = { initial: { opacity: 0 }, animate: { @@ -80,30 +55,15 @@ const LobbySettingsPage = () => { className="flex flex-col h-screen items-center justify-between w-full p-0 bg-background" >
-
+

Настройки

- penis +
- {tags - .sort((a, b) => a.id - b.id) - .map((tag) => ( - x === tag.id)} - className={ - 'flex items-center justify-between py-6 px-4 rounded-xl transition-colors bg-secondary border-none duration-150 w-full' - } - onClick={() => toggleCategoryType(tag.id)} - > -
- {tag.name} -
-
- ))} +
From 8d7087845870cc65fffaa5e174181bbddc90bc74 Mon Sep 17 00:00:00 2001 From: vaniog Date: Wed, 30 Oct 2024 02:08:59 +0300 Subject: [PATCH 14/79] Remove envs --- .env.development | 1 - .env.production | 1 - 2 files changed, 2 deletions(-) delete mode 100644 .env.development delete mode 100644 .env.production diff --git a/.env.development b/.env.development deleted file mode 100644 index 0e7f06f..0000000 --- a/.env.development +++ /dev/null @@ -1 +0,0 @@ -VITE_API_URL=https://dev.dishdash.ru diff --git a/.env.production b/.env.production deleted file mode 100644 index 4d8ece4..0000000 --- a/.env.production +++ /dev/null @@ -1 +0,0 @@ -VITE_API_URL=https://dishdash.ru From 6ec4b6eecaae70cfe15777b8d751297a408c0e91 Mon Sep 17 00:00:00 2001 From: vaniog Date: Wed, 30 Oct 2024 02:11:55 +0300 Subject: [PATCH 15/79] Comment sandwitch --- src/modules/settings/tags.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/settings/tags.tsx b/src/modules/settings/tags.tsx index 021a776..b1eb7ac 100644 --- a/src/modules/settings/tags.tsx +++ b/src/modules/settings/tags.tsx @@ -4,7 +4,7 @@ import { useEffect } from "react"; import { fetchTags } from "@/shared/api/tags.api" import { Toggle } from "@/components/ui/toggle"; -import sandwitch from '@/assets/icons/cafe.png'; +// import sandwitch from '@/assets/icons/cafe.png'; export const Tags = () => { const { settings, tags, setTags } = useLobbyStore(); From 657d131d5958b6a8a40eca93f98fed64c937574a Mon Sep 17 00:00:00 2001 From: vaniog Date: Wed, 30 Oct 2024 02:34:47 +0300 Subject: [PATCH 16/79] remove secret --- .github/workflows/cd-dev.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cd-dev.yaml b/.github/workflows/cd-dev.yaml index eb6ab6b..4e7b288 100644 --- a/.github/workflows/cd-dev.yaml +++ b/.github/workflows/cd-dev.yaml @@ -34,7 +34,7 @@ jobs: - name: Create .env file with secrets run: | - echo "VITE_API_URL=${{ secrets.VITE_API_URL_DEV }}" > .env + echo "VITE_API_URL=https://dev.dishdash.ru" > .env - name: Build and push Docker image From 1f6cff6913dbd2ffff956d98160aa91b994001c8 Mon Sep 17 00:00:00 2001 From: vaniog Date: Wed, 30 Oct 2024 02:55:35 +0300 Subject: [PATCH 17/79] blank From f1dbd8adb3fa68049bbe3f3261aacb34de4a233b Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 31 Oct 2024 15:21:54 +0300 Subject: [PATCH 18/79] fix(lint): Fixed bad lint problem --- src/modules/settings/tags.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/modules/settings/tags.tsx b/src/modules/settings/tags.tsx index b1eb7ac..bef4324 100644 --- a/src/modules/settings/tags.tsx +++ b/src/modules/settings/tags.tsx @@ -4,8 +4,6 @@ import { useEffect } from "react"; import { fetchTags } from "@/shared/api/tags.api" import { Toggle } from "@/components/ui/toggle"; -// import sandwitch from '@/assets/icons/cafe.png'; - export const Tags = () => { const { settings, tags, setTags } = useLobbyStore(); From 2051671e78a7fa61bf1611540dc7cb1bf9183be8 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 31 Oct 2024 17:00:51 +0300 Subject: [PATCH 19/79] feat(cards): Updated the card design (#34) * Added basic card components. * adding opacity on like & dislikes * Added likes and dislikes to cards --- src/assets/icons/dislike.png | Bin 0 -> 9958 bytes src/assets/icons/like.png | Bin 0 -> 9574 bytes src/assets/icons/walk.icon.tsx | 12 +++++++ src/modules/game/card.tsx | 54 ++++++++++++++--------------- src/modules/game/swipable.card.tsx | 5 ++- src/modules/game/swipes.tsx | 2 +- src/shared/util/time.util.ts | 6 ++-- 7 files changed, 44 insertions(+), 35 deletions(-) create mode 100644 src/assets/icons/dislike.png create mode 100644 src/assets/icons/like.png create mode 100644 src/assets/icons/walk.icon.tsx diff --git a/src/assets/icons/dislike.png b/src/assets/icons/dislike.png new file mode 100644 index 0000000000000000000000000000000000000000..38d9ebd5423b8c2dfd0b06bee5c5b1a9e3a0b204 GIT binary patch literal 9958 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
HCA0|3Rz0(3(j@d2H%G%YE$Ez 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 QasU7T07*qoM6N<$f*U?zu>b%7 literal 0 HcmV?d00001 diff --git a/src/assets/icons/walk.icon.tsx b/src/assets/icons/walk.icon.tsx new file mode 100644 index 0000000..a3d114c --- /dev/null +++ b/src/assets/icons/walk.icon.tsx @@ -0,0 +1,12 @@ +const WalkIcon = ({ className }: { className?: string }) => { + return ( +
+ + + +
+ ) +} + +export default WalkIcon + diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index f30d665..ff9393c 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -1,21 +1,25 @@ -import { InfoIcon } from '@/assets/icons/info.icon'; import { Card } from '@/shared/types/card.interface'; -import { CardTag } from '../../components/ui/card-tag'; import { useEffect, useState } from 'react'; -import { motion, PanInfo } from 'framer-motion'; +import { motion, MotionValue, PanInfo, useTransform } from 'framer-motion'; import { useWebApp } from '@vkruglikov/react-telegram-web-app'; import { useLobbyStore } from '@/shared/stores/lobby.store'; import { getTime } from '@/shared/util/time.util'; +import LikeIcon from '@/assets/icons/like.png'; +import DislikeIcon from '@/assets/icons/dislike.png'; +import WalkIcon from '@/assets/icons/walk.icon'; + interface Props { data: Card; + deltaY?: MotionValue; } -export const CardComponent = ({ data }: Props) => { +export const CardComponent = ({ data, deltaY }: Props) => { const [expanded, setExpanded] = useState(false); const { settings } = useLobbyStore(); - console.log(location, data.location); + const leftOpacity = deltaY ? useTransform(deltaY, [-15, 0, 15], [0, 0, 1]) : 0; + const rightOpacity = deltaY ? useTransform(deltaY, [-15, 0, 15], [1, 0, 0]) : 0; const { disableVerticalSwipes, enableVerticalSwipes } = useWebApp(); useEffect(() => { @@ -26,10 +30,6 @@ export const CardComponent = ({ data }: Props) => { }; }, []); - const toggleExpand = () => { - setExpanded(!expanded); - }; - useEffect(() => { console.log(expanded); }, [expanded]); @@ -44,7 +44,7 @@ export const CardComponent = ({ data }: Props) => { return (
-
+
{ src={data.image} />
-
-

- {data.title.split(', ')[0]} -

-
- -
-
+ {deltaY && +
+ + +
}
{ dragElastic={0} onDrag={handleDrag} > -
- {data?.tags.map((el, index) => ( - {el.name} - ))} - {`~ ${data.priceAvg.toString()}₽`} - {`~ ${getTime(settings.location, data.location)}`} +
+

{data.title}

+

{data.tags.map(el => el.name).join(", ")}

+
+
+ ~ {data.priceAvg} ₽ +
+
+ {getTime(settings.location, data.location)} +

@@ -89,6 +87,6 @@ export const CardComponent = ({ data }: Props) => {

-
+
); }; diff --git a/src/modules/game/swipable.card.tsx b/src/modules/game/swipable.card.tsx index 61deee3..a1f22c8 100644 --- a/src/modules/game/swipable.card.tsx +++ b/src/modules/game/swipable.card.tsx @@ -48,7 +48,6 @@ const SwipableCard = ({ id, data }: Props) => { }; const onPan = (info: PanInfo) => { - console.log(info); if ( Math.abs(info.offset.x) > 20 || Math.abs(info.offset.y) < 20 || @@ -61,7 +60,7 @@ const SwipableCard = ({ id, data }: Props) => { return ( { onPan={(_, info) => onPan(info)} onPanEnd={(_, info) => handlePanEnd(info)} > - + ); }; diff --git a/src/modules/game/swipes.tsx b/src/modules/game/swipes.tsx index da62ae0..e7d33d6 100644 --- a/src/modules/game/swipes.tsx +++ b/src/modules/game/swipes.tsx @@ -56,7 +56,7 @@ const GameCards = () => { >
{cards && cards.length > 0 ? ( diff --git a/src/shared/util/time.util.ts b/src/shared/util/time.util.ts index 59d5edb..7020697 100644 --- a/src/shared/util/time.util.ts +++ b/src/shared/util/time.util.ts @@ -9,14 +9,14 @@ export const getTime = (from: Location, to: Location): string => { if (timeInHours < 1) { const minutes = Math.round(timeInHours * 60); - return `${minutes}min`; + return `${minutes} min`; } else { const hours = Math.floor(timeInHours); const minutes = Math.round((timeInHours - hours) * 60); if (minutes === 0) { - return `${hours}h`; + return `${hours} h`; } else { - return `${hours}h ${minutes}min`; + return `${hours} h ${minutes} min`; } } }; From e3dccf762b60d6f77314590519b94a58c6b247d8 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 1 Nov 2024 17:00:31 +0300 Subject: [PATCH 20/79] fix(android): Updated Cards --- src/modules/game/card.tsx | 35 ++++++++++----- src/modules/game/swipable.card.tsx | 70 ++++++++++++++---------------- 2 files changed, 56 insertions(+), 49 deletions(-) diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index ff9393c..3cd469b 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -18,7 +18,9 @@ export const CardComponent = ({ data, deltaY }: Props) => { const [expanded, setExpanded] = useState(false); const { settings } = useLobbyStore(); - const leftOpacity = deltaY ? useTransform(deltaY, [-15, 0, 15], [0, 0, 1]) : 0; + const { openLink } = useWebApp(); + + const leftOpacity = deltaY ? useTransform(deltaY, [-15, 0, 15], [0, 0, 1]) : 0; const rightOpacity = deltaY ? useTransform(deltaY, [-15, 0, 15], [1, 0, 0]) : 0; const { disableVerticalSwipes, enableVerticalSwipes } = useWebApp(); @@ -35,10 +37,12 @@ export const CardComponent = ({ data, deltaY }: Props) => { }, [expanded]); const handleDrag = (_: any, info: PanInfo) => { - if (info.offset.y < -20 && !expanded) { - setExpanded(true); - } else if (info.offset.y > 20 && expanded) { - setExpanded(false); + if (Math.abs(info.delta.y) > Math.abs(info.delta.x)) { + if (info.delta.y < 0 && Math.abs(info.offset.x) < 20) { + setExpanded(true); + } else { + setExpanded(false); + } } }; @@ -55,14 +59,14 @@ export const CardComponent = ({ data, deltaY }: Props) => {
{deltaY &&
- - + +
}
{
-

- {data?.description} +

+

+ {data?.description} +
+ { + expanded && +
{ + const url = `https://yandex.ru/maps/?rtext=${data.location.lat}%2C${data.location.lon}` + openLink(url); + }} className="underline pt-2">{data.address}
+ }

diff --git a/src/modules/game/swipable.card.tsx b/src/modules/game/swipable.card.tsx index a1f22c8..a3d6bee 100644 --- a/src/modules/game/swipable.card.tsx +++ b/src/modules/game/swipable.card.tsx @@ -5,62 +5,56 @@ import { swipesEvent } from '@/shared/events/app-events/swipes.event'; import { CardComponent } from './card'; type Props = { - id?: number; - data: Card; - isLast: boolean; + id?: number; + data: Card; + isLast: boolean; }; // todo // - for some reason the cards don't swipe on android right now const SwipableCard = ({ id, data }: Props) => { - const { cards, setCards } = useLobbyStore(); + const { cards, setCards } = useLobbyStore(); - const x = useMotionValue(0); - const offsetBoundary = 120; + const x = useMotionValue(0); + const offsetBoundary = 120; - const inputX = [offsetBoundary * -1, 0, offsetBoundary]; - const outputRotate = [-15, 0, 15]; + const inputX = [offsetBoundary * -1, 0, offsetBoundary]; + const outputRotate = [-15, 0, 15]; - let drivenRotation = useTransform(x, inputX, outputRotate); + let drivenRotation = useTransform(x, inputX, outputRotate); - const sendDirection = (direction: CardSwipeDirection) => { - if (direction === 'left') { - swipesEvent.swipe('dislike'); - } else { - swipesEvent.swipe('like'); - } - }; + const sendDirection = (direction: CardSwipeDirection) => { + if (direction === 'left') { + swipesEvent.swipe('dislike'); + } else { + swipesEvent.swipe('like'); + } + }; - const handlePanEnd = (info: any) => { - const isOffBoundary = - info.offset.x > offsetBoundary || info.offset.x < -offsetBoundary; - const direction = info.offset.x > 0 ? 'right' : 'left'; + const handlePanEnd = (info: any) => { + const isOffBoundary = + info.offset.x > offsetBoundary || info.offset.x < -offsetBoundary; + const direction = info.offset.x > 0 ? 'right' : 'left'; - if (isOffBoundary) { - const newCards = cards.filter((card) => card.id !== id); - setCards(newCards); + if (isOffBoundary) { + const newCards = cards.filter((card) => card.id !== id); + setCards(newCards); - sendDirection(direction); - } else { - animate(x, 0, { type: 'spring', stiffness: 1000, damping: 30 }); - } - }; + sendDirection(direction); + } else { + animate(x, 0, { type: 'spring', stiffness: 1000, damping: 30 }); + } + }; - const onPan = (info: PanInfo) => { - if ( - Math.abs(info.offset.x) > 20 || - Math.abs(info.offset.y) < 20 || - Math.abs(info.offset.x) * 1.8 > Math.abs(info.offset.y) - ) { - x.set(info.offset.x); - } - } + const onPan = (info: PanInfo) => { + if (Math.abs(info.delta.x) > Math.abs(info.delta.y)) x.set(info.offset.x); + } return ( Date: Fri, 1 Nov 2024 17:54:18 +0300 Subject: [PATCH 21/79] feat(end-screen): Added an end screen. (#42) * Updated result interface and added basic markup for result page. * Added card bottom icons. * Added time to cards --- src/modules/game/result.card.tsx | 36 ++++++++++++++++++++ src/pages/result.page.tsx | 31 +++++++---------- src/shared/events/app-events/finish.event.ts | 10 +++--- src/shared/stores/result-card.store.tsx | 14 ++++---- src/shared/types/results.interface.ts | 7 ++++ 5 files changed, 68 insertions(+), 30 deletions(-) create mode 100644 src/modules/game/result.card.tsx create mode 100644 src/shared/types/results.interface.ts diff --git a/src/modules/game/result.card.tsx b/src/modules/game/result.card.tsx new file mode 100644 index 0000000..6eec759 --- /dev/null +++ b/src/modules/game/result.card.tsx @@ -0,0 +1,36 @@ +import WalkIcon from "@/assets/icons/walk.icon"; +import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { Card } from "@/shared/types/card.interface"; +import { getTime } from "@/shared/util/time.util"; +import { useWebApp } from "@vkruglikov/react-telegram-web-app"; + +export const ResultCard = (data: { card: Card }) => { + const { openLink } = useWebApp(); + const { settings } = useLobbyStore(); + + return ( +
+
+
+

+ {data.card.tags.map(el => el.name).join(", ")} +

+

{data.card.title}

+
{ + const url = `https://yandex.ru/maps/?rtext=${data.card.location.lat}%2C${data.card.location.lon}` + openLink(url); + }} className="underline cursor-pointer line-clamp-1">{data.card.address}
+
+
+
+ ~ {data.card.priceAvg} ₽ +
+
+ {getTime(data.card.location, data.card.location)} +
+
+
+ +
+ ) +} diff --git a/src/pages/result.page.tsx b/src/pages/result.page.tsx index 1ffd9d0..49efab0 100644 --- a/src/pages/result.page.tsx +++ b/src/pages/result.page.tsx @@ -1,26 +1,21 @@ -import { CardComponent } from '@/modules/game/card'; +import { ResultCard } from '@/modules/game/result.card'; import { useResultCardStore } from '@/shared/stores/result-card.store'; -import { useWebApp } from '@vkruglikov/react-telegram-web-app'; const ResultPage = () => { - const { card } = useResultCardStore(); - const { close } = useWebApp(); + const { result } = useResultCardStore(); - close(); + console.log(result) - return ( -
-
- {card && } -
-
- ); + return ( +
+

Ваши метчи

+
+ {result?.matches.map((x) => )} +
+
+ ); }; export default ResultPage; diff --git a/src/shared/events/app-events/finish.event.ts b/src/shared/events/app-events/finish.event.ts index 9a6855e..09d7d8d 100644 --- a/src/shared/events/app-events/finish.event.ts +++ b/src/shared/events/app-events/finish.event.ts @@ -1,16 +1,16 @@ import { getResultStoreMethods } from '@/shared/stores/result-card.store'; import { getLobbyStoreMethods } from '@/shared/stores/lobby.store'; -import { Card } from '@/shared/types/card.interface'; import { getLoadingStoreMethods } from '@/shared/stores/loading.store'; import { Event } from '../event'; +import { Result } from '@/shared/types/results.interface'; class FinishEvent extends Event { - handle(data: { result: Card }) { - const { setResultCard } = getResultStoreMethods(); + handle(data: Result) { + const { setResult } = getResultStoreMethods(); const { setIsLoading } = getLoadingStoreMethods(); const { setState } = getLobbyStoreMethods(); - console.log(data); - setResultCard(data.result); + + setResult(data); setState('result'); setIsLoading(false); } diff --git a/src/shared/stores/result-card.store.tsx b/src/shared/stores/result-card.store.tsx index 035930d..90e74ab 100644 --- a/src/shared/stores/result-card.store.tsx +++ b/src/shared/stores/result-card.store.tsx @@ -1,17 +1,17 @@ -import { Card } from '@/shared/types/card.interface'; import { create } from 'zustand'; +import { Result } from '../types/results.interface'; type Store = { - card: Card | null; - setResultCard: (card: Card) => void; + result: Result | null; + setResult: (result: Result) => void; }; export const useResultCardStore = create()((set) => ({ - card: null, - setResultCard: (card: Card) => set({ card }), + result: null, + setResult: (result: Result) => set({ result }), })); export function getResultStoreMethods() { - const { card, setResultCard } = useResultCardStore.getState(); - return { card, setResultCard }; + const { result, setResult } = useResultCardStore.getState(); + return { result, setResult }; } diff --git a/src/shared/types/results.interface.ts b/src/shared/types/results.interface.ts new file mode 100644 index 0000000..11657ca --- /dev/null +++ b/src/shared/types/results.interface.ts @@ -0,0 +1,7 @@ +import { Card } from "./card.interface"; +import { Match } from "./match.interface"; + +export interface Result { + result: Card; + matches: Match[]; +} From a4d84f3b2c84d70f349e7531e22ec1a7faecf209 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 1 Nov 2024 18:09:46 +0300 Subject: [PATCH 22/79] fix(lint): fixed lint errors --- package.json | 4 ++-- src/pages/result.page.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 1fadf01..3912a28 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "dev": "vite", "tunnel": "npx shamps-tunnel", "build": "tsc && vite build", - "lint": "eslint src/**/*.{js,ts,jsx,tsx}", - "lint:fix": "eslint src/**/*.{js,ts,jsx,tsx} --fix", + "lint": "eslint src/**/*.{ts,tsx}", + "lint:fix": "eslint src/**/*.{ts,tsx} --fix", "test": "jest" }, "dependencies": { diff --git a/src/pages/result.page.tsx b/src/pages/result.page.tsx index 49efab0..c2c7026 100644 --- a/src/pages/result.page.tsx +++ b/src/pages/result.page.tsx @@ -12,7 +12,7 @@ const ResultPage = () => { >

Ваши метчи

- {result?.matches.map((x) => )} + {result?.matches.map((x) => )}
); From 8582231dfe1e3d2bbd3b0f1f4e3121c1821e8de8 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 1 Nov 2024 18:14:38 +0300 Subject: [PATCH 23/79] fixed settings error --- src/modules/game/result.card.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/game/result.card.tsx b/src/modules/game/result.card.tsx index 6eec759..1f608d1 100644 --- a/src/modules/game/result.card.tsx +++ b/src/modules/game/result.card.tsx @@ -26,7 +26,7 @@ export const ResultCard = (data: { card: Card }) => { ~ {data.card.priceAvg} ₽
- {getTime(data.card.location, data.card.location)} + {getTime(settings.location, data.card.location)}
From bbfaab877907b1e5e4265daf1bef6819cf241671 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 1 Nov 2024 18:18:24 +0300 Subject: [PATCH 24/79] Removed unused assets --- src/assets/icons/cafe.png | Bin 25005 -> 0 bytes src/assets/icons/logo.png | Bin 3691 -> 0 bytes src/assets/icons/main.jpg | Bin 31114 -> 0 bytes src/assets/icons/person.png | Bin 5030 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/assets/icons/cafe.png delete mode 100644 src/assets/icons/logo.png delete mode 100644 src/assets/icons/main.jpg delete mode 100644 src/assets/icons/person.png diff --git a/src/assets/icons/cafe.png b/src/assets/icons/cafe.png deleted file mode 100644 index b242ceaddb58a4c8fa0daf53b273f2a5ff8d4ba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25005 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 diff --git a/src/assets/icons/main.jpg b/src/assets/icons/main.jpg deleted file mode 100644 index baa93a59cb807ce2e3d032176ca32350429baf76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31114 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

ya{>(cp;r{uJ;t{TCgnATsVWA*9Y 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 T`5W+WfXttK-Tynd{hs}Qn=zR# diff --git a/src/assets/icons/person.png b/src/assets/icons/person.png deleted file mode 100644 index 8d20518321d0959804ff379cddfe29c44e97db0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5030 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 Date: Fri, 1 Nov 2024 19:40:07 +0300 Subject: [PATCH 25/79] feat(error): Added error pages and websocket error parsing (#45) * Updated dockerfile to match new standard * added cd for dev branch (#22) * fixed formatting * Moved api url to env Cleaned up useless console log * Added .env info log * fix(env): pushed env lol * Added gitignore * Added .env values * Updated cd pipelines. Added envs into build * added copy .env * Removed copy dev :) * Update cd-dev.yaml * feat(settings): Updated Settings Page (#32) * Added avatars to settings page * Updated settings page * Remove envs * Comment sandwitch * remove secret * blank * fix(lint): Fixed bad lint problem * feat(cards): Updated the card design (#34) * Added basic card components. * adding opacity on like & dislikes * Added likes and dislikes to cards * fix(android): Updated Cards * feat(end-screen): Added an end screen. (#42) * Updated result interface and added basic markup for result page. * Added card bottom icons. * Added time to cards * fix(lint): fixed lint errors * fixed settings error * Removed unused assets --------- Co-authored-by: Alex Dyakonov <115474788+AlexDyakonov@users.noreply.github.com> Co-authored-by: Alex Dyakonov Co-authored-by: vaniog From 441b8fb6fdf6f7264c2eeadceb4d25680cfca06c Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 2 Nov 2024 19:26:47 +0300 Subject: [PATCH 26/79] feat(map): Added map to home screen. (#46) * Added a map on home screen. * Cleaned up comments and logs --- package.json | 7 ++- src/index.css | 5 ++ src/pages/home.page.tsx | 94 ++++++++++++++++++++++++++++++++----- src/shared/api/lobby.api.ts | 36 +++++++------- yarn.lock | 39 +++++++++++++++ 5 files changed, 150 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 3912a28..f790ef9 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,14 @@ "clsx": "^2.1.1", "framer-motion": "^11.2.4", "jest-environment-jsdom": "^29.7.0", + "leaflet": "^1.9.4", "lucide-react": "^0.378.0", "postcss": "^8.4.38", "react": "^18.2.0", "react-dom": "^18.2.0", "react-helmet": "^6.1.0", "react-hot-toast": "^2.4.1", + "react-leaflet": "^4.2.1", "react-router-dom": "^6.23.1", "shamps-tunnel": "^1.0.0", "socket.io": "1.4.5", @@ -46,12 +48,14 @@ "@eslint/js": "^9.9.1", "@testing-library/react-hooks": "^8.0.1", "@types/jest": "^29.5.12", + "@types/leaflet": "^1.9.14", "@types/react": "18.2.42", "@types/react-dom": "^18.2.22", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^7.9.0", "@typescript-eslint/parser": "^7.9.0", "@vitejs/plugin-react": "^4.2.1", + "add": "^2.0.6", "eslint": "^9.9.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.1.3", @@ -66,7 +70,8 @@ "ts-node": "^10.9.2", "typescript": "^5.2.2", "typescript-eslint": "^8.2.0", - "vite": "^5.2.0" + "vite": "^5.2.0", + "yarn": "^1.22.22" }, "resolutions": { "@types/react": "18.2.42" diff --git a/src/index.css b/src/index.css index 7e661dd..60cc0b9 100644 --- a/src/index.css +++ b/src/index.css @@ -2,6 +2,11 @@ @tailwind components; @tailwind utilities; +.leaflet-container { + height: 100%; + width: 100%; +} + @layer base { :root { --background: hsl(0 0% 100%); diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index 45ffbd1..14ce058 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -1,19 +1,87 @@ -import { MainButton, useSwitchInlineQuery } from "@vkruglikov/react-telegram-web-app" +import { postLobby } from "@/shared/api/lobby.api"; +import { useInitData, useWebApp } from "@vkruglikov/react-telegram-web-app"; +import { useCallback, useEffect, useState } from "react"; +import 'leaflet/dist/leaflet.css'; +import { MapContainer, TileLayer, useMapEvents } from 'react-leaflet'; import { useNavigate } from "react-router-dom"; - -// todo -// first of all I need to find out why the fuck does this thing work so badly -// this means that I need to see why it works in a clunky way on mobile, then I need -// to find out how to fix the empty screen +import { Avatar } from "@/components/ui/avatar"; export const HomePage = () => { - const switchInlineQuery = useSwitchInlineQuery(); + const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); + const webApp = useWebApp(); + const { openTelegramLink, MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; const navigate = useNavigate(); + const [initDataUnsafe] = useInitData(); + + const handleClick = async () => { + const lobby = await postLobby(position); + openTelegramLink(`https://t.me/share/url?url=https://t.me/dishdashtunnel_bot/app?startapp=${lobby?.id}`); + + navigate(`/${lobby?.id}`); + }; + + useEffect(() => { + MainButton.onClick(handleClick); + + return () => { + MainButton.offClick(handleClick); + } + }, [handleClick]) + + useEffect(() => { + MainButton.setText('Создать Лобби'); + MainButton.show(); + MainButton.enable(); + MainButton.onClick(handleClick); + + disableVerticalSwipes(); + + return () => { + MainButton.hide(); + enableVerticalSwipes(); + }; + }, []); + + const MapEvents = () => { + useMapEvents({ + moveend(e) { + const newCenter = e.target.getCenter(); + setPosition(() => ({ lat: newCenter.lat, lon: newCenter.lng })); + } + }); + return null; + }; return ( - { - switchInlineQuery('', ["users"]) - navigate('/') - }} text="Поделиться" /> - ) -} +

+
+ + + + + + {/* Marker icon centered over the map */} +
+ +
+
+
+ ); +}; + diff --git a/src/shared/api/lobby.api.ts b/src/shared/api/lobby.api.ts index 05cfe38..49d5a9c 100644 --- a/src/shared/api/lobby.api.ts +++ b/src/shared/api/lobby.api.ts @@ -3,26 +3,28 @@ import { API_URL } from '../constants'; import { Location } from '../types/location.interface'; interface Lobby { - id: string; - location: Location; + id: string; + location: Location; } export const fetchLobby = async (id: string): Promise => { - try { - const response = await axios.get(`${API_URL}/api/v1/lobbies/${id}`); - return response.data; - } catch (err) { - console.error('Error fetching tags:', err); - return undefined; - } + try { + const response = await axios.get(`${API_URL}/api/v1/lobbies/${id}`); + return response.data; + } catch (err) { + console.error('Error fetching tags:', err); + return undefined; + } }; -export const postLobby = async (id: string): Promise => { - try { - const response = await axios.get(`${API_URL}/api/v1/lobbies/${id}`); - return response.data; - } catch (err) { - console.error('Error fetching tags:', err); - return undefined; - } +export const postLobby = async (location: Location): Promise => { + try { + const response = await axios.post(`${API_URL}/api/v1/lobbies`, { + location + }); + return response.data; + } catch (err) { + console.error('Error fetching tags:', err); + return undefined; + } }; diff --git a/yarn.lock b/yarn.lock index 0b2091d..870f303 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1214,6 +1214,11 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-use-layout-effect" "1.0.1" +"@react-leaflet/core@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-2.1.0.tgz#383acd31259d7c9ae8fb1b02d5e18fe613c2a13d" + integrity sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg== + "@remix-run/router@1.16.1": version "1.16.1" resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.16.1.tgz#73db3c48b975eeb06d0006481bde4f5f2d17d1cd" @@ -1401,6 +1406,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/geojson@*": + version "7946.0.14" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613" + integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== + "@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -1449,6 +1459,13 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" +"@types/leaflet@^1.9.14": + version "1.9.14" + resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.14.tgz#f008fef281a05e457bbae9f00a82c836af1b9b03" + integrity sha512-sx2q6MDJaajwhKeVgPSvqXd8rhNJSTA3tMidQGduZn9S6WBYxDkCpSpV5xXEmSg7Cgdk/5vJGhVF1kMYLzauBg== + dependencies: + "@types/geojson" "*" + "@types/mute-stream@^0.0.4": version "0.0.4" resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478" @@ -1771,6 +1788,11 @@ acorn@^8.11.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +add@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/add/-/add-2.0.6.tgz#248f0a9f6e5a528ef2295dbeec30532130ae2235" + integrity sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q== + after@0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" @@ -4398,6 +4420,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +leaflet@^1.9.4: + version "1.9.4" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.4.tgz#23fae724e282fa25745aff82ca4d394748db7d8d" + integrity sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA== + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -5124,6 +5151,13 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== +react-leaflet@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-4.2.1.tgz#c300e9eccaf15cb40757552e181200aa10b94780" + integrity sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q== + dependencies: + "@react-leaflet/core" "^2.1.0" + react-refresh@^0.14.0: version "0.14.2" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" @@ -6316,6 +6350,11 @@ yargs@^17.3.1, yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" +yarn@^1.22.22: + version "1.22.22" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz#ac34549e6aa8e7ead463a7407e1c7390f61a6610" + integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg== + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From b125c4728e3bb9a4e2961065f90f6f34c804fd3c Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 2 Nov 2024 19:28:17 +0300 Subject: [PATCH 27/79] fixed lint --- src/pages/home.page.tsx | 94 +++++++++++++++++++++++++++++++++++------ 1 file changed, 81 insertions(+), 13 deletions(-) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index 45ffbd1..ccf9df4 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -1,19 +1,87 @@ -import { MainButton, useSwitchInlineQuery } from "@vkruglikov/react-telegram-web-app" +import { postLobby } from "@/shared/api/lobby.api"; +import { useInitData, useWebApp } from "@vkruglikov/react-telegram-web-app"; +import { useEffect, useState } from "react"; +import 'leaflet/dist/leaflet.css'; +import { MapContainer, TileLayer, useMapEvents } from 'react-leaflet'; import { useNavigate } from "react-router-dom"; - -// todo -// first of all I need to find out why the fuck does this thing work so badly -// this means that I need to see why it works in a clunky way on mobile, then I need -// to find out how to fix the empty screen +import { Avatar } from "@/components/ui/avatar"; export const HomePage = () => { - const switchInlineQuery = useSwitchInlineQuery(); + const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); + const webApp = useWebApp(); + const { openTelegramLink, MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; const navigate = useNavigate(); + const [initDataUnsafe] = useInitData(); + + const handleClick = async () => { + const lobby = await postLobby(position); + openTelegramLink(`https://t.me/share/url?url=https://t.me/dishdashtunnel_bot/app?startapp=${lobby?.id}`); + + navigate(`/${lobby?.id}`); + }; + + useEffect(() => { + MainButton.onClick(handleClick); + + return () => { + MainButton.offClick(handleClick); + } + }, [handleClick]) + + useEffect(() => { + MainButton.setText('Создать Лобби'); + MainButton.show(); + MainButton.enable(); + MainButton.onClick(handleClick); + + disableVerticalSwipes(); + + return () => { + MainButton.hide(); + enableVerticalSwipes(); + }; + }, []); + + const MapEvents = () => { + useMapEvents({ + moveend(e) { + const newCenter = e.target.getCenter(); + setPosition(() => ({ lat: newCenter.lat, lon: newCenter.lng })); + } + }); + return null; + }; return ( - { - switchInlineQuery('', ["users"]) - navigate('/') - }} text="Поделиться" /> - ) -} +
+
+ + + + + + {/* Marker icon centered over the map */} +
+ +
+
+
+ ); +}; + From 9533c0d9b6affc86ae25e3d4ea78dfc56c2a6b5f Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 2 Nov 2024 19:32:35 +0300 Subject: [PATCH 28/79] fixed errors uncaught by lint --- src/pages/home.page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index ccf9df4..12c4713 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -78,7 +78,7 @@ export const HomePage = () => { zIndex: 1000 }} > - + From 75acffe448b3907a9cd1f1eef65c41cefc2c6d47 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 2 Nov 2024 20:10:57 +0300 Subject: [PATCH 29/79] moved share to settings --- src/modules/settings/users.tsx | 12 +++++++++--- src/pages/home.page.tsx | 4 +--- src/pages/lobby-settings.page.tsx | 6 +++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/modules/settings/users.tsx b/src/modules/settings/users.tsx index b4c1953..b6b6729 100644 --- a/src/modules/settings/users.tsx +++ b/src/modules/settings/users.tsx @@ -1,11 +1,17 @@ import { Avatar } from "@/components/ui/avatar"; import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { useWebApp } from "@vkruglikov/react-telegram-web-app"; export const Users = () => { - const { users } = useLobbyStore() + const { users, lobbyId } = useLobbyStore(); + + const { openTelegramLink } = useWebApp(); + const onShareClick = () => { + openTelegramLink(`https://t.me/share/url?url=https://t.me/dishdashtunnel_bot/app?startapp=${lobbyId}`); + } return ( -
+
{users.slice(0, 3).map((user, index) => { return ( { /> ); })} - { users.length > 3 &&
+{users.length - 3}
} + {users.length > 3 &&
+{users.length - 3}
}
) } diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index 12c4713..afccba5 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -9,14 +9,12 @@ import { Avatar } from "@/components/ui/avatar"; export const HomePage = () => { const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); const webApp = useWebApp(); - const { openTelegramLink, MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; + const { MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; const navigate = useNavigate(); const [initDataUnsafe] = useInitData(); const handleClick = async () => { const lobby = await postLobby(position); - openTelegramLink(`https://t.me/share/url?url=https://t.me/dishdashtunnel_bot/app?startapp=${lobby?.id}`); - navigate(`/${lobby?.id}`); }; diff --git a/src/pages/lobby-settings.page.tsx b/src/pages/lobby-settings.page.tsx index 114cc68..519d605 100644 --- a/src/pages/lobby-settings.page.tsx +++ b/src/pages/lobby-settings.page.tsx @@ -15,6 +15,7 @@ const LobbySettingsPage = () => { const { settings } = useLobbyStore(); const { priceMin, priceMax, maxDistance } = settings; + // causes lag wihout callback const handleSettingsChange = useCallback((newSettings: Settings) => { settingsUpdateEvent.update(newSettings); @@ -30,7 +31,6 @@ const LobbySettingsPage = () => { }); }; - const pageVariants = { initial: { opacity: 0 }, animate: { @@ -59,11 +59,11 @@ const LobbySettingsPage = () => {

Настройки

- +
- +
From eadc74e078e805ec0280bb3cc4dd75bea282fbc6 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 5 Nov 2024 23:28:49 +0300 Subject: [PATCH 30/79] updated share link --- src/modules/settings/users.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/settings/users.tsx b/src/modules/settings/users.tsx index b6b6729..8afc91f 100644 --- a/src/modules/settings/users.tsx +++ b/src/modules/settings/users.tsx @@ -7,7 +7,7 @@ export const Users = () => { const { openTelegramLink } = useWebApp(); const onShareClick = () => { - openTelegramLink(`https://t.me/share/url?url=https://t.me/dishdashtunnel_bot/app?startapp=${lobbyId}`); + openTelegramLink(`https://t.me/share/url?url=https://t.me/${'dishdashdev_bot'}/app?startapp=${lobbyId}`); } return ( From 6a92de00ebd30a507a84e1be6bc312497c07afa7 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 7 Nov 2024 10:36:45 +0300 Subject: [PATCH 31/79] feat(lobby-preview): Added a lobby preview page (#50) * feat(end-screen): Updated end screen. (#43) * Updated dockerfile to match new standard * added cd for dev branch (#22) Co-authored-by: Mike de Geofroy * fixed formatting * Moved api url to env Cleaned up useless console log * Added .env info log * fix(env): pushed env lol * Added gitignore * Added .env values * Updated cd pipelines. Added envs into build * added copy .env * Removed copy dev :) * Update cd-dev.yaml * feat(settings): Updated Settings Page (#32) * Added avatars to settings page * Updated settings page * Remove envs * Comment sandwitch * remove secret * blank * fix(lint): Fixed bad lint problem * feat(cards): Updated the card design (#34) * Added basic card components. * adding opacity on like & dislikes * Added likes and dislikes to cards * fix(android): Updated Cards * feat(end-screen): Added an end screen. (#42) * Updated result interface and added basic markup for result page. * Added card bottom icons. * Added time to cards * fix(lint): fixed lint errors * fixed settings error * Removed unused assets --------- Co-authored-by: Alex Dyakonov <115474788+AlexDyakonov@users.noreply.github.com> Co-authored-by: Alex Dyakonov Co-authored-by: vaniog * feat(map): Added map to home screen. (#47) * Updated dockerfile to match new standard * added cd for dev branch (#22) Co-authored-by: Mike de Geofroy * fixed formatting * Moved api url to env Cleaned up useless console log * Added .env info log * fix(env): pushed env lol * Added gitignore * Added .env values * Updated cd pipelines. Added envs into build * added copy .env * Removed copy dev :) * Update cd-dev.yaml * feat(settings): Updated Settings Page (#32) * Added avatars to settings page * Updated settings page * Remove envs * Comment sandwitch * remove secret * blank * fix(lint): Fixed bad lint problem * feat(cards): Updated the card design (#34) * Added basic card components. * adding opacity on like & dislikes * Added likes and dislikes to cards * fix(android): Updated Cards * feat(end-screen): Added an end screen. (#42) * Updated result interface and added basic markup for result page. * Added card bottom icons. * Added time to cards * fix(lint): fixed lint errors * fixed settings error * Removed unused assets * feat(error): Added error pages and websocket error parsing (#45) * Updated dockerfile to match new standard * added cd for dev branch (#22) * fixed formatting * Moved api url to env Cleaned up useless console log * Added .env info log * fix(env): pushed env lol * Added gitignore * Added .env values * Updated cd pipelines. Added envs into build * added copy .env * Removed copy dev :) * Update cd-dev.yaml * feat(settings): Updated Settings Page (#32) * Added avatars to settings page * Updated settings page * Remove envs * Comment sandwitch * remove secret * blank * fix(lint): Fixed bad lint problem * feat(cards): Updated the card design (#34) * Added basic card components. * adding opacity on like & dislikes * Added likes and dislikes to cards * fix(android): Updated Cards * feat(end-screen): Added an end screen. (#42) * Updated result interface and added basic markup for result page. * Added card bottom icons. * Added time to cards * fix(lint): fixed lint errors * fixed settings error * Removed unused assets --------- Co-authored-by: Alex Dyakonov <115474788+AlexDyakonov@users.noreply.github.com> Co-authored-by: Alex Dyakonov Co-authored-by: vaniog * feat(map): Added map to home screen. (#46) * Added a map on home screen. * Cleaned up comments and logs * fixed lint * fixed errors uncaught by lint --------- Co-authored-by: Alex Dyakonov <115474788+AlexDyakonov@users.noreply.github.com> Co-authored-by: Alex Dyakonov Co-authored-by: vaniog * Updated ci/cd pipelines (#48) * Updated tests * Updated cd for prod * fixed ci-tests.yaml error (#49) --------- Co-authored-by: Alex Dyakonov <115474788+AlexDyakonov@users.noreply.github.com> Co-authored-by: Alex Dyakonov Co-authored-by: vaniog --- .github/workflows/cd-dev.yaml | 9 +++---- .github/workflows/cd-production.yaml | 27 +++++++++---------- .github/workflows/ci-build.yaml | 18 +++++++++++++ .../{ci-tests-build.yaml => ci-tests.yaml} | 19 +++---------- 4 files changed, 38 insertions(+), 35 deletions(-) create mode 100644 .github/workflows/ci-build.yaml rename .github/workflows/{ci-tests-build.yaml => ci-tests.yaml} (54%) diff --git a/.github/workflows/cd-dev.yaml b/.github/workflows/cd-dev.yaml index eb6ab6b..4403019 100644 --- a/.github/workflows/cd-dev.yaml +++ b/.github/workflows/cd-dev.yaml @@ -1,8 +1,8 @@ -name: CD Dev +name: cd-dev on: workflow_run: - workflows: ["CI"] + workflows: ["ci-tests"] types: - completed @@ -36,7 +36,6 @@ jobs: run: | echo "VITE_API_URL=${{ secrets.VITE_API_URL_DEV }}" > .env - - name: Build and push Docker image id: push uses: docker/build-push-action@v5 @@ -45,8 +44,8 @@ jobs: file: ./Dockerfile push: true tags: | - shampiniony/dishdash-miniapp:dev - shampiniony/dishdash-miniapp:dev-${{ env.COMMIT_SHORT_SHA }} + ${{ secrets.DOCKER_USERNAME }}/dishdash-miniapp:dev + ${{ secrets.DOCKER_USERNAME }}/dishdash-miniapp:dev-${{ env.COMMIT_SHORT_SHA }} - name: Trigger Watchtower to update dev container shell: bash diff --git a/.github/workflows/cd-production.yaml b/.github/workflows/cd-production.yaml index 07ee36d..4399d97 100644 --- a/.github/workflows/cd-production.yaml +++ b/.github/workflows/cd-production.yaml @@ -1,15 +1,20 @@ -name: Publish Docker image +name: CD-prod on: - workflow_run: - workflows: ["CI"] - types: - - completed + workflow_dispatch: + inputs: + tag_name: + description: Write tag for deploy + required: true jobs: + ci-tests: + uses: ./.github/workflows/ci-tests.yaml + push_to_registry: name: Push Docker image to Docker Hub - if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main' }} + needs: [ci-tests] + if: (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != '') runs-on: ubuntu-latest permissions: packages: write @@ -20,12 +25,6 @@ jobs: - name: Check out the repo uses: actions/checkout@v4 - - name: Set short git commit SHA - id: vars - run: | - calculatedSha=$(git rev-parse --short ${{ github.sha }}) - echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV - - name: Log in to Docker Hub uses: docker/login-action@v2 with: @@ -44,8 +43,8 @@ jobs: file: ./Dockerfile push: true tags: | - shampiniony/dishdash-miniapp:latest - shampiniony/dishdash-miniapp:${{ env.COMMIT_SHORT_SHA }} + ${{ secrets.DOCKER_USERNAME }}/dishdash-miniapp:latest + ${{ secrets.DOCKER_USERNAME }}/dishdash-miniapp:${{ github.event.inputs.tag_name }} - name: Trigger watchtower to update container(s) shell: bash diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml new file mode 100644 index 0000000..a75b883 --- /dev/null +++ b/.github/workflows/ci-build.yaml @@ -0,0 +1,18 @@ +name: ci-build + +on: + workflow_call: {} + pull_request: + branches: [ "main" ] + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build docker image + run: docker compose build --progress plain diff --git a/.github/workflows/ci-tests-build.yaml b/.github/workflows/ci-tests.yaml similarity index 54% rename from .github/workflows/ci-tests-build.yaml rename to .github/workflows/ci-tests.yaml index ce576c2..ae49220 100644 --- a/.github/workflows/ci-tests-build.yaml +++ b/.github/workflows/ci-tests.yaml @@ -1,17 +1,10 @@ -name: CI +name: ci-tests -on: - push: - branches: [ "main", "dev" ] - pull_request: - branches: [ "main", "dev" ] +on: [workflow_call] jobs: - build: - runs-on: ubuntu-22.04 - steps: - uses: actions/checkout@v4 @@ -27,10 +20,4 @@ jobs: run: yarn lint - name: Run Unit Tests - run: yarn test - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Build docker image - run: docker compose build + run: yarn test \ No newline at end of file From 1a12b2e43188678015ea60a21be9854c8eeae092 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 7 Nov 2024 11:18:10 +0300 Subject: [PATCH 32/79] Trigger Build From 3ae9ec45b8469ce10ed6ea0ff5f7ded0174c200a Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 7 Nov 2024 11:35:27 +0300 Subject: [PATCH 33/79] bad merge --- src/pages/home.page.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index f12d3cc..afccba5 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -10,7 +10,6 @@ export const HomePage = () => { const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); const webApp = useWebApp(); const { MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; - const { openTelegramLink, MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; const navigate = useNavigate(); const [initDataUnsafe] = useInitData(); From 3d99f269aa247accfd993c3c6206109b12ea4c79 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 7 Nov 2024 12:13:19 +0300 Subject: [PATCH 34/79] Trigger Build From fa0b37dcc0e43187e9ae1ab60b7bd8edd722c153 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 7 Nov 2024 12:17:10 +0300 Subject: [PATCH 35/79] updated workflow --- .github/workflows/cd-dev.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cd-dev.yaml b/.github/workflows/cd-dev.yaml index 7e59a35..7d8d5ee 100644 --- a/.github/workflows/cd-dev.yaml +++ b/.github/workflows/cd-dev.yaml @@ -11,7 +11,8 @@ jobs: push_to_registry: name: Development Continuous Deployment - if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'dev' }} + needs: ci-tests + if: ${{ success() }} runs-on: ubuntu-latest permissions: packages: write @@ -53,3 +54,4 @@ jobs: shell: bash run: | curl -H "Authorization: Bearer ${{ secrets.WATCHTOWER_HTTP_API_TOKEN }}" ${{ secrets.WATCHTOWER_UPDATE_ENDPOINT_DEV }} + From 2aba6a8010c443832c48259b29b0a1913b59225f Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 7 Nov 2024 12:31:17 +0300 Subject: [PATCH 36/79] feat(lobby-preview): Added a lobby preview page (#53) --- src/pages/lobby-preview.page.tsx | 108 ++++++++++++++++++++++++++++++ src/pages/lobby-settings.page.tsx | 35 ++++++---- src/shared/routes/routes.tsx | 4 +- src/shared/stores/lobby.store.ts | 4 +- 4 files changed, 136 insertions(+), 15 deletions(-) create mode 100644 src/pages/lobby-preview.page.tsx diff --git a/src/pages/lobby-preview.page.tsx b/src/pages/lobby-preview.page.tsx new file mode 100644 index 0000000..c1bef48 --- /dev/null +++ b/src/pages/lobby-preview.page.tsx @@ -0,0 +1,108 @@ +import Layout from '@/components/layout'; +import { useLobbyStore } from '@/shared/stores/lobby.store'; +import { motion, AnimatePresence, cubicBezier } from 'framer-motion'; +import { useWebApp } from '@vkruglikov/react-telegram-web-app'; +import { Avatar } from '@/components/ui/avatar'; +import { useEffect } from 'react'; + +import { swipesEvent } from '@/shared/events/app-events/swipes.event'; + +export const LobbyPreviewPage = () => { + const { settings, users, setState, tags } = useLobbyStore(); + + const webApp = useWebApp(); + + const pageVariants = { + initial: { opacity: 0 }, + animate: { + opacity: 1, + transition: { duration: 2, ease: cubicBezier(0.16, 1, 0.3, 1) }, + }, + exit: { + opacity: 0, + transition: { duration: 0.2, ease: cubicBezier(0.7, 0.84, 0, 0) }, + }, + }; + + const setSettings = () => { + setState('settings'); + } + + + const setStart = () => { + swipesEvent.start(); + } + + useEffect(() => { + if (settings.tags.length == 0) { + webApp.MainButton.setText('Настроить'); + webApp.MainButton.show(); + webApp.MainButton.enable(); + webApp.MainButton.onClick(setSettings); + } else { + webApp.MainButton.setText('Начать'); + webApp.MainButton.show(); + webApp.MainButton.enable(); + webApp.MainButton.onClick(setStart); + + webApp.SecondaryButton.setText('Настроить'); + webApp.SecondaryButton.show(); + webApp.SecondaryButton.enable(); + webApp.SecondaryButton.onClick(setSettings); + } + + return () => { + if (settings.tags.length == 0) { + webApp.MainButton.hide(); + webApp.MainButton.offClick(setSettings); + } else { + webApp.MainButton.hide(); + webApp.MainButton.offClick(setStart); + + webApp.SecondaryButton.hide(); + webApp.SecondaryButton.offClick(setSettings); + } + }; + }, [webApp]); + + return ( + + + +
+
+

Участники

+

Дождитесь всех и начинайте свайпать!

+
+
+ {users.map(x => + () + )} +
+
+
+

Настройки лобби

+ {settings.tags.length > 0 ?
+
+ {tags.filter(x => settings.tags.includes(x.id)).map(x => ( +
+ +
+ ))} +
+
~ {(settings.priceMax + settings.priceMin) / 2} ₽
+
:

Пока что вы ничего не выбрали :(
+ Перейдите в настройки

} +
+
+
+
+ ); +}; diff --git a/src/pages/lobby-settings.page.tsx b/src/pages/lobby-settings.page.tsx index 519d605..1b15a8c 100644 --- a/src/pages/lobby-settings.page.tsx +++ b/src/pages/lobby-settings.page.tsx @@ -1,22 +1,22 @@ -import { useCallback } from 'react'; +import { useCallback, useEffect } from 'react'; import Layout from '@/components/layout'; import { Slider } from '@/components/ui/slider'; import { useLobbyStore } from '@/shared/stores/lobby.store'; import { motion, AnimatePresence, cubicBezier } from 'framer-motion'; import { Settings } from '@/shared/types/settings.interface'; -import { MainButton } from '@vkruglikov/react-telegram-web-app'; +import { useWebApp } from '@vkruglikov/react-telegram-web-app'; import { settingsUpdateEvent } from '@/shared/events/app-events/settings.event'; -import { swipesEvent } from '@/shared/events/app-events/swipes.event'; import { Tags } from '@/modules/settings/tags'; import { Users } from '@/modules/settings/users'; -const LobbySettingsPage = () => { - const { settings } = useLobbyStore(); +export const LobbySettingsPage = () => { + const { settings, setState } = useLobbyStore(); const { priceMin, priceMax, maxDistance } = settings; - // causes lag wihout callback + const webApp = useWebApp(); + const handleSettingsChange = useCallback((newSettings: Settings) => { settingsUpdateEvent.update(newSettings); }, []); @@ -43,6 +43,22 @@ const LobbySettingsPage = () => { }, }; + const setPreview = () => { + setState('preview'); + } + + useEffect(() => { + webApp.MainButton.setText('Настроить'); + webApp.MainButton.show(); + webApp.MainButton.enable(); + webApp.MainButton.onClick(setPreview); + + return () => { + webApp.MainButton.hide(); + webApp.MainButton.offClick(setPreview); + }; + }, [webApp]); + return ( @@ -66,7 +82,6 @@ const LobbySettingsPage = () => { -

Средняя цена

@@ -75,7 +90,7 @@ const LobbySettingsPage = () => {

{' '}
{

3 000 ₽

- - swipesEvent.start()} text="Начать" />
); }; - -export default LobbySettingsPage; diff --git a/src/shared/routes/routes.tsx b/src/shared/routes/routes.tsx index 6fa850b..4feb08c 100644 --- a/src/shared/routes/routes.tsx +++ b/src/shared/routes/routes.tsx @@ -1,5 +1,4 @@ import { Route, Routes } from 'react-router-dom'; -import LobbySettingsPage from '@/pages/lobby-settings.page'; import ResultPage from '@/pages/result.page'; import GamePage from '@/pages/game.page'; @@ -17,6 +16,8 @@ import GameCards from '@/modules/game/swipes'; import { useThemeParams } from '@vkruglikov/react-telegram-web-app'; import useTheme from '../hooks/useTheme'; import { HomePage } from '@/pages/home.page'; +import { LobbyPreviewPage } from '@/pages/lobby-preview.page'; +import { LobbySettingsPage } from '@/pages/lobby-settings.page'; const AppRoutes = () => { const { subscribe, socket } = useSocket(); @@ -42,6 +43,7 @@ const AppRoutes = () => { }> } /> } /> + } /> } /> } /> diff --git a/src/shared/stores/lobby.store.ts b/src/shared/stores/lobby.store.ts index 37e0329..70ce898 100644 --- a/src/shared/stores/lobby.store.ts +++ b/src/shared/stores/lobby.store.ts @@ -4,7 +4,7 @@ import { User } from '@/shared/types/user.interface'; import { Settings } from '@/shared/types/settings.interface'; import { Tag } from '@/shared/types/tag.interface'; -export type GameState = 'settings' | 'match' | 'swipes' | 'result'; +export type GameState = 'settings' | 'match' | 'swipes' | 'result' | 'preview'; type LobbyProps = { lobbyId: string | null; @@ -38,7 +38,7 @@ export const useLobbyStore = create((set) => ({ }, }, users: [], - state: 'settings', + state: 'preview', tags: [], setCards: (cards) => set({ cards }), setLobbyId: (lobbyId) => set({ lobbyId }), From 4e7cfb70f9f2d7211ed253b7015eb14a64bf8fed Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 7 Nov 2024 12:36:28 +0300 Subject: [PATCH 37/79] fix(lint): Fixed lint errors --- src/pages/lobby-preview.page.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/lobby-preview.page.tsx b/src/pages/lobby-preview.page.tsx index c1bef48..c75eb31 100644 --- a/src/pages/lobby-preview.page.tsx +++ b/src/pages/lobby-preview.page.tsx @@ -83,7 +83,7 @@ export const LobbyPreviewPage = () => {
{users.map(x => - () + () )}
@@ -91,8 +91,8 @@ export const LobbyPreviewPage = () => {

Настройки лобби

{settings.tags.length > 0 ?
- {tags.filter(x => settings.tags.includes(x.id)).map(x => ( -
+ {tags.filter(x => settings.tags.includes(x.id)).map((x, index) => ( +
))} From 36947e3f98390db26a0c760559b7b77ecff929ef Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 8 Nov 2024 12:57:18 +0300 Subject: [PATCH 38/79] fix(match): Fixed the match cards (#54) * Fixed images in result & match card --- src/modules/game/match.card.tsx | 103 +++++++++++++++++++----------- src/modules/game/result.card.tsx | 4 +- src/pages/lobby-settings.page.tsx | 1 - 3 files changed, 66 insertions(+), 42 deletions(-) diff --git a/src/modules/game/match.card.tsx b/src/modules/game/match.card.tsx index 59af23e..a60c2ce 100644 --- a/src/modules/game/match.card.tsx +++ b/src/modules/game/match.card.tsx @@ -1,57 +1,82 @@ import { useMatchStore } from '@/shared/stores/match.store'; import { matchEvent } from '@/shared/events/app-events/match.event'; -import { CardComponent } from './card'; import { useWebApp } from '@vkruglikov/react-telegram-web-app'; import { useEffect } from 'react'; const MatchCard = () => { - const { card } = useMatchStore(); + const { card } = useMatchStore(); - const webApp = useWebApp(); + const webApp = useWebApp(); + const { openLink } = webApp; - const voteFinish = () => { - matchEvent.vote(card?.id ?? 0, 1); - }; + const voteFinish = () => { + matchEvent.vote(card?.id ?? 0, 1); + }; - const voteContinue = () => { - matchEvent.vote(card?.id ?? 0, 0); - }; + const voteContinue = () => { + matchEvent.vote(card?.id ?? 0, 0); + }; - // SecondaryButton слишком новая фича, либа ещё не имплементировала, надо будет сделать) - useEffect(() => { - webApp.MainButton.setText('Продолжить'); - webApp.MainButton.show(); - webApp.MainButton.enable(); - webApp.MainButton.onClick(voteContinue); + // SecondaryButton слишком новая фича, либа ещё не имплементировала, надо будет сделать) + useEffect(() => { + webApp.MainButton.setText('Продолжить'); + webApp.MainButton.show(); + webApp.MainButton.enable(); + webApp.MainButton.onClick(voteContinue); - webApp.SecondaryButton.setText('Закончить'); - webApp.SecondaryButton.show(); - webApp.SecondaryButton.enable(); - webApp.SecondaryButton.onClick(voteFinish); + webApp.SecondaryButton.setText('Закончить'); + webApp.SecondaryButton.show(); + webApp.SecondaryButton.enable(); + webApp.SecondaryButton.onClick(voteFinish); - return () => { - webApp.MainButton.hide(); - webApp.MainButton.offClick(voteContinue); + return () => { + webApp.MainButton.hide(); + webApp.MainButton.offClick(voteContinue); - webApp.SecondaryButton.hide(); - webApp.SecondaryButton.offClick(voteFinish); - }; - }, [webApp]); + webApp.SecondaryButton.hide(); + webApp.SecondaryButton.offClick(voteFinish); + }; + }, [webApp]); - return ( -
-
Это метч!
-
- {card && } -
-
- ); + > +
Это метч!
+
+
+
+
+ +
+
+
+
+

{card?.title}

+
+

{ + const url = `https://yandex.ru/maps/?rtext=${card?.location.lat}%2C${card?.location.lon}` + openLink(url); + }} className="p-4 pt-0 cursor-pointer underline flex flex-col justify-between overflow-hidden text-foreground"> + {card?.address} +

+
+
+
+
+
+
+ ); }; export default MatchCard; diff --git a/src/modules/game/result.card.tsx b/src/modules/game/result.card.tsx index 1f608d1..e4649c8 100644 --- a/src/modules/game/result.card.tsx +++ b/src/modules/game/result.card.tsx @@ -12,7 +12,7 @@ export const ResultCard = (data: { card: Card }) => {
-

+

{data.card.tags.map(el => el.name).join(", ")}

{data.card.title}

@@ -30,7 +30,7 @@ export const ResultCard = (data: { card: Card }) => {
- +
) } diff --git a/src/pages/lobby-settings.page.tsx b/src/pages/lobby-settings.page.tsx index 1b15a8c..d0f5cf3 100644 --- a/src/pages/lobby-settings.page.tsx +++ b/src/pages/lobby-settings.page.tsx @@ -14,7 +14,6 @@ export const LobbySettingsPage = () => { const { settings, setState } = useLobbyStore(); const { priceMin, priceMax, maxDistance } = settings; - const webApp = useWebApp(); const handleSettingsChange = useCallback((newSettings: Settings) => { From 40fa21adbd85e22ac06fef0179c1f8c0671986d9 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 8 Nov 2024 18:29:40 +0300 Subject: [PATCH 39/79] fix(result): Fixed scrolling on result screen & button width. (#55) * Updated imports, added return to home button * fixed scrolling on result page --- src/modules/game/result.card.tsx | 2 +- src/pages/game.page.tsx | 4 +- src/pages/home.page.tsx | 4 + src/pages/result.page.tsx | 17 +++-- src/shared/hooks/useRoutes.tsx | 20 +++-- src/shared/routes/routes.tsx | 4 +- src/shared/stores/lobby.store.ts | 122 +++++++++++++++++-------------- 7 files changed, 97 insertions(+), 76 deletions(-) diff --git a/src/modules/game/result.card.tsx b/src/modules/game/result.card.tsx index e4649c8..64866ad 100644 --- a/src/modules/game/result.card.tsx +++ b/src/modules/game/result.card.tsx @@ -10,7 +10,7 @@ export const ResultCard = (data: { card: Card }) => { return (
-
+

{data.card.tags.map(el => el.name).join(", ")} diff --git a/src/pages/game.page.tsx b/src/pages/game.page.tsx index 0485117..a536c0f 100644 --- a/src/pages/game.page.tsx +++ b/src/pages/game.page.tsx @@ -8,7 +8,7 @@ import { userEvents } from '@/shared/events/app-events/user.event'; import { useRoutes } from '@/shared/hooks/useRoutes'; import { GameComponent } from '@/components/ui/game'; -const GamePage = () => { +export const GamePage = () => { const { setLobbyId, lobbyId } = useLobbyStore(); const { id } = useParams<{ id: string }>(); //lobbyId const { user, createUser, ready } = useAuth(); @@ -31,5 +31,3 @@ const GamePage = () => { return ; }; - -export default GamePage; diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index afccba5..af5e1dc 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -5,6 +5,7 @@ import 'leaflet/dist/leaflet.css'; import { MapContainer, TileLayer, useMapEvents } from 'react-leaflet'; import { useNavigate } from "react-router-dom"; import { Avatar } from "@/components/ui/avatar"; +import { useLobbyStore } from "@/shared/stores/lobby.store"; export const HomePage = () => { const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); @@ -13,7 +14,10 @@ export const HomePage = () => { const navigate = useNavigate(); const [initDataUnsafe] = useInitData(); + const { resetStore } = useLobbyStore(); + const handleClick = async () => { + resetStore(); const lobby = await postLobby(position); navigate(`/${lobby?.id}`); }; diff --git a/src/pages/result.page.tsx b/src/pages/result.page.tsx index c2c7026..9c5c378 100644 --- a/src/pages/result.page.tsx +++ b/src/pages/result.page.tsx @@ -1,21 +1,24 @@ import { ResultCard } from '@/modules/game/result.card'; import { useResultCardStore } from '@/shared/stores/result-card.store'; +import { MainButton } from '@vkruglikov/react-telegram-web-app'; +import { useNavigate } from 'react-router-dom'; -const ResultPage = () => { +export const ResultPage = () => { const { result } = useResultCardStore(); - - console.log(result) + const navigate = useNavigate(); return (

-

Ваши метчи

-
+

Ваши метчи

+
{result?.matches.map((x) => )}
+ { + navigate('/'); + }} text={'На Главную'} />
); }; -export default ResultPage; diff --git a/src/shared/hooks/useRoutes.tsx b/src/shared/hooks/useRoutes.tsx index 4788c12..d856bdb 100644 --- a/src/shared/hooks/useRoutes.tsx +++ b/src/shared/hooks/useRoutes.tsx @@ -1,14 +1,18 @@ import { useEffect } from 'react'; import { useLobbyStore } from '@/shared/stores/lobby.store'; -import { useNavigate, useParams } from 'react-router-dom'; +import { useLocation, useNavigate, useParams } from 'react-router-dom'; export const useRoutes = () => { - const { state } = useLobbyStore(); - const { id } = useParams<{ id: string }>(); - const navigate = useNavigate(); + const { state } = useLobbyStore(); + const { id } = useParams<{ id: string }>(); + const navigate = useNavigate(); + const location = useLocation(); - useEffect(() => { - // Это работает толко если URL страницы совпадает со стейтом) - navigate(`/${id}/${state}`); - }, [state]); + useEffect(() => { + // Это работает толко если URL страницы совпадает со стейтом) + if (id != '') { + console.log(id, state, location); + navigate(`/${id}/${state}`); + } + }, [state]); }; diff --git a/src/shared/routes/routes.tsx b/src/shared/routes/routes.tsx index 4feb08c..abef462 100644 --- a/src/shared/routes/routes.tsx +++ b/src/shared/routes/routes.tsx @@ -1,6 +1,6 @@ import { Route, Routes } from 'react-router-dom'; -import ResultPage from '@/pages/result.page'; -import GamePage from '@/pages/game.page'; +import { ResultPage } from '@/pages/result.page'; +import { GamePage } from '@/pages/game.page'; import { useEffect } from 'react'; import { cardEvent } from '../events/app-events/card.event'; diff --git a/src/shared/stores/lobby.store.ts b/src/shared/stores/lobby.store.ts index 70ce898..909712e 100644 --- a/src/shared/stores/lobby.store.ts +++ b/src/shared/stores/lobby.store.ts @@ -6,67 +6,79 @@ import { Tag } from '@/shared/types/tag.interface'; export type GameState = 'settings' | 'match' | 'swipes' | 'result' | 'preview'; +type LobbyActions = { + setCards: (cards: Card[]) => void; + setLobbyId: (lobbyId: string) => void; + addUser: (user: User) => void; + removeUser: (userId: string) => void; + setUsers: (users: User[]) => void; + setTags: (tags: Tag[]) => void; + updateSettings: (settings: Partial) => void; + setSettings: (settings: Settings) => void; + setState: (state: GameState) => void; + resetStore: () => void; + +} + type LobbyProps = { - lobbyId: string | null; - cards: Card[]; - users: User[]; - settings: Settings; - state: GameState; - tags: Tag[]; - setCards: (cards: Card[]) => void; - setLobbyId: (lobbyId: string) => void; - addUser: (user: User) => void; - removeUser: (userId: string) => void; - setUsers: (users: User[]) => void; - setTags: (tags: Tag[]) => void; - updateSettings: (settings: Partial) => void; - setSettings: (settings: Settings) => void; - setState: (state: GameState) => void; + lobbyId: string | null; + cards: Card[]; + users: User[]; + settings: Settings; + state: GameState; + tags: Tag[]; }; -export const useLobbyStore = create((set) => ({ - lobbyId: null, - cards: [], - settings: { - priceMin: 0, - priceMax: 10000, - maxDistance: 10000, +const initialState : LobbyProps = { + lobbyId: null, + cards: [], + settings: { + priceMin: 0, + priceMax: 10000, + maxDistance: 10000, + tags: [], + location: { + lat: 0, + lon: 0, + }, + }, + users: [], + state: 'preview', tags: [], - location: { - lat: 0, - lon: 0, +}; + +export const useLobbyStore = create((set) => ({ + ...initialState, + setCards: (cards) => set({ cards }), + setLobbyId: (lobbyId) => set({ lobbyId }), + setSettings: (settings) => set({ settings }), + addUser: (newUser: User) => { + set((state) => ({ + users: [...state.users, newUser], + })); + }, + removeUser: (userId) => + set((state) => ({ + users: state.users.filter((user) => user.id !== userId), + })), + setUsers: (users) => set({ users }), + setState: (state) => set({ state }), + setTags: (tags) => set({ tags }), + updateSettings: (newSettings) => { + return set((state) => ({ + settings: { + ...state.settings, + ...newSettings, + }, + })); }, - }, - users: [], - state: 'preview', - tags: [], - setCards: (cards) => set({ cards }), - setLobbyId: (lobbyId) => set({ lobbyId }), - setSettings: (settings) => set({ settings }), - addUser: (newUser: User) => { - set((state) => ({ - users: [...state.users, newUser], - })); - }, - removeUser: (userId) => - set((state) => ({ - users: state.users.filter((user) => user.id !== userId), - })), - setUsers: (users) => set({ users }), - setState: (state) => set({ state }), - setTags: (tags) => set({ tags }), - updateSettings: (newSettings) => { - return set((state) => ({ - settings: { - ...state.settings, - ...newSettings, - }, - })); - }, + resetStore: () => { + return set(initialState); + } })); export function getLobbyStoreMethods() { - const { setCards, cards, addUser, removeUser, setSettings, setState } = - useLobbyStore.getState(); - return { setCards, cards, addUser, removeUser, setSettings, setState }; + const { setCards, cards, addUser, removeUser, setSettings, setState } = + useLobbyStore.getState(); + return { setCards, cards, addUser, removeUser, setSettings, setState }; } From b9d3972f3e0f9cb3f27ec54f34c196453d81672d Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 8 Nov 2024 20:50:10 +0300 Subject: [PATCH 40/79] feat(main-screen): Added a beautiful animated button (#56) * Added a map on home screen. * Cleaned up comments and logs * fixed lint * added a button to main * Fixed some light errors --- src/pages/home.page.tsx | 86 +++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index af5e1dc..a0844c1 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -2,10 +2,10 @@ import { postLobby } from "@/shared/api/lobby.api"; import { useInitData, useWebApp } from "@vkruglikov/react-telegram-web-app"; import { useEffect, useState } from "react"; import 'leaflet/dist/leaflet.css'; -import { MapContainer, TileLayer, useMapEvents } from 'react-leaflet'; +import { MapContainer, TileLayer, useMap, useMapEvents } from 'react-leaflet'; import { useNavigate } from "react-router-dom"; import { Avatar } from "@/components/ui/avatar"; -import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { motion } from "framer-motion"; export const HomePage = () => { const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); @@ -14,12 +14,15 @@ export const HomePage = () => { const navigate = useNavigate(); const [initDataUnsafe] = useInitData(); - const { resetStore } = useLobbyStore(); + const [showMap, setShowMap] = useState(false); const handleClick = async () => { - resetStore(); - const lobby = await postLobby(position); - navigate(`/${lobby?.id}`); + if (!showMap) { + setShowMap(true); + } else { + const lobby = await postLobby(position); + navigate(`/${lobby?.id}`); + } }; useEffect(() => { @@ -31,56 +34,65 @@ export const HomePage = () => { }, [handleClick]) useEffect(() => { - MainButton.setText('Создать Лобби'); - MainButton.show(); - MainButton.enable(); - MainButton.onClick(handleClick); - disableVerticalSwipes(); return () => { - MainButton.hide(); enableVerticalSwipes(); }; }, []); const MapEvents = () => { + const map = useMap(); + useMapEvents({ moveend(e) { const newCenter = e.target.getCenter(); setPosition(() => ({ lat: newCenter.lat, lon: newCenter.lng })); } }); + + useEffect(() => { + console.log('kek'); + map.invalidateSize(); + }, [showMap, map]); + return null; }; return ( -
-
- - - - +
+
+ + + + + - {/* Marker icon centered over the map */} -
- + {/* Marker icon centered over the map */} +
+ +
+ +
+ {showMap ? "Создать Лобби" : "Начать"}
From 07bee249aaea336d2ef57f72ad99b73f535b3917 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 8 Nov 2024 20:58:13 +0300 Subject: [PATCH 41/79] fixed bad loby logic --- src/pages/home.page.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index a0844c1..30b8284 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -6,6 +6,7 @@ import { MapContainer, TileLayer, useMap, useMapEvents } from 'react-leaflet'; import { useNavigate } from "react-router-dom"; import { Avatar } from "@/components/ui/avatar"; import { motion } from "framer-motion"; +import { useLobbyStore } from "@/shared/stores/lobby.store"; export const HomePage = () => { const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); @@ -14,6 +15,8 @@ export const HomePage = () => { const navigate = useNavigate(); const [initDataUnsafe] = useInitData(); + const { resetStore } = useLobbyStore(); + const [showMap, setShowMap] = useState(false); const handleClick = async () => { @@ -22,6 +25,7 @@ export const HomePage = () => { } else { const lobby = await postLobby(position); navigate(`/${lobby?.id}`); + resetStore(); } }; From f9b2dab1828f3131b40a97890d4e996ca4347493 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 8 Nov 2024 21:13:13 +0300 Subject: [PATCH 42/79] slight fix to button --- src/pages/home.page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index 30b8284..a8a5477 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -95,7 +95,7 @@ export const HomePage = () => {
-
+
{showMap ? "Создать Лобби" : "Начать"}
From 55654b7eae522c809e70a59c09de1803c2b68580 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 9 Nov 2024 17:50:10 +0300 Subject: [PATCH 43/79] feat(main-screen): Added recent lobbies (#57) * Added a map on home screen. * Cleaned up comments and logs * fixed lint * added a button to main * Fixed some light errors * updated like/dislike icons * updated users & added recent lobbies --- src/modules/game/card.tsx | 4 +- src/pages/game.page.tsx | 5 +- src/pages/home.page.tsx | 25 +++-- src/shared/hooks/useAuth.ts | 12 +-- src/shared/providers/auth.provider.tsx | 125 +++++++++++++------------ 5 files changed, 94 insertions(+), 77 deletions(-) diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index 7d1a577..512a64d 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -20,8 +20,8 @@ export const CardComponent = ({ data, deltaY }: Props) => { const { openLink } = useWebApp(); - const leftOpacity = deltaY ? useTransform(deltaY, [-15, 0, 15], [0, 0, 1]) : 0; - const rightOpacity = deltaY ? useTransform(deltaY, [-15, 0, 15], [1, 0, 0]) : 0; + const leftOpacity = deltaY ? useTransform(deltaY, [-5, 0, 5], [0, 0, 1]) : 0; + const rightOpacity = deltaY ? useTransform(deltaY, [-5, 0, 5], [1, 0, 0]) : 0; const { disableVerticalSwipes, enableVerticalSwipes } = useWebApp(); useEffect(() => { diff --git a/src/pages/game.page.tsx b/src/pages/game.page.tsx index a536c0f..59a4a6f 100644 --- a/src/pages/game.page.tsx +++ b/src/pages/game.page.tsx @@ -11,7 +11,7 @@ import { GameComponent } from '@/components/ui/game'; export const GamePage = () => { const { setLobbyId, lobbyId } = useLobbyStore(); const { id } = useParams<{ id: string }>(); //lobbyId - const { user, createUser, ready } = useAuth(); + const { user, createUser, ready, addRecentLobby, recentLobbies } = useAuth(); const [initDataUnsafe] = useInitData(); useRoutes(); @@ -25,6 +25,9 @@ export const GamePage = () => { } if (id && !!user && lobbyId === null) { setLobbyId(id); + if (!recentLobbies.includes(id)) { + addRecentLobby(id); + } userEvents.joinLobby(id, user?.id); } }, [id, user, ready]); diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index a8a5477..ec79d89 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -6,16 +6,20 @@ import { MapContainer, TileLayer, useMap, useMapEvents } from 'react-leaflet'; import { useNavigate } from "react-router-dom"; import { Avatar } from "@/components/ui/avatar"; import { motion } from "framer-motion"; + +import { useAuth } from "@/shared/hooks/useAuth"; import { useLobbyStore } from "@/shared/stores/lobby.store"; + export const HomePage = () => { const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); const webApp = useWebApp(); const { MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; const navigate = useNavigate(); - const [initDataUnsafe] = useInitData(); + const { user } = useAuth(); - const { resetStore } = useLobbyStore(); + const { recentLobbies } = useAuth(); + const [showMap, setShowMap] = useState(false); const [showMap, setShowMap] = useState(false); @@ -56,7 +60,6 @@ export const HomePage = () => { }); useEffect(() => { - console.log('kek'); map.invalidateSize(); }, [showMap, map]); @@ -64,7 +67,17 @@ export const HomePage = () => { }; return ( -
+
+ {recentLobbies.slice(0, 3).map((id, index) => { + return ( +
{ + navigate(`/${id}`) + resetStore(); + }} className="pointer-events-auto w-[90%] h-16 bg-secondary rounded-xl" key={`${id}_${index}`}> + {id} +
+ ) + })}
{ zIndex: 1000 }} > - +
-
+
{showMap ? "Создать Лобби" : "Начать"}
diff --git a/src/shared/hooks/useAuth.ts b/src/shared/hooks/useAuth.ts index 9045683..6356ea6 100644 --- a/src/shared/hooks/useAuth.ts +++ b/src/shared/hooks/useAuth.ts @@ -2,12 +2,12 @@ import { useContext } from 'react'; import { AuthContext } from '@/shared/providers/auth.provider'; export const useAuth = () => { - const context = useContext(AuthContext); - if (!context) { - throw new Error('useAuth must be used within an AuthProvider'); - } + const context = useContext(AuthContext); + if (!context) { + throw new Error('useAuth must be used within an AuthProvider'); + } - const { ready, user, createUser, logoutUser } = context; + const { ready, user, createUser, logoutUser, addRecentLobby, recentLobbies } = context; - return { ready, user, createUser, logoutUser }; + return { ready, user, createUser, logoutUser, addRecentLobby, recentLobbies }; }; diff --git a/src/shared/providers/auth.provider.tsx b/src/shared/providers/auth.provider.tsx index 9fb6e55..b8b4081 100644 --- a/src/shared/providers/auth.provider.tsx +++ b/src/shared/providers/auth.provider.tsx @@ -1,87 +1,88 @@ import React, { - createContext, - ReactNode, - useEffect, - useRef, - useState, + createContext, + ReactNode, + useEffect, + useState, } from 'react'; -import { useCloudStorage } from '@vkruglikov/react-telegram-web-app'; +import { useCloudStorage, useInitData } from '@vkruglikov/react-telegram-web-app'; import { User } from '@/shared/types/user.interface'; import { createUser } from '../api/auth.api'; export interface AuthState { - user: User | null; - ready: boolean; - createUser: (user: Omit) => Promise; - logoutUser: () => Promise; + user: User | null; + recentLobbies: string[]; + logoutUser: () => Promise; + addRecentLobby: (id: string) => Promise; } export const AuthContext = createContext(undefined); type AuthProviderProps = { - children: ReactNode; + children: ReactNode; }; export const AuthProvider: React.FC = ({ children }) => { - const { getItem, setItem } = useCloudStorage(); + const { getItem, setItem } = useCloudStorage(); + const [initDataUnsafe] = useInitData(); - const [store, setStore] = useState({ - user: null, - ready: false, - createUser: async (user) => { - const newUser = await createUser(user); - if (newUser === null) { - console.error('A problem ocurred when generating a user.'); - } + const [ready, setReady] = useState(false); + const [store, setStore] = useState({ + user: null, + recentLobbies: [], + addRecentLobby: async (id: string) => { + setStore((prevState) => ({ ...prevState, recentLobbies: [id, ...prevState.recentLobbies] })); + }, + logoutUser: async () => { + const newState = { ...store, user: null }; + setStore(newState); + }, + }); - const newState = { ...store, user: newUser ?? null }; - setStore(newState); - }, - logoutUser: async () => { - const newState = { ...store, user: null }; - setStore(newState); - }, - }); + const updateUser = async (user: Omit) => { + const newUser = await createUser(user); + if (newUser === null) { + console.error('A problem ocurred when generating a user.'); + } - useEffect(() => { - const updateAuth = async () => { - try { - await setItem('auth', JSON.stringify(store)); - } catch (error) { - console.error('Failed to save store:', error); - } - }; + setStore((prevState) => ({ ...prevState, user: newUser ?? null })); + } - updateAuth(); - }, [store]); + useEffect(() => { + getItem('auth').then((storedData) => { + let storedState = storedData ? JSON.parse(storedData) : null; + setStore((prevState) => ({ ...prevState, ...storedState })); + console.log('retreived from stored state', storedState); + setReady(true); + }); + }, []) - const isRehydrated = useRef(false); + useEffect(() => { + console.log(store, ready); + if (ready && store.user === null && initDataUnsafe?.user !== undefined) { + updateUser({ + name: initDataUnsafe.user.username ?? initDataUnsafe.user.first_name, + avatar: `https://t.me/i/userpic/320/${initDataUnsafe?.user.username}.jpg`, + telegram: initDataUnsafe.user.id, + }) - useEffect(() => { - const rehydrate = async () => { - let storedState: AuthState | null = null; + console.log('created user'); + } + }, [ready, store]) - try { - const data = await getItem('auth'); - storedState = data ? JSON.parse(data) : null; - } catch (error) { - console.error('Error parsing stored state:', error); - } - setStore((prevStore) => ({ - ...prevStore, - user: storedState?.user ?? null, - ready: true, - })); - }; + useEffect(() => { + const updateAuth = async () => { + try { + await setItem('auth', JSON.stringify(store)); + } catch (error) { + console.error('Failed to save store:', error); + } + }; - if (!isRehydrated.current) { - rehydrate(); - isRehydrated.current = true; - } - }, [getItem]); + updateAuth(); + }, [store]); - return ( - {children} - ); + return ( + {children} + ); }; From e293c2193395b5f144c3f656cdb0a65fb9959d84 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 9 Nov 2024 17:55:36 +0300 Subject: [PATCH 44/79] fixed lint errors --- src/pages/home.page.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index ec79d89..846a469 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -1,5 +1,5 @@ import { postLobby } from "@/shared/api/lobby.api"; -import { useInitData, useWebApp } from "@vkruglikov/react-telegram-web-app"; +import { useWebApp } from "@vkruglikov/react-telegram-web-app"; import { useEffect, useState } from "react"; import 'leaflet/dist/leaflet.css'; import { MapContainer, TileLayer, useMap, useMapEvents } from 'react-leaflet'; @@ -19,7 +19,7 @@ export const HomePage = () => { const { user } = useAuth(); const { recentLobbies } = useAuth(); - const [showMap, setShowMap] = useState(false); + const { resetStore } = useLobbyStore(); const [showMap, setShowMap] = useState(false); From 0bad6e8d1af05857831d98697f8ca85ec8e3debe Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 9 Nov 2024 18:00:07 +0300 Subject: [PATCH 45/79] fixed build errors --- src/pages/game.page.tsx | 11 +---------- src/shared/hooks/useAuth.ts | 4 ++-- src/shared/providers/auth.provider.tsx | 4 ++-- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/pages/game.page.tsx b/src/pages/game.page.tsx index 59a4a6f..1ffa136 100644 --- a/src/pages/game.page.tsx +++ b/src/pages/game.page.tsx @@ -1,6 +1,5 @@ import { useParams } from 'react-router-dom'; import { useEffect } from 'react'; -import { useInitData } from '@vkruglikov/react-telegram-web-app'; import { useAuth } from '@/shared/hooks/useAuth'; import { useLobbyStore } from '@/shared/stores/lobby.store'; import { userEvents } from '@/shared/events/app-events/user.event'; @@ -11,18 +10,10 @@ import { GameComponent } from '@/components/ui/game'; export const GamePage = () => { const { setLobbyId, lobbyId } = useLobbyStore(); const { id } = useParams<{ id: string }>(); //lobbyId - const { user, createUser, ready, addRecentLobby, recentLobbies } = useAuth(); - const [initDataUnsafe] = useInitData(); + const { user, addRecentLobby, recentLobbies, ready } = useAuth(); useRoutes(); useEffect(() => { - if (user === null && initDataUnsafe?.user && ready) { - createUser({ - name: initDataUnsafe.user.username ?? initDataUnsafe.user.first_name, - avatar: '', - telegram: initDataUnsafe.user.id, - }); - } if (id && !!user && lobbyId === null) { setLobbyId(id); if (!recentLobbies.includes(id)) { diff --git a/src/shared/hooks/useAuth.ts b/src/shared/hooks/useAuth.ts index 6356ea6..6e6d087 100644 --- a/src/shared/hooks/useAuth.ts +++ b/src/shared/hooks/useAuth.ts @@ -7,7 +7,7 @@ export const useAuth = () => { throw new Error('useAuth must be used within an AuthProvider'); } - const { ready, user, createUser, logoutUser, addRecentLobby, recentLobbies } = context; + const { user, ready, logoutUser, addRecentLobby, recentLobbies } = context; - return { ready, user, createUser, logoutUser, addRecentLobby, recentLobbies }; + return { user, ready, logoutUser, addRecentLobby, recentLobbies }; }; diff --git a/src/shared/providers/auth.provider.tsx b/src/shared/providers/auth.provider.tsx index b8b4081..4596f8c 100644 --- a/src/shared/providers/auth.provider.tsx +++ b/src/shared/providers/auth.provider.tsx @@ -15,7 +15,7 @@ export interface AuthState { addRecentLobby: (id: string) => Promise; } -export const AuthContext = createContext(undefined); +export const AuthContext = createContext(undefined); type AuthProviderProps = { children: ReactNode; @@ -83,6 +83,6 @@ export const AuthProvider: React.FC = ({ children }) => { }, [store]); return ( - {children} + {children} ); }; From 34be04d1fe8fee83492721f608a43f9a240236bc Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 9 Nov 2024 18:32:55 +0300 Subject: [PATCH 46/79] multiple fixes to lobby logic --- src/modules/settings/tags.tsx | 11 +---------- src/pages/game.page.tsx | 10 ++++++++++ src/shared/hooks/useRoutes.tsx | 4 +--- src/shared/providers/auth.provider.tsx | 6 +----- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/modules/settings/tags.tsx b/src/modules/settings/tags.tsx index bef4324..0b36cea 100644 --- a/src/modules/settings/tags.tsx +++ b/src/modules/settings/tags.tsx @@ -1,11 +1,9 @@ import { settingsUpdateEvent } from "@/shared/events/app-events/settings.event"; import { useLobbyStore } from "@/shared/stores/lobby.store"; -import { useEffect } from "react"; -import { fetchTags } from "@/shared/api/tags.api" import { Toggle } from "@/components/ui/toggle"; export const Tags = () => { - const { settings, tags, setTags } = useLobbyStore(); + const { settings, tags } = useLobbyStore(); const toggleCategoryType = (tagId: number) => { const found = settings.tags.find((x) => x == tagId); @@ -26,13 +24,6 @@ export const Tags = () => { }); }; - useEffect(() => { - fetchTags().then((tags) => { - console.log(tags); - if (tags != undefined) setTags(tags); - }); - }, []); - return ( <> {tags diff --git a/src/pages/game.page.tsx b/src/pages/game.page.tsx index 1ffa136..eaf296d 100644 --- a/src/pages/game.page.tsx +++ b/src/pages/game.page.tsx @@ -4,6 +4,8 @@ import { useAuth } from '@/shared/hooks/useAuth'; import { useLobbyStore } from '@/shared/stores/lobby.store'; import { userEvents } from '@/shared/events/app-events/user.event'; +import { fetchTags } from "@/shared/api/tags.api" + import { useRoutes } from '@/shared/hooks/useRoutes'; import { GameComponent } from '@/components/ui/game'; @@ -11,8 +13,16 @@ export const GamePage = () => { const { setLobbyId, lobbyId } = useLobbyStore(); const { id } = useParams<{ id: string }>(); //lobbyId const { user, addRecentLobby, recentLobbies, ready } = useAuth(); + const { setTags } = useLobbyStore(); useRoutes(); + + useEffect(() => { + fetchTags().then((tags) => { + if (tags != undefined) setTags(tags); + }); + }, []); + useEffect(() => { if (id && !!user && lobbyId === null) { setLobbyId(id); diff --git a/src/shared/hooks/useRoutes.tsx b/src/shared/hooks/useRoutes.tsx index d856bdb..fc5ddc8 100644 --- a/src/shared/hooks/useRoutes.tsx +++ b/src/shared/hooks/useRoutes.tsx @@ -1,17 +1,15 @@ import { useEffect } from 'react'; import { useLobbyStore } from '@/shared/stores/lobby.store'; -import { useLocation, useNavigate, useParams } from 'react-router-dom'; +import { useNavigate, useParams } from 'react-router-dom'; export const useRoutes = () => { const { state } = useLobbyStore(); const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); - const location = useLocation(); useEffect(() => { // Это работает толко если URL страницы совпадает со стейтом) if (id != '') { - console.log(id, state, location); navigate(`/${id}/${state}`); } }, [state]); diff --git a/src/shared/providers/auth.provider.tsx b/src/shared/providers/auth.provider.tsx index 4596f8c..fbcd96d 100644 --- a/src/shared/providers/auth.provider.tsx +++ b/src/shared/providers/auth.provider.tsx @@ -51,21 +51,17 @@ export const AuthProvider: React.FC = ({ children }) => { getItem('auth').then((storedData) => { let storedState = storedData ? JSON.parse(storedData) : null; setStore((prevState) => ({ ...prevState, ...storedState })); - console.log('retreived from stored state', storedState); setReady(true); }); }, []) useEffect(() => { - console.log(store, ready); - if (ready && store.user === null && initDataUnsafe?.user !== undefined) { + if (ready && (store.user === null || store.user.avatar === '') && initDataUnsafe?.user !== undefined) { updateUser({ name: initDataUnsafe.user.username ?? initDataUnsafe.user.first_name, avatar: `https://t.me/i/userpic/320/${initDataUnsafe?.user.username}.jpg`, telegram: initDataUnsafe.user.id, }) - - console.log('created user'); } }, [ready, store]) From ffb72ab4ee60e73c0c4b183f3a12f5b7efa53316 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 11 Nov 2024 20:00:07 +0300 Subject: [PATCH 47/79] feat(main-screen): Added recent lobbies and refactored map element. (#58) * Started adding more stuff to main screen * fixed error with bad users in local storage * Added multiple fixes and new home screen --- .env.example | 1 + package.json | 1 + src/assets/icons/add-person.icon.tsx | 11 +++ src/components/ui/avatar.tsx | 5 +- src/components/ui/game.tsx | 5 -- src/modules/game/card.tsx | 2 +- src/modules/game/result.card.tsx | 2 +- src/modules/home/lobby.card.tsx | 77 +++++++++++++++++ src/modules/home/map.button.tsx | 108 ++++++++++++++++++++++++ src/modules/settings/users.tsx | 17 ++-- src/pages/home.page.tsx | 110 +++++-------------------- src/pages/lobby-preview.page.tsx | 37 +++++++-- src/pages/lobby-settings.page.tsx | 10 ++- src/shared/api/auth.api.ts | 54 ++++++------ src/shared/api/lobby.api.ts | 7 +- src/shared/constants.ts | 1 + src/shared/hooks/useTheme.ts | 53 ++++++------ src/shared/instance/axios.instance.ts | 7 ++ src/shared/providers/auth.provider.tsx | 47 +++++++---- yarn.lock | 24 ++++++ 20 files changed, 393 insertions(+), 186 deletions(-) create mode 100644 src/assets/icons/add-person.icon.tsx create mode 100644 src/modules/home/lobby.card.tsx create mode 100644 src/modules/home/map.button.tsx create mode 100644 src/shared/instance/axios.instance.ts diff --git a/.env.example b/.env.example index 0e7f06f..437458b 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,2 @@ VITE_API_URL=https://dev.dishdash.ru +VITE_BOT_USERNAME=dishdashtunnel_bot diff --git a/package.json b/package.json index f790ef9..ce58dbe 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@vkruglikov/react-telegram-web-app": "^2.1.9", "autoprefixer": "^10.4.19", "axios": "^1.7.2", + "axios-cache-interceptor": "^1", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "framer-motion": "^11.2.4", diff --git a/src/assets/icons/add-person.icon.tsx b/src/assets/icons/add-person.icon.tsx new file mode 100644 index 0000000..1eaf8dc --- /dev/null +++ b/src/assets/icons/add-person.icon.tsx @@ -0,0 +1,11 @@ + +export const AddPersonIcon = ({ className }: { className?: string }) => { + return ( +
+ + + +
+ ) +} + diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx index 0e96b45..6eba6b6 100644 --- a/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -1,3 +1,4 @@ +import { motion } from "framer-motion"; import { CSSProperties } from "react"; interface AvatarProps { @@ -6,7 +7,7 @@ interface AvatarProps { } export const Avatar = ({ src, style }: AvatarProps) => { - return
+ return -
+ } diff --git a/src/components/ui/game.tsx b/src/components/ui/game.tsx index 2844c68..2d35db6 100644 --- a/src/components/ui/game.tsx +++ b/src/components/ui/game.tsx @@ -37,11 +37,6 @@ export const GameComponent = () => { return (
- {isLoading ? ( { onDrag={handleDrag} >
-

{data.title}

+

{data.title}

{data.tags.map(el => el.name).join(", ")}

diff --git a/src/modules/game/result.card.tsx b/src/modules/game/result.card.tsx index 64866ad..623d052 100644 --- a/src/modules/game/result.card.tsx +++ b/src/modules/game/result.card.tsx @@ -12,7 +12,7 @@ export const ResultCard = (data: { card: Card }) => {
-

+

{data.card.tags.map(el => el.name).join(", ")}

{data.card.title}

diff --git a/src/modules/home/lobby.card.tsx b/src/modules/home/lobby.card.tsx new file mode 100644 index 0000000..4ee5f51 --- /dev/null +++ b/src/modules/home/lobby.card.tsx @@ -0,0 +1,77 @@ +import { Lobby, fetchLobby } from "@/shared/api/lobby.api"; +import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { Users } from "../settings/users"; +import { Tag } from "@/shared/types/tag.interface"; + +interface LobbyCardProps { + id: string; +} + +export const LobbyCard = ({ id }: LobbyCardProps) => { + const navigate = useNavigate(); + const { resetStore } = useLobbyStore(); + const [lobby, setLobby] = useState(null); + + useEffect(() => { + fetchLobby(id).then(lobby => setLobby(lobby ?? null)); + }, []) + + const getDiff = (time: Date): string => { + const now = new Date(); + const diffMs = now.getTime() - time.getTime(); + + const seconds = Math.floor(diffMs / 1000); + const minutes = Math.floor(seconds / 60); + const hours = Math.floor(minutes / 60); + const days = Math.floor(hours / 24); + const weeks = Math.floor(days / 7); + const months = Math.floor(days / 30); + const years = Math.floor(days / 365); + + const pluralize = (value: number, words: [string, string, string]): string => { + if (value % 10 === 1 && value % 100 !== 11) return words[0]; + if (value % 10 >= 2 && value % 10 <= 4 && (value % 100 < 10 || value % 100 >= 20)) return words[1]; + return words[2]; + }; + + if (years > 0) return `${years} ${pluralize(years, ['год', 'года', 'лет'])} назад`; + if (months > 0) return `${months} ${pluralize(months, ['месяц', 'месяца', 'месяцев'])} назад`; + if (weeks > 0) return `${weeks} ${pluralize(weeks, ['неделя', 'недели', 'недель'])} назад`; + if (days > 0) return `${days} ${pluralize(days, ['день', 'дня', 'дней'])} назад`; + if (hours > 0) return `${hours} ${pluralize(hours, ['час', 'часа', 'часов'])} назад`; + if (minutes > 0) return `${minutes} ${pluralize(minutes, ['минута', 'минуты', 'минут'])} назад`; + if (seconds > 0) return `${seconds} ${pluralize(seconds, ['секунда', 'секунды', 'секунд'])} назад`; + + return 'только что'; + }; + + const getLobbyCategories = (tags: Tag[]) => { + return tags.length > 0 ? tags.flatMap(x => x.name).join(', ').toLowerCase() : 'Без тегов'; + } + + return ( +
{ + navigate(`/${id}`) + resetStore(); + }} + className={`${lobby ? '' : 'animate-pulse'} cursor-pointer h-[90px] mx-auto p-3 px-4 flex pointer-events-auto w-full bg-secondary rounded-xl`} > + {lobby && (<> +
+
+

+ {getLobbyCategories(lobby?.tags ?? [])} +

+
+

{getDiff(new Date(lobby?.createdAt ?? ''))}

+
+
+ +
+ ) + } +
+ ) +} diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx new file mode 100644 index 0000000..792e8fd --- /dev/null +++ b/src/modules/home/map.button.tsx @@ -0,0 +1,108 @@ +import { Avatar } from "@/components/ui/avatar"; +import { postLobby } from "@/shared/api/lobby.api"; +import { useAuth } from "@/shared/hooks/useAuth"; +import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { PanInfo, motion } from "framer-motion"; +import { useEffect, useState } from "react"; +import { MapContainer, TileLayer, useMap, useMapEvents } from "react-leaflet"; +import { useNavigate } from "react-router-dom"; + +export const MapButton = () => { + const [position, setPosition] = useState({ lat: 59.95725, lon: 30.30826 }); + const [showMap, setShowMap] = useState(false); + const navigate = useNavigate(); + + const [animationComplete, setAnimationComplete] = useState(false); + + const { resetStore } = useLobbyStore(); + const { user } = useAuth(); + + const handleClick = async () => { + if (!showMap) { + setShowMap(true); + } else { + const lobby = await postLobby(position); + navigate(`/${lobby?.id}`); + resetStore(); + } + }; + + const MapEvents = () => { + + const map = useMap(); + + useMapEvents({ + moveend(e) { + const newCenter = e.target.getCenter(); + setPosition(() => ({ lat: newCenter.lat, lon: newCenter.lng })); + } + }); + + useEffect(() => { + map.invalidateSize(); + }, [animationComplete]); + + return null; + }; + + const onDragAction = (_: any, info: PanInfo) => { + if (info.delta.y < 20) setShowMap(false); + } + + return ( +
+ + {showMap && ( + setShowMap(false)} + /> + )} + +
+ setAnimationComplete(false)} + onAnimationComplete={() => setAnimationComplete(true)} + transition={{ duration: 0.4, ease: [0.25, 0.8, 0.5, 1] }} + className="w-full z-50 top-2 pointer-events-auto relative mx-auto rounded-t-xl overflow-hidden"> + +
+
+ + + + + + {/* Marker icon centered over the map */} + + + +
+
+ {showMap ? "Создать Лобби" : "Начать"} +
+
+
+ ) +} diff --git a/src/modules/settings/users.tsx b/src/modules/settings/users.tsx index 8afc91f..0ab03b3 100644 --- a/src/modules/settings/users.tsx +++ b/src/modules/settings/users.tsx @@ -1,17 +1,10 @@ import { Avatar } from "@/components/ui/avatar"; -import { useLobbyStore } from "@/shared/stores/lobby.store"; -import { useWebApp } from "@vkruglikov/react-telegram-web-app"; +import { User } from "@/shared/types/user.interface"; -export const Users = () => { - const { users, lobbyId } = useLobbyStore(); - - const { openTelegramLink } = useWebApp(); - const onShareClick = () => { - openTelegramLink(`https://t.me/share/url?url=https://t.me/${'dishdashdev_bot'}/app?startapp=${lobbyId}`); - } +export const Users = ({ users } : { users: User[] }) => { return ( -
+
{users.slice(0, 3).map((user, index) => { return ( { translate: '0 -50%', position: 'absolute', }} - src={`https://t.me/i/userpic/320/${user.name}.jpg`} + src={user.avatar} /> ); })} - {users.length > 3 &&
+{users.length - 3}
} + {users.length > 3 &&
+{users.length - 3}
}
) } diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index 846a469..d4a94c6 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -1,45 +1,20 @@ -import { postLobby } from "@/shared/api/lobby.api"; import { useWebApp } from "@vkruglikov/react-telegram-web-app"; -import { useEffect, useState } from "react"; +import { useEffect } from "react"; import 'leaflet/dist/leaflet.css'; -import { MapContainer, TileLayer, useMap, useMapEvents } from 'react-leaflet'; -import { useNavigate } from "react-router-dom"; -import { Avatar } from "@/components/ui/avatar"; import { motion } from "framer-motion"; import { useAuth } from "@/shared/hooks/useAuth"; -import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { LobbyCard } from "@/modules/home/lobby.card"; +import { MapButton } from "@/modules/home/map.button"; export const HomePage = () => { - const [position, setPosition] = useState({ lat: 59.9311, lon: 30.3609 }); const webApp = useWebApp(); - const { MainButton, enableVerticalSwipes, disableVerticalSwipes } = webApp; - const navigate = useNavigate(); + const { enableVerticalSwipes, disableVerticalSwipes } = webApp; const { user } = useAuth(); const { recentLobbies } = useAuth(); - const { resetStore } = useLobbyStore(); - const [showMap, setShowMap] = useState(false); - - const handleClick = async () => { - if (!showMap) { - setShowMap(true); - } else { - const lobby = await postLobby(position); - navigate(`/${lobby?.id}`); - resetStore(); - } - }; - - useEffect(() => { - MainButton.onClick(handleClick); - - return () => { - MainButton.offClick(handleClick); - } - }, [handleClick]) useEffect(() => { disableVerticalSwipes(); @@ -49,68 +24,27 @@ export const HomePage = () => { }; }, []); - const MapEvents = () => { - const map = useMap(); - - useMapEvents({ - moveend(e) { - const newCenter = e.target.getCenter(); - setPosition(() => ({ lat: newCenter.lat, lon: newCenter.lng })); - } - }); - - useEffect(() => { - map.invalidateSize(); - }, [showMap, map]); - - return null; - }; return ( -
- {recentLobbies.slice(0, 3).map((id, index) => { - return ( -
{ - navigate(`/${id}`) - resetStore(); - }} className="pointer-events-auto w-[90%] h-16 bg-secondary rounded-xl" key={`${id}_${index}`}> - {id} -
- ) - })} -
- - - - - - - {/* Marker icon centered over the map */} -
- -
-
-
- {showMap ? "Создать Лобби" : "Начать"} +
+
+
+ +

Привет,
{user?.name}!

+ +

Последние лобби

+ {recentLobbies.slice(0, 2).map((id, index) => )} +
+
); diff --git a/src/pages/lobby-preview.page.tsx b/src/pages/lobby-preview.page.tsx index c75eb31..85e2c47 100644 --- a/src/pages/lobby-preview.page.tsx +++ b/src/pages/lobby-preview.page.tsx @@ -3,15 +3,24 @@ import { useLobbyStore } from '@/shared/stores/lobby.store'; import { motion, AnimatePresence, cubicBezier } from 'framer-motion'; import { useWebApp } from '@vkruglikov/react-telegram-web-app'; import { Avatar } from '@/components/ui/avatar'; -import { useEffect } from 'react'; +import { useEffect, useState } from 'react'; import { swipesEvent } from '@/shared/events/app-events/swipes.event'; +import { Toaster } from 'react-hot-toast'; +import { AddPersonIcon } from '@/assets/icons/add-person.icon'; +import { BOT_USERNAME } from '@/shared/constants'; export const LobbyPreviewPage = () => { - const { settings, users, setState, tags } = useLobbyStore(); + const { settings, users, setState, tags, lobbyId } = useLobbyStore(); + const [buttonState, setButtonState] = useState<'single' | 'double'>('single'); + const { openTelegramLink } = useWebApp(); const webApp = useWebApp(); + const onShareClick = () => { + openTelegramLink(`https://t.me/share/url?url=https://t.me/${BOT_USERNAME}/app?startapp=${lobbyId}`); + } + const pageVariants = { initial: { opacity: 0 }, animate: { @@ -34,7 +43,7 @@ export const LobbyPreviewPage = () => { } useEffect(() => { - if (settings.tags.length == 0) { + if (buttonState === 'single') { webApp.MainButton.setText('Настроить'); webApp.MainButton.show(); webApp.MainButton.enable(); @@ -52,7 +61,7 @@ export const LobbyPreviewPage = () => { } return () => { - if (settings.tags.length == 0) { + if (buttonState === 'single') { webApp.MainButton.hide(); webApp.MainButton.offClick(setSettings); } else { @@ -63,10 +72,23 @@ export const LobbyPreviewPage = () => { webApp.SecondaryButton.offClick(setSettings); } }; - }, [webApp]); + }, [webApp, buttonState]); + + useEffect(() => { + if (settings.tags.length == 0) { + setButtonState('single'); + } else { + setButtonState('double'); + } + }, [settings.tags]) return ( + {
{users.map(x => - () + () )} +
+ +
diff --git a/src/pages/lobby-settings.page.tsx b/src/pages/lobby-settings.page.tsx index d0f5cf3..2ba3d44 100644 --- a/src/pages/lobby-settings.page.tsx +++ b/src/pages/lobby-settings.page.tsx @@ -9,9 +9,10 @@ import { settingsUpdateEvent } from '@/shared/events/app-events/settings.event'; import { Tags } from '@/modules/settings/tags'; import { Users } from '@/modules/settings/users'; +import { Toaster } from 'react-hot-toast'; export const LobbySettingsPage = () => { - const { settings, setState } = useLobbyStore(); + const { settings, setState, users } = useLobbyStore(); const { priceMin, priceMax, maxDistance } = settings; const webApp = useWebApp(); @@ -60,6 +61,11 @@ export const LobbySettingsPage = () => { return ( + {

Настройки

- +
diff --git a/src/shared/api/auth.api.ts b/src/shared/api/auth.api.ts index c734ac4..7739dc3 100644 --- a/src/shared/api/auth.api.ts +++ b/src/shared/api/auth.api.ts @@ -3,38 +3,38 @@ import { User } from '@/shared/types/user.interface'; import axios from 'axios'; export const createUser = async ( - user: Omit, + user: Omit, ): Promise => { - try { - const res = await axios.post(`${API_URL}/api/v1/users`, user); - return res.data; - } catch (err) { - console.error(err); - return null; - } + try { + const res = await axios.post(`${API_URL}/api/v1/users`, user); + return res.data; + } catch (err) { + console.error(err); + return null; + } }; export const getUser = async (id: string): Promise => { - try { - const res = await axios.get(`${API_URL}/api/v1/users/${id}`); - return res.data; - } catch (err) { - console.error(err); - return null; - } + try { + const res = await axios.get(`${API_URL}/api/v1/users/${id}`); + return res.data; + } catch (err) { + console.error(err); + return null; + } }; export const updateUser = async (user: User): Promise => { - try { - const res = await axios.put(`${API_URL}/api/v1/users`, user, { - headers: { - 'Content-Type': 'application/json', - accept: 'application/json', - }, - }); - return res.data; - } catch (err) { - console.error(err); - return null; - } + try { + const res = await axios.put(`${API_URL}/api/v1/users`, user, { + headers: { + 'Content-Type': 'application/json', + accept: 'application/json', + }, + }); + return res.data; + } catch (err) { + console.error(err); + return null; + } }; diff --git a/src/shared/api/lobby.api.ts b/src/shared/api/lobby.api.ts index 49d5a9c..3942dae 100644 --- a/src/shared/api/lobby.api.ts +++ b/src/shared/api/lobby.api.ts @@ -1,10 +1,15 @@ import axios from 'axios'; import { API_URL } from '../constants'; import { Location } from '../types/location.interface'; +import { User } from '../types/user.interface'; +import { Tag } from '../types/tag.interface'; -interface Lobby { +export interface Lobby { id: string; location: Location; + users: User[]; + createdAt: string; + tags: Tag[]; } export const fetchLobby = async (id: string): Promise => { diff --git a/src/shared/constants.ts b/src/shared/constants.ts index 1aa05e4..7c72830 100644 --- a/src/shared/constants.ts +++ b/src/shared/constants.ts @@ -1 +1,2 @@ export const API_URL = import.meta.env.VITE_API_URL; +export const BOT_USERNAME = import.meta.env.VITE_BOT_USERNAME; diff --git a/src/shared/hooks/useTheme.ts b/src/shared/hooks/useTheme.ts index f5c174f..c41529c 100644 --- a/src/shared/hooks/useTheme.ts +++ b/src/shared/hooks/useTheme.ts @@ -3,33 +3,38 @@ import { ThemeParams } from '@vkruglikov/react-telegram-web-app'; import { useEffect } from 'react'; interface Props extends ThemeParams { - section_bg_color?: string; - bottom_bar_bg_color?: string; + section_bg_color?: string; + bottom_bar_bg_color?: string; + accent_text_color?: string; } const useTheme = (themeParameters: Props, darkMode: boolean) => { - useEffect(() => { - if (themeParameters) { - document.documentElement.style.setProperty( - '--background', - themeParameters.bg_color ?? '', - ); - document.documentElement.style.setProperty( - '--secondary', - themeParameters.bottom_bar_bg_color ?? - lightnessHex(themeParameters.bg_color ?? '', darkMode ? 10 : -10) ?? - '', - ); - document.documentElement.style.setProperty( - '--foreground', - themeParameters.text_color ?? '', - ); - document.documentElement.style.setProperty( - '--primary', - themeParameters.button_color ?? '', - ); - } - }, [themeParameters]); + useEffect(() => { + if (themeParameters) { + document.documentElement.style.setProperty( + '--background', + themeParameters.bg_color ?? '', + ); + document.documentElement.style.setProperty( + '--secondary', + themeParameters.bottom_bar_bg_color ?? + lightnessHex(themeParameters.bg_color ?? '', darkMode ? 10 : -10) ?? + '', + ); + document.documentElement.style.setProperty( + '--foreground', + themeParameters.text_color ?? '', + ); + document.documentElement.style.setProperty( + '--accent-foreground', + themeParameters.button_text_color ?? '', + ); + document.documentElement.style.setProperty( + '--primary', + themeParameters.button_color ?? '', + ); + } + }, [themeParameters]); }; export default useTheme; diff --git a/src/shared/instance/axios.instance.ts b/src/shared/instance/axios.instance.ts new file mode 100644 index 0000000..b2723d0 --- /dev/null +++ b/src/shared/instance/axios.instance.ts @@ -0,0 +1,7 @@ +import axios from 'axios'; +import { setupCache } from 'axios-cache-interceptor'; + +const instance = axios.create(); + +export const axiosCachingInstance = setupCache(instance); + diff --git a/src/shared/providers/auth.provider.tsx b/src/shared/providers/auth.provider.tsx index fbcd96d..9ce4762 100644 --- a/src/shared/providers/auth.provider.tsx +++ b/src/shared/providers/auth.provider.tsx @@ -6,51 +6,64 @@ import React, { } from 'react'; import { useCloudStorage, useInitData } from '@vkruglikov/react-telegram-web-app'; import { User } from '@/shared/types/user.interface'; -import { createUser } from '../api/auth.api'; +import { createUser, getUser } from '../api/auth.api'; export interface AuthState { user: User | null; recentLobbies: string[]; +} + +export interface AuthActions { logoutUser: () => Promise; addRecentLobby: (id: string) => Promise; } -export const AuthContext = createContext(undefined); +export const AuthContext = createContext(undefined); type AuthProviderProps = { children: ReactNode; }; +const initialState = { + user: null, + recentLobbies: [] +} + export const AuthProvider: React.FC = ({ children }) => { const { getItem, setItem } = useCloudStorage(); const [initDataUnsafe] = useInitData(); const [ready, setReady] = useState(false); - const [store, setStore] = useState({ - user: null, - recentLobbies: [], - addRecentLobby: async (id: string) => { - setStore((prevState) => ({ ...prevState, recentLobbies: [id, ...prevState.recentLobbies] })); - }, - logoutUser: async () => { - const newState = { ...store, user: null }; - setStore(newState); - }, - }); + const [store, setStore] = useState(initialState); + + const addRecentLobby = async (id: string) => { + setStore((prevState) => ({ ...prevState, recentLobbies: [id, ...prevState.recentLobbies] })); + } + const updateUser = async (user: Omit) => { const newUser = await createUser(user); if (newUser === null) { console.error('A problem ocurred when generating a user.'); + return } setStore((prevState) => ({ ...prevState, user: newUser ?? null })); } + const logoutUser = async () => { + setItem('auth', ''); + }; + useEffect(() => { - getItem('auth').then((storedData) => { + getItem('auth').then(async (storedData) => { let storedState = storedData ? JSON.parse(storedData) : null; - setStore((prevState) => ({ ...prevState, ...storedState })); + if (storedState !== null && storedState.user !== null) { + let user = await getUser(storedState.user.id); + if (user !== null) { + setStore((prevState) => ({ ...prevState, ...storedState })); + } + } setReady(true); }); }, []) @@ -58,7 +71,7 @@ export const AuthProvider: React.FC = ({ children }) => { useEffect(() => { if (ready && (store.user === null || store.user.avatar === '') && initDataUnsafe?.user !== undefined) { updateUser({ - name: initDataUnsafe.user.username ?? initDataUnsafe.user.first_name, + name: initDataUnsafe.user.first_name ?? initDataUnsafe.user.username, avatar: `https://t.me/i/userpic/320/${initDataUnsafe?.user.username}.jpg`, telegram: initDataUnsafe.user.id, }) @@ -79,6 +92,6 @@ export const AuthProvider: React.FC = ({ children }) => { }, [store]); return ( - {children} + {children} ); }; diff --git a/yarn.lock b/yarn.lock index 870f303..fde3ca9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2024,6 +2024,15 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" +axios-cache-interceptor@^1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios-cache-interceptor/-/axios-cache-interceptor-1.6.2.tgz#0aca85d14ee8fae8d48491f16f6e1bdc87a4056b" + integrity sha512-YLbAODIHZZIcD4b3WYFVQOa5W2TY/WnJ6sBHqAg6Z+hx+RVj8/OcjQyRopO6awn7/kOkGL5X9TP16AucnlJ/lw== + dependencies: + cache-parser "1.2.5" + fast-defer "1.1.8" + object-code "1.3.3" + axios@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" @@ -2221,6 +2230,11 @@ buildcheck@~0.0.6: resolved "https://registry.yarnpkg.com/buildcheck/-/buildcheck-0.0.6.tgz#89aa6e417cfd1e2196e3f8fe915eb709d2fe4238" integrity sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A== +cache-parser@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/cache-parser/-/cache-parser-1.2.5.tgz#f19102a788b03055389730eb0493e463e1b379ac" + integrity sha512-Md/4VhAHByQ9frQ15WD6LrMNiVw9AEl/J7vWIXw+sxT6fSOpbtt6LHTp76vy8+bOESPBO94117Hm2bIjlI7XjA== + call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" @@ -3143,6 +3157,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-defer@1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/fast-defer/-/fast-defer-1.1.8.tgz#940ef9597b2ea51c4cd08e99d0f2a8978fa49ba2" + integrity sha512-lEJeOH5VL5R09j6AA0D4Uvq7AgsHw0dAImQQ+F3iSyHZuAxyQfWobsagGpTcOPvJr3urmKRHrs+Gs9hV+/Qm/Q== + fast-diff@^1.1.2: version "1.3.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" @@ -4726,6 +4745,11 @@ object-assign@^4.0.1, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== +object-code@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/object-code/-/object-code-1.3.3.tgz#cf21843ddfecce3ec73fd141f66a7f16ba0cb93e" + integrity sha512-/Ds4Xd5xzrtUOJ+xJQ57iAy0BZsZltOHssnDgcZ8DOhgh41q1YJCnTPnWdWSLkNGNnxYzhYChjc5dgC9mEERCA== + object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" From 306fc87d8e4f13cf85b86c3c9d5d2a69dbc3fffb Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 11 Nov 2024 20:03:21 +0300 Subject: [PATCH 48/79] updated env variables in gh actions --- .github/workflows/cd-dev.yaml | 1 + .github/workflows/cd-production.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/cd-dev.yaml b/.github/workflows/cd-dev.yaml index 7d8d5ee..3835c7d 100644 --- a/.github/workflows/cd-dev.yaml +++ b/.github/workflows/cd-dev.yaml @@ -38,6 +38,7 @@ jobs: - name: Create .env file with secrets run: | echo "VITE_API_URL=${{ secrets.VITE_API_URL_DEV }}" > .env + echo "VITE_BOT_USERNAME=${{ secrets.VITE_BOT_USERNAME_DEV }}" >> .env - name: Build and push Docker image id: push diff --git a/.github/workflows/cd-production.yaml b/.github/workflows/cd-production.yaml index 6bb3ee5..09cb259 100644 --- a/.github/workflows/cd-production.yaml +++ b/.github/workflows/cd-production.yaml @@ -35,6 +35,7 @@ jobs: - name: Create .env file with secrets run: | echo "VITE_API_URL=${{ secrets.VITE_API_URL_PRODUCTION }}" >> .env + echo "VITE_BOT_USERNAME=${{ secrets.VITE_BOT_USERNAME }}" >> .env - name: Build and push Docker image id: push From 788a1ae226efd3e643757271e8950e7f2d5320b3 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 11 Nov 2024 20:07:21 +0300 Subject: [PATCH 49/79] fix(lint): Fixed uncaught lint errors --- src/assets/icons/add-person.icon.tsx | 2 +- src/components/ui/game.tsx | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/assets/icons/add-person.icon.tsx b/src/assets/icons/add-person.icon.tsx index 1eaf8dc..1f5b506 100644 --- a/src/assets/icons/add-person.icon.tsx +++ b/src/assets/icons/add-person.icon.tsx @@ -3,7 +3,7 @@ export const AddPersonIcon = ({ className }: { className?: string }) => { return (
- +
) diff --git a/src/components/ui/game.tsx b/src/components/ui/game.tsx index 2d35db6..3bc4727 100644 --- a/src/components/ui/game.tsx +++ b/src/components/ui/game.tsx @@ -2,7 +2,6 @@ import { motion, AnimatePresence, cubicBezier } from 'framer-motion'; import Loader from '@/components/ui/loader'; import { useLoadingStore } from '@/shared/stores/loading.store'; import { Outlet } from 'react-router-dom'; -import { Toaster } from 'react-hot-toast'; const gameScreenVariants = { initial: { From dd7f5d3a68c11d51b57268e4a85191141d27b24e Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 11 Nov 2024 22:26:58 +0300 Subject: [PATCH 50/79] Added fallbacks for profile images --- src/components/ui/avatar.tsx | 43 +++++++++++++++++++++++++++----- src/modules/home/map.button.tsx | 2 +- src/modules/settings/users.tsx | 4 ++- src/pages/home.page.tsx | 10 +++++++- src/pages/lobby-preview.page.tsx | 10 ++++++-- 5 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx index 6eba6b6..58a06c9 100644 --- a/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -1,13 +1,44 @@ import { motion } from "framer-motion"; -import { CSSProperties } from "react"; +import { CSSProperties, ReactElement, useRef, useState } from "react"; interface AvatarProps { src: string; + fallback: string; + fallbackElement?: ReactElement; style: CSSProperties; } -export const Avatar = ({ src, style }: AvatarProps) => { - return - - -} +export const Avatar = ({ src, fallback, style, fallbackElement }: AvatarProps) => { + const [imageError, setImageError] = useState(false); + const imgRef = useRef(null) + + const handleImgValidity = () => { + if (imgRef.current && imgRef.current.naturalHeight < 10) { + // setImageError(true); + } else { + setImageError(false); + } + } + + return ( + + {!imageError ? ( + setImageError(true)} + /> + ) : ( + fallbackElement !== undefined ? fallbackElement : {fallback} + )} + + ); +}; + diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index 792e8fd..def782e 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -96,7 +96,7 @@ export const MapButton = () => { zIndex: 1000 }} > - +
diff --git a/src/modules/settings/users.tsx b/src/modules/settings/users.tsx index 0ab03b3..7434013 100644 --- a/src/modules/settings/users.tsx +++ b/src/modules/settings/users.tsx @@ -1,7 +1,7 @@ import { Avatar } from "@/components/ui/avatar"; import { User } from "@/shared/types/user.interface"; -export const Users = ({ users } : { users: User[] }) => { +export const Users = ({ users }: { users: User[] }) => { return (
@@ -16,6 +16,8 @@ export const Users = ({ users } : { users: User[] }) => { position: 'absolute', }} src={user.avatar} + fallback={"?"} + fallbackElement={{user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()}} /> ); })} diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index d4a94c6..4098e2d 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -6,6 +6,7 @@ import { motion } from "framer-motion"; import { useAuth } from "@/shared/hooks/useAuth"; import { LobbyCard } from "@/modules/home/lobby.card"; import { MapButton } from "@/modules/home/map.button"; +import { Avatar } from "@/components/ui/avatar"; export const HomePage = () => { @@ -29,7 +30,14 @@ export const HomePage = () => {
- + {user && + {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()}} + /> + }

Привет,
{user?.name}!

{

Дождитесь всех и начинайте свайпать!

- {users.map(x => - () + {users.map(user => + ({user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()}} + />) )}
From 2e66eccf73b42cec004007942a09aa0a891d5437 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 11 Nov 2024 22:53:03 +0300 Subject: [PATCH 51/79] hotfix for fallback on map --- src/modules/home/map.button.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index def782e..e9c862e 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -96,7 +96,14 @@ export const MapButton = () => { zIndex: 1000 }} > - + {user && + {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()}} + /> + }
From 418f57b0c04bc3e9aa745fc356b6d046900504cf Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 11 Nov 2024 23:25:05 +0300 Subject: [PATCH 52/79] added a hotfix of the main page --- src/modules/home/map.button.tsx | 11 +++++- src/pages/home.page.tsx | 69 +++++++++++++++++++++------------ 2 files changed, 55 insertions(+), 25 deletions(-) diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index e9c862e..b87126c 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -7,7 +7,11 @@ import { useEffect, useState } from "react"; import { MapContainer, TileLayer, useMap, useMapEvents } from "react-leaflet"; import { useNavigate } from "react-router-dom"; -export const MapButton = () => { +interface MapButtonProps { + onMapOpenUpdate?: (open: boolean) => void; +} + +export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { const [position, setPosition] = useState({ lat: 59.95725, lon: 30.30826 }); const [showMap, setShowMap] = useState(false); const navigate = useNavigate(); @@ -17,6 +21,11 @@ export const MapButton = () => { const { resetStore } = useLobbyStore(); const { user } = useAuth(); + useEffect(() => { + if (onMapOpenUpdate) + onMapOpenUpdate(showMap); + }, [showMap]) + const handleClick = async () => { if (!showMap) { setShowMap(true); diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index 4098e2d..76e3f7c 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -1,7 +1,7 @@ import { useWebApp } from "@vkruglikov/react-telegram-web-app"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import 'leaflet/dist/leaflet.css'; -import { motion } from "framer-motion"; +import { AnimatePresence, motion } from "framer-motion"; import { useAuth } from "@/shared/hooks/useAuth"; import { LobbyCard } from "@/modules/home/lobby.card"; @@ -12,10 +12,9 @@ import { Avatar } from "@/components/ui/avatar"; export const HomePage = () => { const webApp = useWebApp(); const { enableVerticalSwipes, disableVerticalSwipes } = webApp; - const { user } = useAuth(); - - const { recentLobbies } = useAuth(); + const { user, recentLobbies, logoutUser } = useAuth(); + const [open, setOpen] = useState(false); useEffect(() => { disableVerticalSwipes(); @@ -27,32 +26,54 @@ export const HomePage = () => { return ( -
-
-
- {user && - {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()}} - /> - } -

Привет,
{user?.name}!

-
+
+ + {!open && ( + logoutUser()} + > + {user && ( + + {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()} + + } + /> + )} +

Привет,
{user?.name}!

+
+ )} +
+

Последние лобби

- {recentLobbies.slice(0, 2).map((id, index) => )} + {recentLobbies.length > 0 ? + recentLobbies.slice(0, 2).map((id, index) => ( + ) + ) : ( +

+ Здесь будет храниться история ваших последних лобби +

+ ) + }
- + setOpen(open)} />
); From d22d1ae0e2c2e9900fdcccf150936b43fb7fa3ab Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 14 Nov 2024 19:29:40 +0300 Subject: [PATCH 53/79] fix(wide-avatars): Fixed wide avatars (#61) * fixed wide avatars * slight fixes --- src/components/ui/avatar.tsx | 2 +- src/pages/game.page.tsx | 1 - src/pages/home.page.tsx | 12 ++++++++---- src/pages/lobby-preview.page.tsx | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx index 58a06c9..c9b53b0 100644 --- a/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -25,7 +25,7 @@ export const Avatar = ({ src, fallback, style, fallbackElement }: AvatarProps) = initial={{ opacity: 0 }} animate={{ opacity: 1 }} style={style} - className="max-h-[30px] w-full aspect-square bg-background rounded-full border-[3px] border-secondary overflow-hidden flex items-center justify-center" + className="max-h-[30px] max-w-[30px] w-full aspect-square bg-background rounded-full border-[3px] border-secondary overflow-hidden flex items-center justify-center" > {!imageError ? ( { const { setTags } = useLobbyStore(); useRoutes(); - useEffect(() => { fetchTags().then((tags) => { if (tags != undefined) setTags(tags); diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index cf77591..e29aa4f 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -1,4 +1,4 @@ -import { useWebApp } from "@vkruglikov/react-telegram-web-app"; +import { useExpand, useWebApp } from "@vkruglikov/react-telegram-web-app"; import { useEffect, useState } from "react"; import 'leaflet/dist/leaflet.css'; import { AnimatePresence, motion } from "framer-motion"; @@ -13,6 +13,7 @@ export const HomePage = () => { const webApp = useWebApp(); const { enableVerticalSwipes, disableVerticalSwipes } = webApp; const { user, recentLobbies, logoutUser } = useAuth(); + const [isExpanded, expand] = useExpand(); const [open, setOpen] = useState(false); @@ -22,7 +23,7 @@ export const HomePage = () => { return () => { enableVerticalSwipes(); }; - }, []); + }, [isExpanded]); return (
@@ -33,13 +34,16 @@ export const HomePage = () => { animate={{ opacity: 1, height: 'auto' }} exit={{ opacity: 0, height: '0px' }} className="pb-auto space-y-5" - onClick={() => logoutUser()} + onClick={() => { + logoutUser(); + expand(); + }} > {user && ( {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()} diff --git a/src/pages/lobby-preview.page.tsx b/src/pages/lobby-preview.page.tsx index af0e5e7..6d48a18 100644 --- a/src/pages/lobby-preview.page.tsx +++ b/src/pages/lobby-preview.page.tsx @@ -108,7 +108,7 @@ export const LobbyPreviewPage = () => { ({user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()}} />) From c854b133766296b4680c557e3483a39f2febe6f7 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 14 Nov 2024 19:32:47 +0300 Subject: [PATCH 54/79] fixed inline launch (#62) --- package.json | 2 +- src/pages/home.page.tsx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ce58dbe..7ab724f 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "react-hot-toast": "^2.4.1", "react-leaflet": "^4.2.1", "react-router-dom": "^6.23.1", - "shamps-tunnel": "^1.0.0", + "shamps-tunnel": "1.0.0", "socket.io": "1.4.5", "socket.io-client": "2.x", "tailwind-merge": "^2.3.0", diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index e29aa4f..da6e8b5 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -18,6 +18,7 @@ export const HomePage = () => { const [open, setOpen] = useState(false); useEffect(() => { + if (!isExpanded) expand(); disableVerticalSwipes(); return () => { From 3e55c57fef012c6f936dfd0f6f3d7bfbac0b8020 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 14 Nov 2024 20:04:06 +0300 Subject: [PATCH 55/79] Added error page (#63) --- src/assets/icons/sad-face.png | Bin 0 -> 58787 bytes src/pages/error.page.tsx | 21 ++++++++++++++++++++ src/shared/events/app-events/error.event.ts | 14 +++++++++++++ src/shared/routes/routes.tsx | 6 +++++- src/shared/stores/lobby.store.ts | 2 +- 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/assets/icons/sad-face.png create mode 100644 src/pages/error.page.tsx create mode 100644 src/shared/events/app-events/error.event.ts diff --git a/src/assets/icons/sad-face.png b/src/assets/icons/sad-face.png new file mode 100644 index 0000000000000000000000000000000000000000..e21d5e4434db1a352b094b68668a37f004837d25 GIT binary patch literal 58787 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 literal 0 HcmV?d00001 diff --git a/src/pages/error.page.tsx b/src/pages/error.page.tsx new file mode 100644 index 0000000..ecb64a6 --- /dev/null +++ b/src/pages/error.page.tsx @@ -0,0 +1,21 @@ + +import sadFace from '@/assets/icons/sad-face.png'; +import { MainButton } from '@vkruglikov/react-telegram-web-app'; +import { useNavigate } from 'react-router-dom'; + +export const ErrorPage = () => { + const navigate = useNavigate(); + + return ( +
+
+ +
+

Что-то пошло не так

+

Попробуйте перезайти или возвращайтесь позже

+ navigate('/')} text='На Главную' /> +
+ ) +} + + diff --git a/src/shared/events/app-events/error.event.ts b/src/shared/events/app-events/error.event.ts new file mode 100644 index 0000000..0ede62c --- /dev/null +++ b/src/shared/events/app-events/error.event.ts @@ -0,0 +1,14 @@ +import { getLobbyStoreMethods } from '@/shared/stores/lobby.store'; +import { Event } from '../event'; +import { getLoadingStoreMethods } from '@/shared/stores/loading.store'; + +class ErrorEvent extends Event { + handle() { + const { setState } = getLobbyStoreMethods(); + const { setIsLoading } = getLoadingStoreMethods(); + setIsLoading(false); + setState('error'); + } +} + +export const errorEvent = new ErrorEvent(); diff --git a/src/shared/routes/routes.tsx b/src/shared/routes/routes.tsx index abef462..22722cb 100644 --- a/src/shared/routes/routes.tsx +++ b/src/shared/routes/routes.tsx @@ -16,6 +16,8 @@ import GameCards from '@/modules/game/swipes'; import { useThemeParams } from '@vkruglikov/react-telegram-web-app'; import useTheme from '../hooks/useTheme'; import { HomePage } from '@/pages/home.page'; +import { errorEvent } from '../events/app-events/error.event'; +import { ErrorPage } from '@/pages/error.page'; import { LobbyPreviewPage } from '@/pages/lobby-preview.page'; import { LobbySettingsPage } from '@/pages/lobby-settings.page'; @@ -35,13 +37,15 @@ const AppRoutes = () => { subscribe('startSwipes', () => swipesEvent.handle()); subscribe('releaseMatch', () => releaseMatchEvent.handle()); subscribe('finish', (data) => finishEvent.handle(data)); + subscribe('error', () => errorEvent.handle()); }, [socket]); return ( - }/> + } /> }> } /> + } /> } /> } /> } /> diff --git a/src/shared/stores/lobby.store.ts b/src/shared/stores/lobby.store.ts index 909712e..85853cb 100644 --- a/src/shared/stores/lobby.store.ts +++ b/src/shared/stores/lobby.store.ts @@ -4,7 +4,7 @@ import { User } from '@/shared/types/user.interface'; import { Settings } from '@/shared/types/settings.interface'; import { Tag } from '@/shared/types/tag.interface'; -export type GameState = 'settings' | 'match' | 'swipes' | 'result' | 'preview'; +export type GameState = 'settings' | 'match' | 'swipes' | 'result' | 'error' | 'preview'; type LobbyActions = { setCards: (cards: Card[]) => void; From 2f384b25bb52340f54cbf9da4e8a94d37bb1be6d Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 14 Nov 2024 20:46:57 +0300 Subject: [PATCH 56/79] fixed lag on bidirectional swipe --- src/modules/game/card.tsx | 2 +- src/modules/game/swipable.card.tsx | 2 +- src/shared/instance/socket.instance.ts | 7 ++- src/shared/providers/socket.provider.tsx | 77 ++++++++++++------------ 4 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index 4d1b222..0b89f42 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -37,7 +37,7 @@ export const CardComponent = ({ data, deltaY }: Props) => { }, [expanded]); const handleDrag = (_: any, info: PanInfo) => { - if (Math.abs(info.delta.y) > Math.abs(info.delta.x)) { + if (Math.abs(info.delta.y) > Math.abs(info.delta.x) && Math.abs(info.offset.y) < 50) { if (info.delta.y < 0 && Math.abs(info.offset.x) < 20) { setExpanded(true); } else { diff --git a/src/modules/game/swipable.card.tsx b/src/modules/game/swipable.card.tsx index a3d6bee..f5f3e5a 100644 --- a/src/modules/game/swipable.card.tsx +++ b/src/modules/game/swipable.card.tsx @@ -48,7 +48,7 @@ const SwipableCard = ({ id, data }: Props) => { }; const onPan = (info: PanInfo) => { - if (Math.abs(info.delta.x) > Math.abs(info.delta.y)) x.set(info.offset.x); + if (Math.abs(info.delta.x) > Math.abs(info.delta.y) || Math.abs(info.offset.x) > 20) x.set(info.offset.x); } return ( diff --git a/src/shared/instance/socket.instance.ts b/src/shared/instance/socket.instance.ts index ac179cb..92d8a57 100644 --- a/src/shared/instance/socket.instance.ts +++ b/src/shared/instance/socket.instance.ts @@ -2,7 +2,8 @@ import io from 'socket.io-client'; import { API_URL } from '@/shared/constants'; export const socket = io(API_URL ?? '', { - transports: ['websocket'], - reconnectionAttempts: 5, - timeout: 20000, + autoConnect: false, + transports: ['websocket'], + reconnectionAttempts: 5, + timeout: 2000, }); diff --git a/src/shared/providers/socket.provider.tsx b/src/shared/providers/socket.provider.tsx index 6fb977e..abd1e3e 100644 --- a/src/shared/providers/socket.provider.tsx +++ b/src/shared/providers/socket.provider.tsx @@ -2,54 +2,55 @@ import React, { useEffect } from 'react'; import { socket } from '../instance/socket.instance'; interface ContextProps { - subscribe: (event: string, callback: (...args: any[]) => void) => () => void; - emit: (event: string, ...args: any[]) => void; - socket: typeof socket | null; + subscribe: (event: string, callback: (...args: any[]) => void) => () => void; + emit: (event: string, ...args: any[]) => void; + socket: typeof socket | null; } export const SocketContext = React.createContext({ - subscribe: () => () => {}, - emit: () => {}, - socket: null, + subscribe: () => () => { }, + emit: () => { }, + socket: null, }); interface SocketProviderProps { - children?: JSX.Element; + children?: JSX.Element; } export const SocketProvider = ({ children }: SocketProviderProps) => { - useEffect(() => { - console.info('socket connected'); - - return () => { - console.info('socket disconnected'); - socket.disconnect(); + useEffect(() => { + console.info('socket connected'); + socket.connect(); + + return () => { + console.info('socket disconnected'); + socket.disconnect(); + }; + }, []); + + const subscribe = (event: string, callback: (...args: any[]) => void) => { + socket.on(event, callback); + + // unsubscribe function + return () => { + socket.off(event, callback); + }; }; - }, []); - - const subscribe = (event: string, callback: (...args: any[]) => void) => { - socket.on(event, callback); - // unsubscribe function - return () => { - socket.off(event, callback); + const emit = (event: string, data: any) => { + console.log(event, data); + socket.emit(event, data); }; - }; - - const emit = (event: string, data: any) => { - console.log(event, data); - socket.emit(event, data); - }; - - return ( - - {children} - - ); + + return ( + + {children} + + ); }; From 9c225da3362def030fbfe23ece86955fbe077b4c Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 14 Nov 2024 20:49:55 +0300 Subject: [PATCH 57/79] fix(match-card): Fixed text color on match cards. --- src/modules/game/match.card.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/game/match.card.tsx b/src/modules/game/match.card.tsx index a60c2ce..0b4c743 100644 --- a/src/modules/game/match.card.tsx +++ b/src/modules/game/match.card.tsx @@ -62,7 +62,7 @@ const MatchCard = () => {
-

{card?.title}

+

{card?.title}

{ const url = `https://yandex.ru/maps/?rtext=${card?.location.lat}%2C${card?.location.lon}` From f1290cbb9c56ab890734368a82f6bac58e32a1c3 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 14 Nov 2024 20:53:26 +0300 Subject: [PATCH 58/79] fix(result-cards): Slight fix on times --- src/modules/game/result.card.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/game/result.card.tsx b/src/modules/game/result.card.tsx index 623d052..74c5132 100644 --- a/src/modules/game/result.card.tsx +++ b/src/modules/game/result.card.tsx @@ -26,7 +26,7 @@ export const ResultCard = (data: { card: Card }) => { ~ {data.card.priceAvg} ₽

- {getTime(settings.location, data.card.location)} +

{getTime(settings.location, data.card.location)}

From f17ee120d8cb8c0805a64efef52aae716db6a3df Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 15 Nov 2024 01:14:27 +0300 Subject: [PATCH 59/79] hotfix tags.api.ts --- src/shared/api/tags.api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/api/tags.api.ts b/src/shared/api/tags.api.ts index 18aaf64..f5ceb2c 100644 --- a/src/shared/api/tags.api.ts +++ b/src/shared/api/tags.api.ts @@ -4,7 +4,7 @@ import { API_URL } from '../constants'; export const fetchTags = async (): Promise => { try { - const response = await axios.get(`${API_URL}/api/v1/places/tags`); + const response = await axios.get(`${API_URL}/api/v1/places/tag`); return response.data; } catch (err) { console.error('Error fetching tags:', err); From 1caf3cf7cee02c4c7fefe943a28b96f8f906e00d Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 19 Nov 2024 00:31:41 +0300 Subject: [PATCH 60/79] feat(location): Added user location support. --- src/components/ui/avatar.tsx | 17 +---- src/modules/home/map.button.tsx | 91 +++++++++++++++++++------- src/shared/providers/auth.provider.tsx | 5 +- 3 files changed, 74 insertions(+), 39 deletions(-) diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx index c9b53b0..c5c4b9e 100644 --- a/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -1,5 +1,5 @@ import { motion } from "framer-motion"; -import { CSSProperties, ReactElement, useRef, useState } from "react"; +import { CSSProperties, ReactElement } from "react"; interface AvatarProps { src: string; @@ -9,16 +9,6 @@ interface AvatarProps { } export const Avatar = ({ src, fallback, style, fallbackElement }: AvatarProps) => { - const [imageError, setImageError] = useState(false); - const imgRef = useRef(null) - - const handleImgValidity = () => { - if (imgRef.current && imgRef.current.naturalHeight < 10) { - // setImageError(true); - } else { - setImageError(false); - } - } return ( - {!imageError ? ( + {src !== '' ? ( setImageError(true)} /> ) : ( fallbackElement !== undefined ? fallbackElement : {fallback} diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index b87126c..b4b392d 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -2,6 +2,7 @@ import { Avatar } from "@/components/ui/avatar"; import { postLobby } from "@/shared/api/lobby.api"; import { useAuth } from "@/shared/hooks/useAuth"; import { useLobbyStore } from "@/shared/stores/lobby.store"; +import { useWebApp } from "@vkruglikov/react-telegram-web-app"; import { PanInfo, motion } from "framer-motion"; import { useEffect, useState } from "react"; import { MapContainer, TileLayer, useMap, useMapEvents } from "react-leaflet"; @@ -12,9 +13,10 @@ interface MapButtonProps { } export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { - const [position, setPosition] = useState({ lat: 59.95725, lon: 30.30826 }); + const [position, setPosition] = useState<{ lat: number; lon: number } | null>(null); const [showMap, setShowMap] = useState(false); const navigate = useNavigate(); + const { LocationManager } = useWebApp(); const [animationComplete, setAnimationComplete] = useState(false); @@ -22,45 +24,82 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { const { user } = useAuth(); useEffect(() => { - if (onMapOpenUpdate) - onMapOpenUpdate(showMap); - }, [showMap]) + console.log(LocationManager); + LocationManager.init(); + }, []) + + useEffect(() => { + if (onMapOpenUpdate) onMapOpenUpdate(showMap); + }, [showMap]); const handleClick = async () => { if (!showMap) { - setShowMap(true); + if (LocationManager.isLocationAvailable && LocationManager.isInited) { + LocationManager.getLocation((location: { latitude: number; longitude: number }) => { + if (location) { + const { latitude, longitude } = location; + setPosition({ lat: latitude, lon: longitude }); + console.log("User location:", location); + setShowMap(true); + } else { + console.log("Location access not granted"); + } + }); + } else if (!LocationManager.isAccessGranted) { + LocationManager.openSettings(); + } } else { - const lobby = await postLobby(position); - navigate(`/${lobby?.id}`); - resetStore(); + if (position) { + const lobby = await postLobby(position); + navigate(`/${lobby?.id}`); + resetStore(); + } } }; const MapEvents = () => { - const map = useMap(); useMapEvents({ moveend(e) { const newCenter = e.target.getCenter(); - setPosition(() => ({ lat: newCenter.lat, lon: newCenter.lng })); - } + // Only update position if it has actually changed + setPosition((prevPosition) => { + if ( + prevPosition?.lat.toFixed(5) !== newCenter.lat.toFixed(5) || + prevPosition?.lon.toFixed(5) !== newCenter.lng.toFixed(5) + ) { + return { lat: newCenter.lat, lon: newCenter.lng }; + } + return prevPosition; + }); + }, }); useEffect(() => { + // Only update the map view if the position has changed + if (position) { + const mapCenter = map.getCenter(); + if ( + position.lat.toFixed(5) !== mapCenter.lat.toFixed(5) || + position.lon.toFixed(5) !== mapCenter.lng.toFixed(5) + ) { + map.setView([position.lat, position.lon], 15); + } + } map.invalidateSize(); - }, [animationComplete]); + }, [animationComplete, position]); return null; }; + const onDragAction = (_: any, info: PanInfo) => { if (info.delta.y < 20) setShowMap(false); - } + }; return (
- {showMap && ( { @@ -102,23 +141,31 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { top: '50%', left: '50%', transform: 'translate(-50%, -50%)', - zIndex: 1000 + zIndex: 1000, }} > - {user && + {user && ( {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()}} + fallbackElement={ + + {user?.name.split(' ').slice(0, 2).map((x) => x.charAt(0)).join('').toUpperCase()} + + } /> - } + )} -
+
{showMap ? "Создать Лобби" : "Начать"}
- ) -} + ); +}; + diff --git a/src/shared/providers/auth.provider.tsx b/src/shared/providers/auth.provider.tsx index 9ce4762..f168a4a 100644 --- a/src/shared/providers/auth.provider.tsx +++ b/src/shared/providers/auth.provider.tsx @@ -4,7 +4,7 @@ import React, { useEffect, useState, } from 'react'; -import { useCloudStorage, useInitData } from '@vkruglikov/react-telegram-web-app'; +import { useCloudStorage, useInitData, useWebApp } from '@vkruglikov/react-telegram-web-app'; import { User } from '@/shared/types/user.interface'; import { createUser, getUser } from '../api/auth.api'; @@ -72,7 +72,8 @@ export const AuthProvider: React.FC = ({ children }) => { if (ready && (store.user === null || store.user.avatar === '') && initDataUnsafe?.user !== undefined) { updateUser({ name: initDataUnsafe.user.first_name ?? initDataUnsafe.user.username, - avatar: `https://t.me/i/userpic/320/${initDataUnsafe?.user.username}.jpg`, + // @ts-expect-error photo_url is actually string or undefined + avatar: (initDataUnsafe.user?.photo_url) ?? '', telegram: initDataUnsafe.user.id, }) } From 898ad2511b6a9996ea48094efa05f27ac2e8c6d9 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 19 Nov 2024 00:32:05 +0300 Subject: [PATCH 61/79] fix(match-spelling): Fixed match spelling --- src/modules/game/match.card.tsx | 2 +- src/pages/result.page.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/game/match.card.tsx b/src/modules/game/match.card.tsx index 0b4c743..a4044f5 100644 --- a/src/modules/game/match.card.tsx +++ b/src/modules/game/match.card.tsx @@ -43,7 +43,7 @@ const MatchCard = () => { className="flex h-screen flex-col justify-center items-center overflow-hidden ${ isDragging" > -
Это метч!
+
Это мэтч!
{
-

Ваши метчи

+

Ваши мэчи

{result?.matches.map((x) => )}
From af00139c479c8d0e2b471fa6b90a59d88bc041e7 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 19 Nov 2024 00:37:24 +0300 Subject: [PATCH 62/79] fix(permissions): Fixed some permissions and lint --- src/modules/home/map.button.tsx | 4 ++-- src/shared/providers/auth.provider.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index b4b392d..8961afb 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -33,8 +33,8 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { }, [showMap]); const handleClick = async () => { - if (!showMap) { - if (LocationManager.isLocationAvailable && LocationManager.isInited) { + if (!showMap && LocationManager.isInited) { + if (LocationManager.isLocationAvailable && LocationManager.isAccessGranted) { LocationManager.getLocation((location: { latitude: number; longitude: number }) => { if (location) { const { latitude, longitude } = location; diff --git a/src/shared/providers/auth.provider.tsx b/src/shared/providers/auth.provider.tsx index f168a4a..aaf0c46 100644 --- a/src/shared/providers/auth.provider.tsx +++ b/src/shared/providers/auth.provider.tsx @@ -4,7 +4,7 @@ import React, { useEffect, useState, } from 'react'; -import { useCloudStorage, useInitData, useWebApp } from '@vkruglikov/react-telegram-web-app'; +import { useCloudStorage, useInitData } from '@vkruglikov/react-telegram-web-app'; import { User } from '@/shared/types/user.interface'; import { createUser, getUser } from '../api/auth.api'; From 9e3eb60e35bfe7defeeb369f9e4ae6ff7c0a7e29 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 19 Nov 2024 02:58:40 +0300 Subject: [PATCH 63/79] fixed routing between pages, added back buttons (#64) --- src/components/ui/loader.tsx | 26 --- src/modules/game/swipes.tsx | 160 +++++++++--------- src/modules/home/lobby.card.tsx | 5 +- src/modules/home/map.button.tsx | 56 ++++-- src/pages/lobby-preview.page.tsx | 12 ++ src/pages/lobby-settings.page.tsx | 8 +- src/pages/result.page.tsx | 22 ++- src/shared/api/lobby.api.ts | 2 + src/shared/events/app-events/finish.event.ts | 2 +- .../events/app-events/release-match.event.ts | 2 +- src/shared/events/app-events/swipes.event.ts | 2 +- src/shared/hooks/useRoutes.tsx | 1 + src/shared/routes/routes.tsx | 6 +- src/shared/stores/lobby.store.ts | 4 +- 14 files changed, 175 insertions(+), 133 deletions(-) diff --git a/src/components/ui/loader.tsx b/src/components/ui/loader.tsx index fedbbef..58ce64d 100644 --- a/src/components/ui/loader.tsx +++ b/src/components/ui/loader.tsx @@ -1,33 +1,7 @@ -import { motion } from 'framer-motion'; const Loader = () => { return (
- - -
); }; diff --git a/src/modules/game/swipes.tsx b/src/modules/game/swipes.tsx index e7d33d6..38f277a 100644 --- a/src/modules/game/swipes.tsx +++ b/src/modules/game/swipes.tsx @@ -10,87 +10,95 @@ import { useEffect } from 'react'; export type SwipeType = 'like' | 'dislike'; const GameCards = () => { - const { cards } = useLobbyStore(); + const { cards } = useLobbyStore(); - const { disableVerticalSwipes, enableVerticalSwipes } = useWebApp(); - useEffect(() => { - disableVerticalSwipes(); + const { + disableVerticalSwipes, + enableVerticalSwipes, + enableClosingConfirmation, + disableClosingConfirmation + } = useWebApp(); - return () => { - enableVerticalSwipes(); - }; - }, []); + useEffect(() => { + disableVerticalSwipes(); + enableClosingConfirmation(); + + return () => { + enableVerticalSwipes(); + disableClosingConfirmation(); + }; + }, []); - const cardVariants = { - current: { - opacity: 1, - y: 0, - scale: 1, - transition: { duration: 0.3, ease: easeOutExpo }, - }, - upcoming: { - opacity: 0.5, - y: 67, - scale: 0.9, - transition: { duration: 0.3, ease: easeOutExpo, delay: 0 }, - }, - remainings: { - opacity: 0, - y: 20, - scale: 0.9, - }, - exit: { - opacity: 0, - x: 300, - y: 40, - rotate: 20, - transition: { duration: 0.3, ease: easeOutExpo }, - }, - }; + const cardVariants = { + current: { + opacity: 1, + y: 0, + scale: 1, + transition: { duration: 0.3, ease: easeOutExpo }, + }, + upcoming: { + opacity: 0.5, + y: 67, + scale: 0.9, + transition: { duration: 0.3, ease: easeOutExpo, delay: 0 }, + }, + remainings: { + opacity: 0, + y: 20, + scale: 0.9, + }, + exit: { + opacity: 0, + x: 300, + y: 40, + rotate: 20, + transition: { duration: 0.3, ease: easeOutExpo }, + }, + }; - return ( -
-
-
- {cards && cards.length > 0 ? ( - - {cards.map((card, i) => { - const isLast = i === cards.length - 1; - const isUpcoming = i === cards.length - 2; - return ( - - - - ); - })} - - ) : ( - - )} + return ( +
+
+
+ {cards && cards.length > 0 ? ( + + {cards.map((card, i) => { + const isLast = i === cards.length - 1; + const isUpcoming = i === cards.length - 2; + return ( + + + + ); + })} + + ) : ( + + )} +
+
-
-
- ); + ); }; export default GameCards; diff --git a/src/modules/home/lobby.card.tsx b/src/modules/home/lobby.card.tsx index 4ee5f51..4fb95b9 100644 --- a/src/modules/home/lobby.card.tsx +++ b/src/modules/home/lobby.card.tsx @@ -11,7 +11,7 @@ interface LobbyCardProps { export const LobbyCard = ({ id }: LobbyCardProps) => { const navigate = useNavigate(); - const { resetStore } = useLobbyStore(); + const { resetStore, setState } = useLobbyStore(); const [lobby, setLobby] = useState(null); useEffect(() => { @@ -54,8 +54,9 @@ export const LobbyCard = ({ id }: LobbyCardProps) => { return (
{ - navigate(`/${id}`) resetStore(); + setState(lobby?.state ?? 'lobby'); + navigate(`/${id}`); }} className={`${lobby ? '' : 'animate-pulse'} cursor-pointer h-[90px] mx-auto p-3 px-4 flex pointer-events-auto w-full bg-secondary rounded-xl`} > {lobby && (<> diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index 8961afb..e21378f 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -2,7 +2,7 @@ import { Avatar } from "@/components/ui/avatar"; import { postLobby } from "@/shared/api/lobby.api"; import { useAuth } from "@/shared/hooks/useAuth"; import { useLobbyStore } from "@/shared/stores/lobby.store"; -import { useWebApp } from "@vkruglikov/react-telegram-web-app"; +import { useShowPopup, useWebApp } from "@vkruglikov/react-telegram-web-app"; import { PanInfo, motion } from "framer-motion"; import { useEffect, useState } from "react"; import { MapContainer, TileLayer, useMap, useMapEvents } from "react-leaflet"; @@ -15,6 +15,7 @@ interface MapButtonProps { export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { const [position, setPosition] = useState<{ lat: number; lon: number } | null>(null); const [showMap, setShowMap] = useState(false); + const showPopup = useShowPopup(); const navigate = useNavigate(); const { LocationManager } = useWebApp(); @@ -24,7 +25,6 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { const { user } = useAuth(); useEffect(() => { - console.log(LocationManager); LocationManager.init(); }, []) @@ -33,20 +33,44 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { }, [showMap]); const handleClick = async () => { - if (!showMap && LocationManager.isInited) { - if (LocationManager.isLocationAvailable && LocationManager.isAccessGranted) { - LocationManager.getLocation((location: { latitude: number; longitude: number }) => { - if (location) { - const { latitude, longitude } = location; - setPosition({ lat: latitude, lon: longitude }); - console.log("User location:", location); - setShowMap(true); - } else { - console.log("Location access not granted"); - } - }); - } else if (!LocationManager.isAccessGranted) { - LocationManager.openSettings(); + if (!showMap) { + if (LocationManager.isLocationAvailable) { + if (LocationManager.isAccessGranted) { + LocationManager.getLocation((location: { latitude: number; longitude: number }) => { + if (location) { + const { latitude, longitude } = location; + setPosition({ lat: latitude, lon: longitude }); + setShowMap(true); + } + }); + } else if (!LocationManager.isAccessGranted && !LocationManager.isAccessRequested) { + LocationManager.openSettings(); + } else if (!LocationManager.isAccessGranted && LocationManager.isAccessRequested) { + showPopup({ + title: "Настройки геолокации", + message: "Включите геолокацию, чтобы найти крутые места рядом с вами!", + buttons: [ + { + text: "Хорошо!", + id: "ok" + }, + { + text: "Не сейчас", + id: "not-now" + } + ] + }).then(id => { + if (id == "ok") { + LocationManager.openSettings(); + } else { + setPosition({ lat: 59.957504, lon: 30.308039 }); + setShowMap(true); + } + }) + } + } else { + setPosition({ lat: 59.957504, lon: 30.308039 }); + setShowMap(true); } } else { if (position) { diff --git a/src/pages/lobby-preview.page.tsx b/src/pages/lobby-preview.page.tsx index 6d48a18..64b335b 100644 --- a/src/pages/lobby-preview.page.tsx +++ b/src/pages/lobby-preview.page.tsx @@ -9,12 +9,15 @@ import { swipesEvent } from '@/shared/events/app-events/swipes.event'; import { Toaster } from 'react-hot-toast'; import { AddPersonIcon } from '@/assets/icons/add-person.icon'; import { BOT_USERNAME } from '@/shared/constants'; +import { useNavigate } from 'react-router-dom'; export const LobbyPreviewPage = () => { const { settings, users, setState, tags, lobbyId } = useLobbyStore(); const [buttonState, setButtonState] = useState<'single' | 'double'>('single'); const { openTelegramLink } = useWebApp(); + const navigate = useNavigate(); + const webApp = useWebApp(); const onShareClick = () => { @@ -37,12 +40,18 @@ export const LobbyPreviewPage = () => { setState('settings'); } + const setMainScreen = () => { + navigate('/'); + } const setStart = () => { swipesEvent.start(); } useEffect(() => { + webApp.BackButton.show(); + webApp.BackButton.onClick(setMainScreen); + if (buttonState === 'single') { webApp.MainButton.setText('Настроить'); webApp.MainButton.show(); @@ -61,6 +70,9 @@ export const LobbyPreviewPage = () => { } return () => { + webApp.BackButton.hide(); + webApp.BackButton.offClick(setMainScreen); + if (buttonState === 'single') { webApp.MainButton.hide(); webApp.MainButton.offClick(setSettings); diff --git a/src/pages/lobby-settings.page.tsx b/src/pages/lobby-settings.page.tsx index 2ba3d44..32e3b25 100644 --- a/src/pages/lobby-settings.page.tsx +++ b/src/pages/lobby-settings.page.tsx @@ -44,7 +44,7 @@ export const LobbySettingsPage = () => { }; const setPreview = () => { - setState('preview'); + setState('lobby'); } useEffect(() => { @@ -53,9 +53,15 @@ export const LobbySettingsPage = () => { webApp.MainButton.enable(); webApp.MainButton.onClick(setPreview); + webApp.BackButton.show(); + webApp.BackButton.onClick(setPreview); + return () => { webApp.MainButton.hide(); webApp.MainButton.offClick(setPreview); + + webApp.BackButton.hide(); + webApp.BackButton.offClick(setPreview); }; }, [webApp]); diff --git a/src/pages/result.page.tsx b/src/pages/result.page.tsx index 372af49..686da8c 100644 --- a/src/pages/result.page.tsx +++ b/src/pages/result.page.tsx @@ -1,12 +1,28 @@ import { ResultCard } from '@/modules/game/result.card'; import { useResultCardStore } from '@/shared/stores/result-card.store'; -import { MainButton } from '@vkruglikov/react-telegram-web-app'; +import { MainButton, useWebApp } from '@vkruglikov/react-telegram-web-app'; +import { useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; export const ResultPage = () => { const { result } = useResultCardStore(); + const webApp = useWebApp(); const navigate = useNavigate(); + const setMainScreen = () => { + navigate('/'); + } + + useEffect(() => { + webApp.BackButton.show(); + webApp.BackButton.onClick(setMainScreen); + + return () => { + webApp.BackButton.hide(); + webApp.BackButton.offClick(setMainScreen); + } + }, []) + return (
{
{result?.matches.map((x) => )}
- { - navigate('/'); - }} text={'На Главную'} /> +
); }; diff --git a/src/shared/api/lobby.api.ts b/src/shared/api/lobby.api.ts index 3942dae..a20c4fd 100644 --- a/src/shared/api/lobby.api.ts +++ b/src/shared/api/lobby.api.ts @@ -3,9 +3,11 @@ import { API_URL } from '../constants'; import { Location } from '../types/location.interface'; import { User } from '../types/user.interface'; import { Tag } from '../types/tag.interface'; +import { GameState } from '../stores/lobby.store'; export interface Lobby { id: string; + state: GameState; location: Location; users: User[]; createdAt: string; diff --git a/src/shared/events/app-events/finish.event.ts b/src/shared/events/app-events/finish.event.ts index 09d7d8d..20530ea 100644 --- a/src/shared/events/app-events/finish.event.ts +++ b/src/shared/events/app-events/finish.event.ts @@ -11,7 +11,7 @@ class FinishEvent extends Event { const { setState } = getLobbyStoreMethods(); setResult(data); - setState('result'); + setState('finished'); setIsLoading(false); } } diff --git a/src/shared/events/app-events/release-match.event.ts b/src/shared/events/app-events/release-match.event.ts index f07a609..7fda4b5 100644 --- a/src/shared/events/app-events/release-match.event.ts +++ b/src/shared/events/app-events/release-match.event.ts @@ -10,7 +10,7 @@ class ReleaseMatchEvent extends Event { id: null, card: null, }); - setState('swipes'); + setState('swiping'); } } diff --git a/src/shared/events/app-events/swipes.event.ts b/src/shared/events/app-events/swipes.event.ts index 28f6f1f..af535d4 100644 --- a/src/shared/events/app-events/swipes.event.ts +++ b/src/shared/events/app-events/swipes.event.ts @@ -7,7 +7,7 @@ import { SwipeType } from '@/modules/game/swipes'; class SwipesEvent extends Event { handle() { const { setState } = getLobbyStoreMethods(); - setState('swipes'); + setState('swiping'); } start() { diff --git a/src/shared/hooks/useRoutes.tsx b/src/shared/hooks/useRoutes.tsx index fc5ddc8..e4a5bf7 100644 --- a/src/shared/hooks/useRoutes.tsx +++ b/src/shared/hooks/useRoutes.tsx @@ -9,6 +9,7 @@ export const useRoutes = () => { useEffect(() => { // Это работает толко если URL страницы совпадает со стейтом) + console.log(state); if (id != '') { navigate(`/${id}/${state}`); } diff --git a/src/shared/routes/routes.tsx b/src/shared/routes/routes.tsx index 22722cb..f5cdfa1 100644 --- a/src/shared/routes/routes.tsx +++ b/src/shared/routes/routes.tsx @@ -47,9 +47,9 @@ const AppRoutes = () => { } /> } /> } /> - } /> - } /> - } /> + } /> + } /> + } /> ); diff --git a/src/shared/stores/lobby.store.ts b/src/shared/stores/lobby.store.ts index 85853cb..f73a7ef 100644 --- a/src/shared/stores/lobby.store.ts +++ b/src/shared/stores/lobby.store.ts @@ -4,7 +4,7 @@ import { User } from '@/shared/types/user.interface'; import { Settings } from '@/shared/types/settings.interface'; import { Tag } from '@/shared/types/tag.interface'; -export type GameState = 'settings' | 'match' | 'swipes' | 'result' | 'error' | 'preview'; +export type GameState = 'settings' | 'match' | 'swiping' | 'finished' | 'error' | 'lobby'; type LobbyActions = { setCards: (cards: Card[]) => void; @@ -43,7 +43,7 @@ const initialState : LobbyProps = { }, }, users: [], - state: 'preview', + state: 'lobby', tags: [], }; From 17f22884531f83ef787c7b17e0fe8dd2bef348bb Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Tue, 19 Nov 2024 03:08:32 +0300 Subject: [PATCH 64/79] trying to fix location request --- src/modules/home/map.button.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index e21378f..37bbb2c 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -44,7 +44,13 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { } }); } else if (!LocationManager.isAccessGranted && !LocationManager.isAccessRequested) { - LocationManager.openSettings(); + LocationManager.getLocation((location: { latitude: number; longitude: number }) => { + if (location) { + const { latitude, longitude } = location; + setPosition({ lat: latitude, lon: longitude }); + setShowMap(true); + } + }); } else if (!LocationManager.isAccessGranted && LocationManager.isAccessRequested) { showPopup({ title: "Настройки геолокации", From fd03b6e50b4dc0cf7899800d2535426085a67290 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Thu, 21 Nov 2024 21:13:59 +0300 Subject: [PATCH 65/79] fixed images to be able to parse multiple images --- src/modules/game/card.tsx | 2 +- src/modules/game/match.card.tsx | 2 +- src/modules/game/result.card.tsx | 2 +- src/shared/types/card.interface.ts | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index 0b89f42..8377f23 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -53,7 +53,7 @@ export const CardComponent = ({ data, deltaY }: Props) => {
diff --git a/src/modules/game/match.card.tsx b/src/modules/game/match.card.tsx index a4044f5..2c8299f 100644 --- a/src/modules/game/match.card.tsx +++ b/src/modules/game/match.card.tsx @@ -54,7 +54,7 @@ const MatchCard = () => {
diff --git a/src/modules/game/result.card.tsx b/src/modules/game/result.card.tsx index 74c5132..dce07e4 100644 --- a/src/modules/game/result.card.tsx +++ b/src/modules/game/result.card.tsx @@ -30,7 +30,7 @@ export const ResultCard = (data: { card: Card }) => {
- +
) } diff --git a/src/shared/types/card.interface.ts b/src/shared/types/card.interface.ts index be87c65..5a5a636 100644 --- a/src/shared/types/card.interface.ts +++ b/src/shared/types/card.interface.ts @@ -5,7 +5,7 @@ export interface Card { title: string; shortВescription: string; description: string; - image: string; + images: string[]; location: { lat: number; lon: number; @@ -19,4 +19,4 @@ export interface Card { } export type CardSwipeDirection = 'left' | 'right'; -export type IsDragOffBoundary = 'left' | 'right' | null; \ No newline at end of file +export type IsDragOffBoundary = 'left' | 'right' | null; From a67cdebad7b54da7438ae2abb9ca6395b6d75198 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 22 Nov 2024 12:42:12 +0300 Subject: [PATCH 66/79] added version error --- src/components/ui/game.tsx | 116 +++++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 51 deletions(-) diff --git a/src/components/ui/game.tsx b/src/components/ui/game.tsx index 3bc4727..5934761 100644 --- a/src/components/ui/game.tsx +++ b/src/components/ui/game.tsx @@ -2,64 +2,78 @@ import { motion, AnimatePresence, cubicBezier } from 'framer-motion'; import Loader from '@/components/ui/loader'; import { useLoadingStore } from '@/shared/stores/loading.store'; import { Outlet } from 'react-router-dom'; +import { useWebApp } from '@vkruglikov/react-telegram-web-app'; + +import sadFace from '@/assets/icons/sad-face.png'; const gameScreenVariants = { - initial: { - opacity: 0, - }, - animate: { - opacity: 1, - transition: { duration: 2, ease: cubicBezier(0.16, 1, 0.3, 1) }, - }, - exit: { - opacity: 0, - transition: { duration: 0.2, ease: cubicBezier(0.7, 0, 0.84, 0) }, - }, + initial: { + opacity: 0, + }, + animate: { + opacity: 1, + transition: { duration: 2, ease: cubicBezier(0.16, 1, 0.3, 1) }, + }, + exit: { + opacity: 0, + transition: { duration: 0.2, ease: cubicBezier(0.7, 0, 0.84, 0) }, + }, }; const loaderVariants = { - initial: { - opacity: 0, - }, - animate: { - opacity: 1, - transition: { duration: 0.5, ease: cubicBezier(0.16, 1, 0.3, 1) }, - }, - exit: { - opacity: 0, - transition: { duration: 0.2, ease: cubicBezier(0.7, 0, 0.84, 0) }, - }, + initial: { + opacity: 0, + }, + animate: { + opacity: 1, + transition: { duration: 0.5, ease: cubicBezier(0.16, 1, 0.3, 1) }, + }, + exit: { + opacity: 0, + transition: { duration: 0.2, ease: cubicBezier(0.7, 0, 0.84, 0) }, + }, }; export const GameComponent = () => { - const { isLoading } = useLoadingStore(); + const { isLoading } = useLoadingStore(); + const { isVersionAtLeast } = useWebApp(); - return ( -
- - {isLoading ? ( - - - - ) : ( - - - - )} - -
- ); + return ( +
+ {!isVersionAtLeast("7.2") ? +
+
+ +
+

У вас слишком старая версия.

+

Попробуйте обновть телеграм

+
+ : + + {isLoading ? ( + + + + ) : ( + + + + )} + + } +
+ ); }; From 60e5c0753bc716aaa9fed715d4daa946895be6ee Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 22 Nov 2024 13:20:00 +0300 Subject: [PATCH 67/79] fixed image overflow on some screens --- src/modules/game/card.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index 8377f23..7b523cc 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -47,9 +47,9 @@ export const CardComponent = ({ data, deltaY }: Props) => { }; return ( -
+
-
+
Date: Fri, 22 Nov 2024 13:20:00 +0300 Subject: [PATCH 68/79] fixed image overflow on some screens fixed overflow on match cards --- src/modules/game/card.tsx | 4 ++-- src/modules/game/match.card.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index 8377f23..7b523cc 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -47,9 +47,9 @@ export const CardComponent = ({ data, deltaY }: Props) => { }; return ( -
+
-
+
{ id="cardsWrapper" className="w-full aspect-[30/35] max-w-[90vw] relative z-10" > -
+
-
+
Date: Fri, 22 Nov 2024 14:40:19 +0300 Subject: [PATCH 69/79] updated theme and lobby default price --- src/shared/api/lobby.api.ts | 3 +- src/shared/events/app-events/error.event.ts | 3 +- src/shared/hooks/useTheme.ts | 22 +++++++++--- src/shared/util/theme.util.ts | 37 +++++++++++++++++++++ 4 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 src/shared/util/theme.util.ts diff --git a/src/shared/api/lobby.api.ts b/src/shared/api/lobby.api.ts index a20c4fd..8cf9510 100644 --- a/src/shared/api/lobby.api.ts +++ b/src/shared/api/lobby.api.ts @@ -27,7 +27,8 @@ export const fetchLobby = async (id: string): Promise => { export const postLobby = async (location: Location): Promise => { try { const response = await axios.post(`${API_URL}/api/v1/lobbies`, { - location + location, + priceAvg: 1200 }); return response.data; } catch (err) { diff --git a/src/shared/events/app-events/error.event.ts b/src/shared/events/app-events/error.event.ts index 0ede62c..adf0fa2 100644 --- a/src/shared/events/app-events/error.event.ts +++ b/src/shared/events/app-events/error.event.ts @@ -3,10 +3,11 @@ import { Event } from '../event'; import { getLoadingStoreMethods } from '@/shared/stores/loading.store'; class ErrorEvent extends Event { - handle() { + handle(data: any) { const { setState } = getLobbyStoreMethods(); const { setIsLoading } = getLoadingStoreMethods(); setIsLoading(false); + console.error('Scoket error:', data); setState('error'); } } diff --git a/src/shared/hooks/useTheme.ts b/src/shared/hooks/useTheme.ts index c41529c..09522df 100644 --- a/src/shared/hooks/useTheme.ts +++ b/src/shared/hooks/useTheme.ts @@ -1,6 +1,6 @@ -import { lightnessHex } from '@/lib/theme'; import { ThemeParams } from '@vkruglikov/react-telegram-web-app'; import { useEffect } from 'react'; +import { areColorsTooClose, lightnessHex } from '../util/theme.util'; interface Props extends ThemeParams { section_bg_color?: string; @@ -9,17 +9,29 @@ interface Props extends ThemeParams { } const useTheme = (themeParameters: Props, darkMode: boolean) => { + + const background = themeParameters.bg_color ?? ''; + const secondaryCandidate = + themeParameters.bottom_bar_bg_color ?? + lightnessHex(background, darkMode ? 10 : -10) ?? + ''; + + const useAdjustedSecondary = + areColorsTooClose(background, secondaryCandidate, 1); + + const secondary = useAdjustedSecondary + ? lightnessHex(background, darkMode ? 10 : -10) + : secondaryCandidate; + useEffect(() => { if (themeParameters) { document.documentElement.style.setProperty( '--background', - themeParameters.bg_color ?? '', + background, ); document.documentElement.style.setProperty( '--secondary', - themeParameters.bottom_bar_bg_color ?? - lightnessHex(themeParameters.bg_color ?? '', darkMode ? 10 : -10) ?? - '', + secondary ?? '', ); document.documentElement.style.setProperty( '--foreground', diff --git a/src/shared/util/theme.util.ts b/src/shared/util/theme.util.ts new file mode 100644 index 0000000..04e6131 --- /dev/null +++ b/src/shared/util/theme.util.ts @@ -0,0 +1,37 @@ +export const areColorsTooClose = ( + color1: string | null, + color2: string | null, + threshold: number = 10 +): boolean => { + + function hexToLightness(hex: string): number { + if (!hex) return 0; + + const r = parseInt(hex.slice(1, 3), 16) / 255; + const g = parseInt(hex.slice(3, 5), 16) / 255; + const b = parseInt(hex.slice(5, 7), 16) / 255; + + return Math.sqrt(0.299 * r ** 2 + 0.587 * g ** 2 + 0.114 * b ** 2) * 100; + } + + if (!color1 || !color2) { + return false; // If either color is null or undefined, they're not "too close" + } + + const lightness1 = hexToLightness(color1); + const lightness2 = hexToLightness(color2); + + return Math.abs(lightness1 - lightness2) < threshold; +} + +export const lightnessHex = (col: string, amt: number) => { + if (col.length < 5) return undefined; + col = col.replace(/^#/, ''); + + let num = parseInt(col, 16); + let r = (num >> 16) + amt; + let b = ((num >> 8) & 0x00ff) + amt; + let g = (num & 0x0000ff) + amt; + let newColor = g | (b << 8) | (r << 16); + return '#' + newColor.toString(16); +}; From 3386b34bf17079eb46e376c0de4bb600517fdf9e Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 22 Nov 2024 14:44:58 +0300 Subject: [PATCH 70/79] fix build --- src/shared/routes/routes.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/routes/routes.tsx b/src/shared/routes/routes.tsx index f5cdfa1..78af67a 100644 --- a/src/shared/routes/routes.tsx +++ b/src/shared/routes/routes.tsx @@ -37,7 +37,7 @@ const AppRoutes = () => { subscribe('startSwipes', () => swipesEvent.handle()); subscribe('releaseMatch', () => releaseMatchEvent.handle()); subscribe('finish', (data) => finishEvent.handle(data)); - subscribe('error', () => errorEvent.handle()); + subscribe('error', (data) => errorEvent.handle(data)); }, [socket]); return ( From c12ca2cf2a9990bbc9c213f3fa8f20fc6070ac5a Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 22 Nov 2024 15:17:33 +0300 Subject: [PATCH 71/79] updated map button --- src/modules/home/map.button.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/home/map.button.tsx b/src/modules/home/map.button.tsx index 4108cb2..37bbb2c 100644 --- a/src/modules/home/map.button.tsx +++ b/src/modules/home/map.button.tsx @@ -18,7 +18,7 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { const showPopup = useShowPopup(); const navigate = useNavigate(); const { LocationManager } = useWebApp(); - + const [animationComplete, setAnimationComplete] = useState(false); const { resetStore } = useLobbyStore(); @@ -88,6 +88,11 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { }; const MapEvents = () => { + const map = useMap(); + + useMapEvents({ + moveend(e) { + const newCenter = e.target.getCenter(); // Only update position if it has actually changed setPosition((prevPosition) => { if ( @@ -118,6 +123,7 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => { return null; }; + const onDragAction = (_: any, info: PanInfo) => { if (info.delta.y < 20) setShowMap(false); }; @@ -192,3 +198,4 @@ export const MapButton = ({ onMapOpenUpdate }: MapButtonProps) => {
); }; + From 025176a58558dd5865829bb6cafcf0d47634dbce Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Fri, 22 Nov 2024 16:39:15 +0300 Subject: [PATCH 72/79] fixed early socket connection --- src/pages/game.page.tsx | 36 +++++++++++++++++++--- src/shared/events/app-events/user.event.ts | 1 + src/shared/providers/socket.provider.tsx | 10 ++---- src/shared/routes/routes.tsx | 25 --------------- 4 files changed, 35 insertions(+), 37 deletions(-) diff --git a/src/pages/game.page.tsx b/src/pages/game.page.tsx index bf4f99b..e64ab29 100644 --- a/src/pages/game.page.tsx +++ b/src/pages/game.page.tsx @@ -8,15 +8,23 @@ import { fetchTags } from "@/shared/api/tags.api" import { useRoutes } from '@/shared/hooks/useRoutes'; import { GameComponent } from '@/components/ui/game'; +import { useSocket } from '@/shared/hooks/useSocket'; +import { cardEvent } from '@/shared/events/app-events/card.event'; +import { matchEvent } from '@/shared/events/app-events/match.event'; +import { settingsUpdateEvent } from '@/shared/events/app-events/settings.event'; +import { swipesEvent } from '@/shared/events/app-events/swipes.event'; +import { releaseMatchEvent } from '@/shared/events/app-events/release-match.event'; +import { finishEvent } from '@/shared/events/app-events/finish.event'; +import { errorEvent } from '@/shared/events/app-events/error.event'; export const GamePage = () => { const { setLobbyId, lobbyId } = useLobbyStore(); const { id } = useParams<{ id: string }>(); //lobbyId const { user, addRecentLobby, recentLobbies, ready } = useAuth(); + const { socket, subscribe } = useSocket(); const { setTags } = useLobbyStore(); useRoutes(); - useEffect(() => { fetchTags().then((tags) => { if (tags != undefined) setTags(tags); @@ -24,9 +32,29 @@ export const GamePage = () => { }, []); useEffect(() => { - fetchTags().then((tags) => { - if (tags != undefined) setTags(tags); - }); + socket?.connect(); + + return () => { + socket?.disconnect(); + } + }, [socket]) + + useEffect(() => { + const unsubscribes = [ + subscribe('card', (data) => cardEvent.handle(data)), + subscribe('match', (data) => matchEvent.handle(data)), + subscribe('userJoined', (data) => userEvents.userJoin(data)), + subscribe('userLeft', (data) => userEvents.userLeft(data)), + subscribe('settingsUpdate', (data) => settingsUpdateEvent.handle(data)), + subscribe('startSwipes', () => swipesEvent.handle()), + subscribe('releaseMatch', () => releaseMatchEvent.handle()), + subscribe('finish', (data) => finishEvent.handle(data)), + subscribe('error', (data) => errorEvent.handle(data)), + ]; + + return () => { + unsubscribes.forEach((unsubscribe) => unsubscribe()); + }; }, []); useEffect(() => { diff --git a/src/shared/events/app-events/user.event.ts b/src/shared/events/app-events/user.event.ts index 4e0c8ea..6ac0c89 100644 --- a/src/shared/events/app-events/user.event.ts +++ b/src/shared/events/app-events/user.event.ts @@ -6,6 +6,7 @@ import { Event } from '../event'; class UserEvents extends Event { userJoin(data: User) { const { addUser } = getLobbyStoreMethods(); + console.log(data); toast.success(`Пользователь ${data.name} присоединился`); addUser({ ...data }); } diff --git a/src/shared/providers/socket.provider.tsx b/src/shared/providers/socket.provider.tsx index abd1e3e..679f1f1 100644 --- a/src/shared/providers/socket.provider.tsx +++ b/src/shared/providers/socket.provider.tsx @@ -19,14 +19,8 @@ interface SocketProviderProps { export const SocketProvider = ({ children }: SocketProviderProps) => { useEffect(() => { - console.info('socket connected'); - socket.connect(); - - return () => { - console.info('socket disconnected'); - socket.disconnect(); - }; - }, []); + console.info(socket.connected ? 'socket connected' : 'socket disconnected'); + }, [socket]); const subscribe = (event: string, callback: (...args: any[]) => void) => { socket.on(event, callback); diff --git a/src/shared/routes/routes.tsx b/src/shared/routes/routes.tsx index 78af67a..bf62233 100644 --- a/src/shared/routes/routes.tsx +++ b/src/shared/routes/routes.tsx @@ -2,44 +2,19 @@ import { Route, Routes } from 'react-router-dom'; import { ResultPage } from '@/pages/result.page'; import { GamePage } from '@/pages/game.page'; -import { useEffect } from 'react'; -import { cardEvent } from '../events/app-events/card.event'; -import { finishEvent } from '../events/app-events/finish.event'; -import { matchEvent } from '../events/app-events/match.event'; -import { releaseMatchEvent } from '../events/app-events/release-match.event'; -import { settingsUpdateEvent } from '../events/app-events/settings.event'; -import { swipesEvent } from '../events/app-events/swipes.event'; -import { userEvents } from '../events/app-events/user.event'; -import { useSocket } from '../hooks/useSocket'; import MatchCard from '@/modules/game/match.card'; import GameCards from '@/modules/game/swipes'; import { useThemeParams } from '@vkruglikov/react-telegram-web-app'; import useTheme from '../hooks/useTheme'; import { HomePage } from '@/pages/home.page'; -import { errorEvent } from '../events/app-events/error.event'; import { ErrorPage } from '@/pages/error.page'; import { LobbyPreviewPage } from '@/pages/lobby-preview.page'; import { LobbySettingsPage } from '@/pages/lobby-settings.page'; const AppRoutes = () => { - const { subscribe, socket } = useSocket(); - const params = useThemeParams(); useTheme(params[1], params[0] === 'dark'); - // не вижу смысла выносить в отдельный компонент-обертку 1 useEffect, да, конечно он тут не то чтобы к месту, но и так роуты пустые - useEffect(() => { - subscribe('card', (data) => cardEvent.handle(data)); - subscribe('match', (data) => matchEvent.handle(data)); - subscribe('userJoined', (data) => userEvents.userJoin(data)); - subscribe('userLeft', (data) => userEvents.userLeft(data)); - subscribe('settingsUpdate', (data) => settingsUpdateEvent.handle(data)); - subscribe('startSwipes', () => swipesEvent.handle()); - subscribe('releaseMatch', () => releaseMatchEvent.handle()); - subscribe('finish', (data) => finishEvent.handle(data)); - subscribe('error', (data) => errorEvent.handle(data)); - }, [socket]); - return ( } /> From e40932c5948263db7e1d6fc3bf9a6365b7b94335 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 23 Nov 2024 17:38:23 +0300 Subject: [PATCH 73/79] added multiple images to card --- src/modules/game/card.tsx | 40 +++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/src/modules/game/card.tsx b/src/modules/game/card.tsx index 7b523cc..a81b3de 100644 --- a/src/modules/game/card.tsx +++ b/src/modules/game/card.tsx @@ -46,25 +46,53 @@ export const CardComponent = ({ data, deltaY }: Props) => { } }; + const [imageIndex, setImageIndex] = useState(0); + return (
-
+
+
+ {data.images.length > 1 && data.images.map((_, index) => { + return ( +
+ ) + })} +
{deltaY &&
} -
- { + const boundingBox = (e.target as HTMLElement).getBoundingClientRect(); + const tapX = e.clientX - boundingBox.left; + const elementWidth = boundingBox.width; + + setImageIndex((prevIndex) => { + if ((tapX + elementWidth / 4) < elementWidth / 2) { + return (prevIndex - 1 + data.images.length) % data.images.length; + } else if ((tapX - elementWidth / 4) > elementWidth / 2) { + return (prevIndex + 1) % data.images.length; + } + return prevIndex; + }); + }} + className="absolute top-0 w-full h-full" + > + {

-
+
); }; From 84be31196239acaae50688fcc3fc1653acb1c03e Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 23 Nov 2024 17:44:17 +0300 Subject: [PATCH 74/79] added multiple images to match cards --- src/modules/game/match.card.tsx | 38 +++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/modules/game/match.card.tsx b/src/modules/game/match.card.tsx index c7b6446..a4ffdb5 100644 --- a/src/modules/game/match.card.tsx +++ b/src/modules/game/match.card.tsx @@ -1,7 +1,8 @@ import { useMatchStore } from '@/shared/stores/match.store'; import { matchEvent } from '@/shared/events/app-events/match.event'; import { useWebApp } from '@vkruglikov/react-telegram-web-app'; -import { useEffect } from 'react'; +import { useEffect, useState } from 'react'; +import { motion } from 'framer-motion'; const MatchCard = () => { const { card } = useMatchStore(); @@ -38,6 +39,8 @@ const MatchCard = () => { }; }, [webApp]); + const [imageIndex, setImageIndex] = useState(0); + return (
-
+
+ {card !== null && card.images.length > 1 && card.images.map((_, index) => { + return ( +
+ ) + })} +
+ { + const boundingBox = (e.target as HTMLElement).getBoundingClientRect(); + const tapX = e.clientX - boundingBox.left; + const elementWidth = boundingBox.width; + + if (card == null) return; + + setImageIndex((prevIndex) => { + if ((tapX + elementWidth / 4) < elementWidth / 2) { + return (prevIndex - 1 + card.images.length) % card.images.length; + } else if ((tapX - elementWidth / 4) > elementWidth / 2) { + return (prevIndex + 1) % card.images.length; + } + return prevIndex; + }); + }} + className="relative h-full rounded-3xl overflow-hidden">
@@ -73,7 +103,7 @@ const MatchCard = () => {
-
+
); From 9712feeaf0d9a6555e830afff4372e7545f71f32 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sat, 23 Nov 2024 18:03:48 +0300 Subject: [PATCH 75/79] added banner to home page --- src/assets/hat.png | Bin 0 -> 371842 bytes src/pages/home.page.tsx | 38 +++++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 15 deletions(-) create mode 100644 src/assets/hat.png diff --git a/src/assets/hat.png b/src/assets/hat.png new file mode 100644 index 0000000000000000000000000000000000000000..d66ca043068836f3821ad5d3727ef0af426fa90c GIT binary patch literal 371842 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

y#i`a^l`h2f)TRA|>BU-c3 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 z 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

16vzGAjwzOIaRB&6tp<+Pw>SCK63 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�-%)g=AH|iwK|z_>RUd)}oG2Oq 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 literal 0 HcmV?d00001 diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index da6e8b5..d1d000b 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -8,10 +8,11 @@ import { LobbyCard } from "@/modules/home/lobby.card"; import { MapButton } from "@/modules/home/map.button"; import { Avatar } from "@/components/ui/avatar"; +import hat from "@/assets/hat.png"; export const HomePage = () => { const webApp = useWebApp(); - const { enableVerticalSwipes, disableVerticalSwipes } = webApp; + const { enableVerticalSwipes, disableVerticalSwipes, openTelegramLink } = webApp; const { user, recentLobbies, logoutUser } = useAuth(); const [isExpanded, expand] = useExpand(); @@ -34,25 +35,32 @@ export const HomePage = () => { initial={{ opacity: 0, height: '0px' }} animate={{ opacity: 1, height: 'auto' }} exit={{ opacity: 0, height: '0px' }} - className="pb-auto space-y-5" + className="pb-auto space-y-8 mx-5" onClick={() => { logoutUser(); expand(); }} > - {user && ( - - {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()} - - } - /> - )} -

Привет,
{user?.name}!

+
+ {user && ( + + {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()} + + } + /> + )} +

Привет,
{user?.name}!

+
+
{ + openTelegramLink('https://t.me/shampsdev'); + }} className="h-20 w-full bg-secondary overflow-hidden rounded-xl"> + +
)} From 626c380710c041e1591a5669c1695ac0035ee416 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sun, 24 Nov 2024 13:16:22 +0300 Subject: [PATCH 76/79] added indicators on votes --- src/components/ui/game.tsx | 6 +++ src/modules/game/match.card.tsx | 26 ++++++++++--- src/pages/game.page.tsx | 2 + src/pages/lobby-preview.page.tsx | 6 --- src/pages/lobby-settings.page.tsx | 6 --- src/shared/events/app-events/match.event.ts | 7 ++-- src/shared/events/app-events/user.event.ts | 41 +++++++++++---------- src/shared/events/app-events/vote.event.ts | 16 ++++++++ src/shared/stores/lobby.store.ts | 4 +- src/shared/stores/vote.store.tsx | 35 ++++++++++++++++++ src/shared/types/vote.interface.ts | 7 ++++ 11 files changed, 112 insertions(+), 44 deletions(-) create mode 100644 src/shared/events/app-events/vote.event.ts create mode 100644 src/shared/stores/vote.store.tsx create mode 100644 src/shared/types/vote.interface.ts diff --git a/src/components/ui/game.tsx b/src/components/ui/game.tsx index 7e589b8..696d78b 100644 --- a/src/components/ui/game.tsx +++ b/src/components/ui/game.tsx @@ -5,6 +5,7 @@ import { Outlet } from 'react-router-dom'; import { useWebApp } from '@vkruglikov/react-telegram-web-app'; import sadFace from '@/assets/icons/sad-face.png'; +import { Toaster } from 'react-hot-toast'; const gameScreenVariants = { @@ -41,6 +42,11 @@ export const GameComponent = () => { return (
+ {!isVersionAtLeast("7.2") ?
diff --git a/src/modules/game/match.card.tsx b/src/modules/game/match.card.tsx index a4ffdb5..ee00182 100644 --- a/src/modules/game/match.card.tsx +++ b/src/modules/game/match.card.tsx @@ -1,24 +1,37 @@ import { useMatchStore } from '@/shared/stores/match.store'; -import { matchEvent } from '@/shared/events/app-events/match.event'; import { useWebApp } from '@vkruglikov/react-telegram-web-app'; import { useEffect, useState } from 'react'; import { motion } from 'framer-motion'; +import { voteEvent } from '@/shared/events/app-events/vote.event'; +import { useVoteStore } from '@/shared/stores/vote.store'; +import { useLobbyStore } from '@/shared/stores/lobby.store'; const MatchCard = () => { - const { card } = useMatchStore(); + const { card, id } = useMatchStore(); + const { votes } = useVoteStore(); + const { users } = useLobbyStore(); const webApp = useWebApp(); const { openLink } = webApp; + useEffect(() => { + const currentVotes = votes.filter(x => x.id == id); + + const continueVotes = currentVotes.filter(x => x.option == 0); + const stopVotes = currentVotes.filter(x => x.option == 1); + + webApp.MainButton.setText(`Продолжить (${continueVotes.length}/1)`); + webApp.SecondaryButton.setText(`Закончить (${stopVotes.length}/${users.length})`); + }, [votes]) + const voteFinish = () => { - matchEvent.vote(card?.id ?? 0, 1); + voteEvent.vote(id ?? 0, 1); }; const voteContinue = () => { - matchEvent.vote(card?.id ?? 0, 0); + voteEvent.vote(id ?? 0, 0); }; - // SecondaryButton слишком новая фича, либа ещё не имплементировала, надо будет сделать) useEffect(() => { webApp.MainButton.setText('Продолжить'); webApp.MainButton.show(); @@ -43,9 +56,10 @@ const MatchCard = () => { return (
+
Все в лобби должны придти к единому решению!
Это мэтч!
{ const { setLobbyId, lobbyId } = useLobbyStore(); @@ -43,6 +44,7 @@ export const GamePage = () => { const unsubscribes = [ subscribe('card', (data) => cardEvent.handle(data)), subscribe('match', (data) => matchEvent.handle(data)), + subscribe('voted', (data) => voteEvent.handle(data)), subscribe('userJoined', (data) => userEvents.userJoin(data)), subscribe('userLeft', (data) => userEvents.userLeft(data)), subscribe('settingsUpdate', (data) => settingsUpdateEvent.handle(data)), diff --git a/src/pages/lobby-preview.page.tsx b/src/pages/lobby-preview.page.tsx index 1fafee1..8cc4c9c 100644 --- a/src/pages/lobby-preview.page.tsx +++ b/src/pages/lobby-preview.page.tsx @@ -7,7 +7,6 @@ import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { swipesEvent } from '@/shared/events/app-events/swipes.event'; -import { Toaster } from 'react-hot-toast'; import { AddPersonIcon } from '@/assets/icons/add-person.icon'; import { BOT_USERNAME } from '@/shared/constants'; @@ -97,11 +96,6 @@ export const LobbyPreviewPage = () => { return ( - { const { settings, setState, users } = useLobbyStore(); @@ -67,11 +66,6 @@ export const LobbySettingsPage = () => { return ( - ((set) => ({ })); export function getLobbyStoreMethods() { - const { setCards, cards, addUser, removeUser, setSettings, setState } = + const { setCards, users, cards, addUser, removeUser, setSettings, setState, state } = useLobbyStore.getState(); - return { setCards, cards, addUser, removeUser, setSettings, setState }; + return { setCards, users, cards, addUser, removeUser, setSettings, setState, state }; } diff --git a/src/shared/stores/vote.store.tsx b/src/shared/stores/vote.store.tsx new file mode 100644 index 0000000..4a755e4 --- /dev/null +++ b/src/shared/stores/vote.store.tsx @@ -0,0 +1,35 @@ + +import { create } from 'zustand'; +import { Vote } from '../types/vote.interface'; + + +type VoteActions = { + addVote: (newVote: Vote) => void; + resetStore: () => void; +} + +type VoteProps = { + votes: Vote[]; +}; + + +export const useVoteStore = create((set) => ({ + votes: [], + addVote: (newVote: Vote) => { + console.log(newVote); + set((state) => ({ + votes: [...state.votes.filter(x => x.User.id !== newVote.User.id), newVote], + })); + }, + resetStore: () => { + set(() => ({ + votes: [], + })); + }, +})); + +export function getVoteStoreMethods() { + const { votes, addVote, resetStore } = + useVoteStore.getState(); + return { votes, addVote, resetStore }; +} diff --git a/src/shared/types/vote.interface.ts b/src/shared/types/vote.interface.ts new file mode 100644 index 0000000..02bb377 --- /dev/null +++ b/src/shared/types/vote.interface.ts @@ -0,0 +1,7 @@ +import { User } from "./user.interface"; + +export interface Vote { + id: number; + option: number; + User: User; +} From 0c47dd59af643e82fcb66ff02feb6d3b2404caaa Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Sun, 24 Nov 2024 13:16:38 +0300 Subject: [PATCH 77/79] added raw version of home page banner --- src/pages/home.page.tsx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index d1d000b..fabf763 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -28,14 +28,15 @@ export const HomePage = () => { }, [isExpanded]); return ( -
+
{!open && ( { logoutUser(); expand(); @@ -58,18 +59,18 @@ export const HomePage = () => {
{ openTelegramLink('https://t.me/shampsdev'); - }} className="h-20 w-full bg-secondary overflow-hidden rounded-xl"> + }} className="h-full w-full bg-secondary overflow-hidden rounded-xl">
)} -
+

Последние лобби

{recentLobbies.length > 0 ? From faeee4fa3db7ba319099607d6887aa37abb6bfd2 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 25 Nov 2024 03:26:22 +0300 Subject: [PATCH 78/79] Removed Banner Revert "added raw version of home page banner" This reverts commit 0c47dd59af643e82fcb66ff02feb6d3b2404caaa. Revert "added banner to home page" This reverts commit 9712feeaf0d9a6555e830afff4372e7545f71f32. --- src/assets/hat.png | Bin 371842 -> 0 bytes src/pages/home.page.tsx | 49 ++++++++++++++++------------------------ 2 files changed, 20 insertions(+), 29 deletions(-) delete mode 100644 src/assets/hat.png diff --git a/src/assets/hat.png b/src/assets/hat.png deleted file mode 100644 index d66ca043068836f3821ad5d3727ef0af426fa90c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371842 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

y#i`a^l`h2f)TRA|>BU-c3 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 z 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

16vzGAjwzOIaRB&6tp<+Pw>SCK63 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�-%)g=AH|iwK|z_>RUd)}oG2Oq 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 diff --git a/src/pages/home.page.tsx b/src/pages/home.page.tsx index fabf763..da6e8b5 100644 --- a/src/pages/home.page.tsx +++ b/src/pages/home.page.tsx @@ -8,11 +8,10 @@ import { LobbyCard } from "@/modules/home/lobby.card"; import { MapButton } from "@/modules/home/map.button"; import { Avatar } from "@/components/ui/avatar"; -import hat from "@/assets/hat.png"; export const HomePage = () => { const webApp = useWebApp(); - const { enableVerticalSwipes, disableVerticalSwipes, openTelegramLink } = webApp; + const { enableVerticalSwipes, disableVerticalSwipes } = webApp; const { user, recentLobbies, logoutUser } = useAuth(); const [isExpanded, expand] = useExpand(); @@ -28,49 +27,41 @@ export const HomePage = () => { }, [isExpanded]); return ( -

+
{!open && ( { logoutUser(); expand(); }} > -
- {user && ( - - {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()} - - } - /> - )} -

Привет,
{user?.name}!

-
-
{ - openTelegramLink('https://t.me/shampsdev'); - }} className="h-full w-full bg-secondary overflow-hidden rounded-xl"> - -
+ {user && ( + + {user?.name.split(' ').slice(0, 2).map(x => x.charAt(0)).join('').toUpperCase()} + + } + /> + )} +

Привет,
{user?.name}!

)}
-
+

Последние лобби

{recentLobbies.length > 0 ? From 6acffd3bef20a8d339e9d052dcd8bfe36c1255a0 Mon Sep 17 00:00:00 2001 From: Mike de Geofroy Date: Mon, 25 Nov 2024 03:32:50 +0300 Subject: [PATCH 79/79] fix(lint) --- src/modules/game/match.card.tsx | 101 ++++++++++++++++---------------- 1 file changed, 50 insertions(+), 51 deletions(-) diff --git a/src/modules/game/match.card.tsx b/src/modules/game/match.card.tsx index bebb100..d0d408b 100644 --- a/src/modules/game/match.card.tsx +++ b/src/modules/game/match.card.tsx @@ -60,60 +60,59 @@ const MatchCard = () => { isDragging" >
Все в лобби должны придти к единому решению!
-
- {card !== null && card.images.length > 1 && card.images.map((_, index) => { - return ( -
- ) - })} -
- { - const boundingBox = (e.target as HTMLElement).getBoundingClientRect(); - const tapX = e.clientX - boundingBox.left; - const elementWidth = boundingBox.width; - - if (card == null) return; - - setImageIndex((prevIndex) => { - if ((tapX + elementWidth / 4) < elementWidth / 2) { - return (prevIndex - 1 + card.images.length) % card.images.length; - } else if ((tapX - elementWidth / 4) > elementWidth / 2) { - return (prevIndex + 1) % card.images.length; - } - return prevIndex; - }); - }} - className="relative h-full rounded-3xl overflow-hidden"> -
-
- -
-
-
+
+ {card !== null && card.images.length > 1 && card.images.map((_, index) => { + return (
-

{card?.title}

-
-

{ - const url = `https://yandex.ru/maps/?rtext=${card?.location.lat}%2C${card?.location.lon}` - openLink(url); - }} className="p-4 pt-0 cursor-pointer underline flex flex-col justify-between overflow-hidden text-foreground"> - {card?.address} -

-
+ key={`image_${index}`} + className={`${index == imageIndex ? 'bg-muted' : 'bg-muted-foreground'} h-[2px] w-full rounded-full`} + /> + ) + })} +
+ { + const boundingBox = (e.target as HTMLElement).getBoundingClientRect(); + const tapX = e.clientX - boundingBox.left; + const elementWidth = boundingBox.width; + + if (card == null) return; + + setImageIndex((prevIndex) => { + if ((tapX + elementWidth / 4) < elementWidth / 2) { + return (prevIndex - 1 + card.images.length) % card.images.length; + } else if ((tapX - elementWidth / 4) > elementWidth / 2) { + return (prevIndex + 1) % card.images.length; + } + return prevIndex; + }); + }} + className="relative h-full rounded-3xl overflow-hidden"> +
+
+ +
+
+
+
+

{card?.title}

+
+

{ + const url = `https://yandex.ru/maps/?rtext=${card?.location.lat}%2C${card?.location.lon}` + openLink(url); + }} className="p-4 pt-0 cursor-pointer underline flex flex-col justify-between overflow-hidden text-foreground"> + {card?.address} +

- -
+
+
); };