new look test7 #deploy

This commit is contained in:
martin 2026-01-20 17:49:57 +01:00
parent 2053840ea0
commit d19743ba01
2 changed files with 21 additions and 4 deletions

View File

@ -4,13 +4,14 @@ import { Input } from '@/components/ui/input';
import { Textarea } from '@/components/ui/textarea'; import { Textarea } from '@/components/ui/textarea';
import { Label } from '@/components/ui/label'; import { Label } from '@/components/ui/label';
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog';
import { CalendarDays, Megaphone, Users } from 'lucide-react'; import { CalendarCheck2, CalendarDays, Megaphone, Users } from 'lucide-react';
import { createEvent, fetchEventById, updateEvent, getEventInfoFromUrl, generateCollabLink, updateArtistCollabDataByOp } from '@/features/event/api/eventService'; import { createEvent, fetchEventById, updateEvent, getEventInfoFromUrl, generateCollabLink, updateArtistCollabDataByOp } from '@/features/event/api/eventService';
import { useApiFetch } from '@/utils/apiFetch'; import { useApiFetch } from '@/utils/apiFetch';
import { useIsMobile } from '@/hooks/use-mobile'; import { useIsMobile } from '@/hooks/use-mobile';
import EventStammdatenSection from '@/features/event/components/EventStammdatenSection'; import EventStammdatenSection from '@/features/event/components/EventStammdatenSection';
import PromotionTemplatesSection from '@/features/event/components/PromotionTemplatesSection'; import PromotionTemplatesSection from '@/features/event/components/PromotionTemplatesSection';
import ArtistsSection from '@/features/event/components/ArtistsSection'; import ArtistsSection from '@/features/event/components/ArtistsSection';
import ScheduleSection from '@/features/event/components/ScheduleSection';
interface EventFormInlineProps { interface EventFormInlineProps {
onSuccess: () => void; onSuccess: () => void;
@ -61,7 +62,7 @@ const EventFormInline: React.FC<EventFormInlineProps> = ({ onSuccess, onCancel,
const [promotionOffsetDays, setPromotionOffsetDays] = useState<string>('2'); const [promotionOffsetDays, setPromotionOffsetDays] = useState<string>('2');
const [generatingLinkIndex, setGeneratingLinkIndex] = useState<number | null>(null); const [generatingLinkIndex, setGeneratingLinkIndex] = useState<number | null>(null);
const isMobile = useIsMobile(); const isMobile = useIsMobile();
const [activeTab, setActiveTab] = useState<'stammdaten' | 'promotion' | 'artists'>('stammdaten'); const [activeTab, setActiveTab] = useState<'stammdaten' | 'promotion' | 'artists' | 'schedule'>('stammdaten');
const navExpanded = !isMobile; const navExpanded = !isMobile;
useEffect(() => { useEffect(() => {
@ -484,7 +485,7 @@ const EventFormInline: React.FC<EventFormInlineProps> = ({ onSuccess, onCancel,
label, label,
Icon, Icon,
}: { }: {
tab: 'stammdaten' | 'promotion' | 'artists'; tab: 'stammdaten' | 'promotion' | 'artists' | 'schedule';
label: string; label: string;
Icon: React.ComponentType<{ className?: string }>; Icon: React.ComponentType<{ className?: string }>;
}) => { }) => {
@ -527,7 +528,7 @@ const EventFormInline: React.FC<EventFormInlineProps> = ({ onSuccess, onCancel,
label, label,
Icon, Icon,
}: { }: {
tab: 'stammdaten' | 'promotion' | 'artists'; tab: 'stammdaten' | 'promotion' | 'artists' | 'schedule';
label: string; label: string;
Icon: React.ComponentType<{ className?: string }>; Icon: React.ComponentType<{ className?: string }>;
}) => { }) => {
@ -575,6 +576,7 @@ const EventFormInline: React.FC<EventFormInlineProps> = ({ onSuccess, onCancel,
<MobileTabButton tab="stammdaten" label="Stammdaten" Icon={CalendarDays} /> <MobileTabButton tab="stammdaten" label="Stammdaten" Icon={CalendarDays} />
<MobileTabButton tab="promotion" label="Promotion" Icon={Megaphone} /> <MobileTabButton tab="promotion" label="Promotion" Icon={Megaphone} />
<MobileTabButton tab="artists" label="Künstler" Icon={Users} /> <MobileTabButton tab="artists" label="Künstler" Icon={Users} />
<MobileTabButton tab="schedule" label="Zeitplan" Icon={CalendarCheck2} />
</div> </div>
</div> </div>
</div> </div>
@ -601,6 +603,7 @@ const EventFormInline: React.FC<EventFormInlineProps> = ({ onSuccess, onCancel,
<NavItemButton tab="stammdaten" label="Stammdaten" Icon={CalendarDays} /> <NavItemButton tab="stammdaten" label="Stammdaten" Icon={CalendarDays} />
<NavItemButton tab="promotion" label="Promotion" Icon={Megaphone} /> <NavItemButton tab="promotion" label="Promotion" Icon={Megaphone} />
<NavItemButton tab="artists" label="Künstler" Icon={Users} /> <NavItemButton tab="artists" label="Künstler" Icon={Users} />
<NavItemButton tab="schedule" label="Zeitplan" Icon={CalendarCheck2} />
</div> </div>
</div> </div>
</aside> </aside>
@ -665,6 +668,8 @@ const EventFormInline: React.FC<EventFormInlineProps> = ({ onSuccess, onCancel,
}} }}
/> />
)} )}
{activeTab === 'schedule' && <ScheduleSection />}
</div> </div>
</div> </div>

View File

@ -0,0 +1,12 @@
import React from 'react';
const ScheduleSection: React.FC = () => {
return (
<div className="space-y-4">
<div className="text-sm font-medium">Zeitplan</div>
<div className="text-sm text-muted-foreground">Hier kommt später alles rund um Scheduling / Zeitplan rein.</div>
</div>
);
};
export default ScheduleSection;