import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { Separator } from '@/components/ui/separator'; import DashboardLayout from '@/layouts/dashboard/layout'; import { SharedData } from '@/types/global'; import { useForm, usePage } from '@inertiajs/react'; import { Settings as SettingsIcon, Video } from 'lucide-react'; import { ReactNode } from 'react'; interface Props extends SharedData { liveClass: Settings; } const LiveClass = ({ liveClass }: Props) => { const { props } = usePage(); const { translate } = props; const { settings, input, button } = translate; const { data, setData, post, errors, processing } = useForm({ ...liveClass.fields, }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); post(route('settings.live-class.update', liveClass.id), { preserveScroll: true, }); }; return (
{/* Header */}

{settings.live_class_settings}

{/* Settings Form */}
{/* Account Email */}
setData('zoom_account_email', e.target.value)} placeholder={input.zoom_account_email_placeholder} required /> {errors.zoom_account_email &&

{errors.zoom_account_email}

}
{/* Account ID */}
setData('zoom_account_id', e.target.value)} placeholder={input.zoom_account_id_placeholder} required /> {errors.zoom_account_id &&

{errors.zoom_account_id}

}
{/* Client ID */}
setData('zoom_client_id', e.target.value)} placeholder={input.zoom_client_id_placeholder} required /> {errors.zoom_client_id &&

{errors.zoom_client_id}

}
{/* Client Secret */}
setData('zoom_client_secret', e.target.value)} placeholder={input.zoom_client_secret_placeholder} required /> {errors.zoom_client_secret &&

{errors.zoom_client_secret}

}
{/* Web SDK Option */}
setData('zoom_web_sdk', value === 'activate' ? true : false)} className="flex gap-6" >
{errors.zoom_web_sdk &&

{errors.zoom_web_sdk}

}
{/* Web SDK Credentials */} {data.zoom_web_sdk && (

Meeting SDK Credentials

setData('zoom_sdk_client_id', e.target.value)} placeholder="Enter your Meeting SDK client ID" /> {errors.zoom_sdk_client_id &&

{errors.zoom_sdk_client_id}

}
setData('zoom_sdk_client_secret', e.target.value)} placeholder="Enter your Meeting SDK client secret" /> {errors.zoom_sdk_client_secret &&

{errors.zoom_sdk_client_secret}

}
)} {/* Submit Button */}
{/* Help Section */}
Setup Instructions

Step 1: Create Zoom App

Go to the Zoom Marketplace and create a Server-to-Server OAuth app.

Step 2: Get Credentials

Copy your Account ID, Client ID, and Client Secret from your app settings.

Step 3: Web SDK (Optional)

If you want to embed Zoom meetings directly in your website, enable Web SDK and provide Meeting SDK credentials.

Required Scopes
  • • meeting:write
  • • meeting:read
  • • user:read
); }; LiveClass.layout = (page: ReactNode) => ; export default LiveClass;