diff --git a/src/api/schema.d.ts b/src/api/schema.d.ts index c5c50ba..bd0f937 100644 --- a/src/api/schema.d.ts +++ b/src/api/schema.d.ts @@ -212,6 +212,22 @@ export interface paths { patch?: never; trace?: never; }; + "/backend/referrals/join": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["ReferralsController_joinUserByReferralLink"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/backend/history/chat/{chatId}": { parameters: { query?: never; @@ -679,6 +695,25 @@ export interface operations { }; }; }; + ReferralsController_joinUserByReferralLink: { + parameters: { + query?: never; + header: { + tmaInitData: string; + }; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 201: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; HistoryController_getUserHistory: { parameters: { query: { diff --git a/src/pages/Join.tsx b/src/pages/Join.tsx index a61f00b..580d409 100644 --- a/src/pages/Join.tsx +++ b/src/pages/Join.tsx @@ -2,6 +2,7 @@ import { FC } from 'react'; import { Typography } from '@mui/material'; import { Button, Title } from '@telegram-apps/telegram-ui'; import { MiniApp, useMiniApp, useUtils, Utils } from '@tma.js/sdk-react'; +import axios from 'axios'; import styled from 'styled-components'; import { useCurrentUser } from '@/api/queries'; @@ -32,9 +33,28 @@ export const Join: FC<{ linkOwner: LinkOwner }> = ({ linkOwner }) => { /* ignore */ } + console.log('linkOwner', linkOwner); + const { data: currentUser, isLoading } = useCurrentUser(); - const handleJoin = () => { + const handleJoin = async () => { + try { + await axios.post( + `${import.meta.env.VITE_BACKEND_URL}/backend/referrals/join`, + { + chatId: Number(linkOwner.chatId), + ownerId: linkOwner.ownerId, + title: linkOwner.title + }, + { + headers: { tmaInitData: window.Telegram.WebApp.initData } + } + ); + } catch (error) { + console.error(error); + throw new Error(`${error}`); + } + if (utils) { utils.openTelegramLink(linkOwner.telegramInviteLink); } else {