import type { GetServerSideProps, InferGetServerSidePropsType } from 'next'; import { useRouter } from 'next/router'; import React, { ReactElement } from 'react'; import styles from '../styles/Home.module.css'; interface TabsProps { children: ReactElement[]; selectedIndex?: number; onTabSelected?: (index: number) => void; } function Tabs(props: TabsProps) { const activeIndex = props.selectedIndex ?? 0; if (!props.children) { return <>; } let tabs = React.Children.map(props.children, (child, index) => { return ( ); }); return (
{tabs}
{props.children[activeIndex]}
); } function DemoMeetingTab({ label }: { label: string }) { const router = useRouter(); const startMeeting = () => { router.push(`/rooms/${generateRoomId()}`); }; return (

Try LiveKit Meet for free with our live demo project.

); } function CustomConnectionTab({ label }: { label: string }) { const router = useRouter(); const onSubmit: React.FormEventHandler = (event) => { event.preventDefault(); const formData = new FormData(event.target as HTMLFormElement); const serverUrl = formData.get('serverUrl'); const token = formData.get('token'); router.push(`/custom/?liveKitUrl=${serverUrl}&token=${token}`); }; return (

Connect LiveKit Meet with a custom server using LiveKit Cloud or LiveKit Server.