diff --git a/public/icons/max.svg b/public/icons/max.svg new file mode 100644 index 0000000..f83e6a2 --- /dev/null +++ b/public/icons/max.svg @@ -0,0 +1 @@ + diff --git a/public/icons/vk.svg b/public/icons/vk.svg new file mode 100644 index 0000000..93e327c --- /dev/null +++ b/public/icons/vk.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index 238456a..3159809 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -552,7 +552,7 @@ export default function AdminHomePage() { onChange={(e) => setNewBooking({ ...newBooking, contactMethod: e.target.value })} > - + diff --git a/src/app/page.tsx b/src/app/page.tsx index 5bf9236..9d888b8 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -39,11 +39,9 @@ export default function Home() { const [faqs, setFaqs] = useState([]) const [contacts, setContacts] = useState([]) - const inst = contacts.find((c)=> c.type ==='inst'); const phone = contacts.find((c)=> c.type ==='phone'); const tg = contacts.find((c)=> c.type ==='tg'); const gis2 = contacts.find((c)=> c.type ==='gis2'); - const whatsapp = contacts.find((c)=> c.type ==='whatsapp'); useEffect(() => { async function fetchFaq() { @@ -63,7 +61,7 @@ export default function Home() { return ( - +
@@ -99,21 +97,13 @@ export default function Home() {
- +
-

Загрузи и бронируй заранее.

-

Следи за событиями, прокачивай профиль и получай вознаграждения. Пополнение счёта c Kaspi — в пару кликов.

-
- - {'google - - - {'appStore'} - -
+

Скоро в твоём смартфоне.

+

Приложение Strike Arena сейчас в разработке. Бронирование, события, профиль и пополнение счёта — всё в одном месте. Скоро.

{'phone'}
@@ -137,22 +127,7 @@ export default function Home() { Политика
конфиденциальности -
{inst ? ( - - inst - - ) : ( - inst - )} - - {whatsapp ? ( - - whatsapp - - ) : ( - whatsapp - )} - +
{tg ? ( tg @@ -161,6 +136,14 @@ export default function Home() { tg )} + + vk + + + + max + + {gis2 ? ( geo @@ -169,7 +152,8 @@ export default function Home() { geo - )}
+ )} +

{phone?.value}

open('zayvka-game')}>Заказать звонок

diff --git a/src/app/policy/page.tsx b/src/app/policy/page.tsx index b99d5bd..75d7ab8 100644 --- a/src/app/policy/page.tsx +++ b/src/app/policy/page.tsx @@ -12,10 +12,8 @@ type Contacts = { export default function AboutPage() { const [contacts, setContacts] = useState([]) const phone = contacts.find((c)=> c.type ==='phone'); - const inst = contacts.find((c)=> c.type ==='inst'); const tg = contacts.find((c)=> c.type ==='tg'); const gis2 = contacts.find((c)=> c.type ==='gis2'); - const whatsapp = contacts.find((c)=> c.type ==='whatsapp'); useEffect(() => { async function fetchContact() { @@ -27,7 +25,7 @@ export default function AboutPage() { }, []); return ( - +

Политика конфиденциальности

1. Общие положения Данная Политика конфиденциальности (далее — "Политика") определяет порядок diff --git a/src/components/BronModal.tsx b/src/components/BronModal.tsx index b93cb68..c652e63 100644 --- a/src/components/BronModal.tsx +++ b/src/components/BronModal.tsx @@ -56,9 +56,9 @@ export default function BronModal() { {title:"PS лаундж", label:"PS зона в общем холле. На 2-4 человека"}, ] - const contactOptions: { type: "telegram" | "whatsapp" | "phone"; icon: string }[] = [ + const contactOptions: { type: "telegram" | "max" | "phone"; icon: string }[] = [ { type: 'telegram', icon: '/icons/tg.png' }, - { type: 'whatsapp', icon: '/icons/whatsapp.png' }, + { type: 'max', icon: '/icons/max.svg' }, { type: 'phone', icon: '/icons/phone.png' }, ]; @@ -146,7 +146,7 @@ export default function BronModal() {

{(isOpen || isVisible) && ( - + × {screen === 'start' && ( <> diff --git a/src/components/GameList.tsx b/src/components/GameList.tsx index e66d844..63accec 100644 --- a/src/components/GameList.tsx +++ b/src/components/GameList.tsx @@ -141,7 +141,8 @@ const GameText = styled.div` text-align: center; text-transform: none; span{ - background: #8921ff; + background: ${lightGreenColor}; + color: #000; text-transform: uppercase; padding: 4px 18px; } @@ -198,10 +199,9 @@ interface Game{ } type Links = { tg?: string; - whatsapp?: string; } -const GameList:React.FC = ({tg, whatsapp}) => { +const GameList:React.FC = ({tg}) => { const [platform, setPlatform] = useState<'pc'|'ps'>('pc') const [games, setGames] = useState([]); const open = useBronStore((s) => s.open); @@ -276,15 +276,6 @@ const GameList:React.FC = ({tg, whatsapp}) => { {'tg'} )} - {whatsapp ? ( - - {'whatsapp'} - - ) : ( - - {'whatsapp'} - - )}
diff --git a/src/components/HeaderPage.tsx b/src/components/HeaderPage.tsx index 06ee7ee..0835035 100644 --- a/src/components/HeaderPage.tsx +++ b/src/components/HeaderPage.tsx @@ -5,9 +5,7 @@ import {useBronStore} from "@/store/useBronStore"; import styled from "styled-components"; type HeaderPageProps = { - whatsapp?: string; tg?: string; - inst?: string; phone?: string; gis2?: string; } @@ -188,7 +186,7 @@ const MobileMenu = styled.div<{ $isOpenMenu: boolean }>` `; -const HeaderPage: React.FC = ({whatsapp, tg, inst, gis2, phone}) => { +const HeaderPage: React.FC = ({tg, gis2, phone}) => { const [isMenuOpen, setIsMenuOpen] = useState(false); const open = useBronStore((s) => s.open); @@ -217,16 +215,6 @@ const HeaderPage: React.FC = ({whatsapp, tg, inst, gis2, phone} )} - {whatsapp ? ( - - whatsapp - - ) : ( - - whatsapp - - )} - {tg ? ( tg @@ -237,13 +225,13 @@ const HeaderPage: React.FC = ({whatsapp, tg, inst, gis2, phone} )} - {inst ? ( - - inst - - ) : ( - inst - )} + + vk + + + + max +

{phone || '+7 775 260 85 59'}

@@ -256,8 +244,9 @@ const HeaderPage: React.FC = ({whatsapp, tg, inst, gis2, phone} {gis2 && 2 ГИС} - {whatsapp && WhatsApp} {tg && Telegram} + VK + Max {phone && {phone}} diff --git a/src/store/useBronStore.ts b/src/store/useBronStore.ts index 14fa936..283cbcf 100644 --- a/src/store/useBronStore.ts +++ b/src/store/useBronStore.ts @@ -21,7 +21,7 @@ interface FormData { name?: string game?: string contact?: string - contactMethod?: 'telegram' | 'whatsapp' | 'phone' + contactMethod?: 'telegram' | 'max' | 'phone' } interface BronStore { diff --git a/src/styles/modal.styled.ts b/src/styles/modal.styled.ts index 751b2d9..29f6e1e 100644 --- a/src/styles/modal.styled.ts +++ b/src/styles/modal.styled.ts @@ -13,7 +13,7 @@ export const Overlay = styled.div` align-items: center; justify-content: center; `; -export const ModalWrapper = styled.div<{ $animateIn: boolean }>` +export const ModalWrapper = styled.div<{ $animateIn: boolean; $compact?: boolean }>` display: flex; justify-content: center; align-items: center; @@ -23,7 +23,9 @@ export const ModalWrapper = styled.div<{ $animateIn: boolean }>` padding: 32px; border-radius: 20px; width: 70vw; - height: 94vh; + height: ${({ $compact }) => $compact ? 'auto' : '94vh'}; + max-height: ${({ $compact }) => $compact ? '80vh' : 'none'}; + overflow-y: ${({ $compact }) => $compact ? 'auto' : 'visible'}; position: relative; opacity: ${({ $animateIn }) => ($animateIn ? 1 : 0)}; transform: ${({ $animateIn }) =>