import { BytescaleUploader } from '@/components/BytescaleUploader/BytescaleUploader'; import { useEffect } from 'react'; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { Switch } from '@/components/ui/switch'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; interface Props { open: boolean; onOpenChange: (open: boolean) => void; editingBanner: any; bannerForm: any; setBannerForm: any; onSave: () => void; } export default function HomepageBannerModal({ open, onOpenChange, editingBanner, bannerForm, setBannerForm, onSave, }: Props) { return ( {editingBanner ? 'Edit Homepage Banner' : 'Create Homepage Banner'}

Media Configuration

Manage your banner files for desktop and mobile layouts

Active Visibility

Publish this banner live on the homepage

setBannerForm({ ...bannerForm, isActive: val, }) } />

{bannerForm.mediaType === 'VIDEO' ? 'Recommended: 1920 × 650 MP4 Format ' : 'Recommended: 1920 × 650 Widescreen'}

setBannerForm({ ...bannerForm, desktopMediaUrl: url, }) } />

{bannerForm.mediaType === 'VIDEO' ? 'Recommended: 340 × 390 MP4 Format' : 'Recommended: 340 × 390 '}

setBannerForm({ ...bannerForm, mobileMediaUrl: url, }) } />

Banner Copy & Styles

Modify text details and text alignment configurations

setBannerForm({ ...bannerForm, title: e.target.value, }) } />
setBannerForm({ ...bannerForm, subtitle: e.target.value, }) } />
setBannerForm({ ...bannerForm, sortOrder: Number(e.target.value), }) } />

Call To Action (CTA Button)

Hyperlinks for optional button element overlays

setBannerForm({ ...bannerForm, buttonText: e.target.value, }) } />
setBannerForm({ ...bannerForm, buttonLink: e.target.value, }) } />

Target Tab Redirection

Force-launch the button link target into a completely new browser tab window

setBannerForm({ ...bannerForm, openInNewTab: val, }) } />
); }