This commit is contained in:
sbb45
2026-06-17 21:41:07 +05:00
parent abb9190b35
commit c4b8b05b32
10 changed files with 42 additions and 74 deletions
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 720"><path fill="#fff" d="M350.4,9.6C141.8,20.5,4.1,184.1,12.8,390.4c3.8,90.3,40.1,168,48.7,253.7,2.2,22.2-4.2,49.6,21.4,59.3,31.5,11.9,79.8-8.1,106.2-26.4,9-6.1,17.6-13.2,24.2-22,27.3,18.1,53.2,35.6,85.7,43.4,143.1,34.3,299.9-44.2,369.6-170.3C799.6,291.2,622.5-4.6,350.4,9.6h0ZM269.4,504c-11.3,8.8-22.2,20.8-34.7,27.7-18.1,9.7-23.7-.4-30.5-16.4-21.4-50.9-24-137.6-11.5-190.9,16.8-72.5,72.9-136.3,150-143.1,78-6.9,150.4,32.7,183.1,104.2,72.4,159.1-112.9,316.2-256.4,218.6h0Z"/></svg>

After

Width:  |  Height:  |  Size: 541 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.02944 7.02944C0 14.0589 0 25.3726 0 48V52C0 74.6274 0 85.9411 7.02944 92.9706C14.0589 100 25.3726 100 48 100H52C74.6274 100 85.9411 100 92.9706 92.9706C100 85.9411 100 74.6274 100 52V48C100 25.3726 100 14.0589 92.9706 7.02944C85.9411 0 74.6274 0 52 0H48C25.3726 0 14.0589 0 7.02944 7.02944ZM16.8752 30.4169C17.4168 56.4169 30.4167 72.0418 53.2084 72.0418H54.5003V57.1668C62.8753 58.0001 69.2082 64.1252 71.7498 72.0418H83.5835C80.3335 60.2085 71.7914 53.6668 66.4581 51.1668C71.7914 48.0835 79.2914 40.5835 81.0831 30.4169H70.3328C67.9995 38.6669 61.0836 46.1668 54.5003 46.8751V30.4169H43.7499V59.2501C37.0833 57.5835 28.6668 49.5002 28.2918 30.4169H16.8752Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 835 B

+1 -1
View File
@@ -552,7 +552,7 @@ export default function AdminHomePage() {
onChange={(e) => setNewBooking({ ...newBooking, contactMethod: e.target.value })}
>
<option value="telegram">Telegram</option>
<option value="whatsapp">WhatsApp</option>
<option value="max">Max</option>
<option value="phone">Телефон</option>
</StyledFormSelect>
</div>
+15 -31
View File
@@ -39,11 +39,9 @@ export default function Home() {
const [faqs, setFaqs] = useState<Faq[]>([])
const [contacts, setContacts] = useState<Contacts[]>([])
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 (
<MainPage>
<HeaderPage whatsapp={whatsapp?.value} tg={tg?.value} phone={phone?.value} inst={inst?.value} gis2={gis2?.value} />
<HeaderPage tg={tg?.value} phone={phone?.value} gis2={gis2?.value} />
<main>
<StartBlock>
@@ -99,21 +97,13 @@ export default function Home() {
<FeaturesList />
</Section>
<Section>
<GameList tg={tg?.value} whatsapp={whatsapp?.value} />
<GameList tg={tg?.value} />
</Section>
<AppSection>
<AppText>
<StyledButton label={'Приложение'} padding={'12px 38px'} fontSize={'24px'} />
<h2>Загрузи и бронируй заранее.</h2>
<p>Следи за событиями, прокачивай профиль и получай вознаграждения. Пополнение счёта c <span>Kaspi</span> в пару кликов.</p>
<div>
<Link href={'https://play.google.com/store/apps/details?id=com.f5computers.langame_aggregator'}>
<Image src={'/icons/appGooglePlay.png'} alt={'google play'} width={220} height={84} loading={"lazy"} />
</Link>
<Link href={'https://apps.apple.com/us/app/langame/id1642484175?l=ru'}>
<Image src={'/icons/appAppStore.png'} alt={'appStore'} width={235} height={84} loading={"lazy"} />
</Link>
</div>
<h2>Скоро в твоём смартфоне.</h2>
<p>Приложение Strike Arena сейчас в разработке. Бронирование, события, профиль и пополнение счёта <span>всё в одном месте. Скоро.</span></p>
</AppText>
<Image className={'phoneApp'} src={'/images/phone.png'} alt={'phone'} width={412} height={414} loading={"lazy"} />
</AppSection>
@@ -137,22 +127,7 @@ export default function Home() {
Политика<br/> конфиденциальности
</Link>
<HeaderBlock className={'footerBlock'}>
<div>{inst ? (
<Link href={inst.value} target="_blank">
<Image src="/icons/inst.png" alt="inst" width={60} height={60} loading="lazy" />
</Link>
) : (
<Image src="/icons/inst.png" alt="inst" width={60} height={60} loading="lazy" />
)}
{whatsapp ? (
<Link href={whatsapp.value} target="_blank">
<Image src="/icons/whatsapp.png" alt="whatsapp" width={58} height={58} loading="lazy" />
</Link>
) : (
<Image src="/icons/whatsapp.png" alt="whatsapp" width={58} height={58} loading="lazy" />
)}
<div>
{tg ? (
<Link href={tg.value} className="tgLink" target="_blank">
<Image src="/icons/tg.png" alt="tg" width={48} height={48} loading="lazy" />
@@ -161,6 +136,14 @@ export default function Home() {
<Image src="/icons/tg.png" alt="tg" width={48} height={48} loading="lazy" />
)}
<Link href="https://vk.ru" target="_blank">
<Image src="/icons/vk.svg" alt="vk" width={52} height={52} loading="lazy" />
</Link>
<Link href="https://max.ru" target="_blank">
<Image src="/icons/max.svg" alt="max" width={52} height={52} loading="lazy" />
</Link>
{gis2 ? (
<Link href={gis2.value} className="gis2Link headerImage" target="_blank">
<Image src="/icons/location.svg" alt="geo" width={37} height={50} loading="lazy" />
@@ -169,7 +152,8 @@ export default function Home() {
<Link href={'/'} className="gis2Link headerImage" target="_blank">
<Image src="/icons/location.svg" alt="geo" width={37} height={50} loading="lazy" />
</Link>
)}</div>
)}
</div>
<HeaderPhone className={'footerPhone'}>
<p style={{ marginBottom: 0 }}>{phone?.value}</p>
<h4 onClick={() => open('zayvka-game')}>Заказать звонок</h4>
+1 -3
View File
@@ -12,10 +12,8 @@ type Contacts = {
export default function AboutPage() {
const [contacts, setContacts] = useState<Contacts[]>([])
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 (
<MainPage>
<HeaderPage whatsapp={whatsapp?.value} tg={tg?.value} phone={phone?.value} inst={inst?.value} gis2={gis2?.value} />
<HeaderPage tg={tg?.value} phone={phone?.value} gis2={gis2?.value} />
<PolicyContent>
<h1>Политика конфиденциальности</h1>
<p>1. Общие положения Данная Политика конфиденциальности (далее &quot;Политика&quot;) определяет порядок
+3 -3
View File
@@ -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() {
<div>
{(isOpen || isVisible) && (
<Overlay>
<ModalWrapper $animateIn={shouldAnimateIn}>
<ModalWrapper $animateIn={shouldAnimateIn} $compact={screen === 'pc3' || screen === 'pc3-2'}>
<CloseButton onClick={close}>×</CloseButton>
{screen === 'start' && (
<>
+3 -12
View File
@@ -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<Links> = ({tg, whatsapp}) => {
const GameList:React.FC<Links> = ({tg}) => {
const [platform, setPlatform] = useState<'pc'|'ps'>('pc')
const [games, setGames] = useState<Game[]>([]);
const open = useBronStore((s) => s.open);
@@ -276,15 +276,6 @@ const GameList:React.FC<Links> = ({tg, whatsapp}) => {
<Image src={'/icons/tg_primary.png'} alt={'tg'} width={78} height={78} loading={"lazy"} />
</Link>
)}
{whatsapp ? (
<Link href={whatsapp} target={"_blank"}>
<Image src={'/icons/wa_primary.png'} alt={'whatsapp'} width={81} height={81} loading={"lazy"} />
</Link>
) : (
<Link href={'/'}>
<Image src={'/icons/wa_primary.png'} alt={'whatsapp'} width={81} height={81} loading={"lazy"} />
</Link>
)}
</div>
</GameText>
</div>
+10 -21
View File
@@ -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<HeaderPageProps> = ({whatsapp, tg, inst, gis2, phone}) => {
const HeaderPage: React.FC<HeaderPageProps> = ({tg, gis2, phone}) => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const open = useBronStore((s) => s.open);
@@ -217,16 +215,6 @@ const HeaderPage: React.FC<HeaderPageProps> = ({whatsapp, tg, inst, gis2, phone}
</Link>
)}
{whatsapp ? (
<Link href={whatsapp} className="headerImage" target="_blank">
<Image src="/icons/whatsapp.png" alt="whatsapp" width={58} height={58} loading="lazy" />
</Link>
) : (
<Link href={'/'} className="headerImage" target="_blank">
<Image src="/icons/whatsapp.png" alt="whatsapp" width={58} height={58} loading="lazy" />
</Link>
)}
{tg ? (
<Link href={tg} className="tgLink headerImage" target="_blank">
<Image src="/icons/tg.png" alt="tg" width={48} height={48} loading="lazy" />
@@ -237,13 +225,13 @@ const HeaderPage: React.FC<HeaderPageProps> = ({whatsapp, tg, inst, gis2, phone}
</Link>
)}
{inst ? (
<Link href={inst} target="_blank">
<Image src="/icons/inst.png" alt="inst" width={60} height={60} loading="lazy" />
</Link>
) : (
<Image src="/icons/inst.png" alt="inst" width={60} height={60} loading="lazy" />
)}
<Link href="https://vk.ru" className="headerImage" target="_blank">
<Image src="/icons/vk.svg" alt="vk" width={52} height={52} loading="lazy" />
</Link>
<Link href="https://max.ru" className="headerImage" target="_blank">
<Image src="/icons/max.svg" alt="max" width={52} height={52} loading="lazy" />
</Link>
<HeaderPhone>
<p style={{ marginBottom: 0 }}>{phone || '+7 775 260 85 59'}</p>
@@ -256,8 +244,9 @@ const HeaderPage: React.FC<HeaderPageProps> = ({whatsapp, tg, inst, gis2, phone}
</button>
{gis2 && <Link href={gis2} target="_blank">2 ГИС</Link>}
{whatsapp && <Link href={whatsapp} target="_blank">WhatsApp</Link>}
{tg && <Link href={tg} target="_blank">Telegram</Link>}
<Link href="https://vk.ru" target="_blank">VK</Link>
<Link href="https://max.ru" target="_blank">Max</Link>
{phone && <Link href={`tel:${phone}`}>{phone}</Link>}
</MobileMenu>
+1 -1
View File
@@ -21,7 +21,7 @@ interface FormData {
name?: string
game?: string
contact?: string
contactMethod?: 'telegram' | 'whatsapp' | 'phone'
contactMethod?: 'telegram' | 'max' | 'phone'
}
interface BronStore {
+4 -2
View File
@@ -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 }) =>