diff --git a/src/renderer/components/schedules/SchedulesView.tsx b/src/renderer/components/schedules/SchedulesView.tsx index 99860842..c11a3ab1 100644 --- a/src/renderer/components/schedules/SchedulesView.tsx +++ b/src/renderer/components/schedules/SchedulesView.tsx @@ -25,6 +25,7 @@ import { } from 'lucide-react'; import { useShallow } from 'zustand/react/shallow'; +import { LaunchTeamDialogLoadingFallback } from '../team/dialogs/LaunchTeamDialogLoadingFallback'; import { ScheduleRunLogDialog } from '../team/schedule/ScheduleRunLogDialog'; import { ScheduleRunRow } from '../team/schedule/ScheduleRunRow'; import { ScheduleStatusBadge } from '../team/schedule/ScheduleStatusBadge'; @@ -588,7 +589,16 @@ export const SchedulesView = (): React.JSX.Element => { {/* Create/Edit Dialog */} {dialogOpen && ( - + + } + > {launchDialogOpen && ( - + + } + > {launchDialogOpen && ( - + + } + > + setLaunchDialogOpen(false)} + /> + } + > {launchDialogMode === 'relaunch' ? ( void; +} + +export const LaunchTeamDialogLoadingFallback = ({ + mode, + teamName, + isEditingSchedule = false, + onClose, +}: LaunchTeamDialogLoadingFallbackProps): React.JSX.Element => { + const { t } = useAppTranslation('team'); + const { t: tCommon } = useAppTranslation('common'); + + const title = + mode === 'schedule' + ? isEditingSchedule + ? t('launch.title.editSchedule') + : t('launch.title.createSchedule') + : mode === 'relaunch' + ? t('launch.title.relaunch') + : t('launch.title.launch'); + + const description = + mode === 'schedule' + ? isEditingSchedule && teamName + ? t('launch.description.editSchedule', { team: teamName }) + : teamName + ? t('launch.description.createScheduleForTeam', { team: teamName }) + : t('launch.description.createSchedule') + : mode === 'relaunch' + ? t('launch.description.relaunchPrefix') + : t('launch.description.launchPrefix'); + + return ( + { + if (!nextOpen) { + onClose(); + } + }} + > + + + {title} + + {mode === 'schedule' ? ( + description + ) : ( + <> + {description} {teamName}{' '} + {mode === 'relaunch' + ? t('launch.description.relaunchSuffix') + : t('launch.description.launchSuffix')} + + )} + + +
+ + {tCommon('states.loading')} +
+
+
+ ); +}; diff --git a/src/renderer/components/team/schedule/ScheduleSection.tsx b/src/renderer/components/team/schedule/ScheduleSection.tsx index 8375e9c3..b8c39491 100644 --- a/src/renderer/components/team/schedule/ScheduleSection.tsx +++ b/src/renderer/components/team/schedule/ScheduleSection.tsx @@ -19,6 +19,8 @@ import { } from 'lucide-react'; import { useShallow } from 'zustand/react/shallow'; +import { LaunchTeamDialogLoadingFallback } from '../dialogs/LaunchTeamDialogLoadingFallback'; + import { ScheduleEmptyState } from './ScheduleEmptyState'; import { ScheduleRunLogDialog } from './ScheduleRunLogDialog'; import { ScheduleRunRow } from './ScheduleRunRow'; @@ -311,7 +313,16 @@ export const ScheduleSection = ({ teamName }: ScheduleSectionProps): React.JSX.E {/* Create/Edit Dialog */} {dialogOpen && ( - + + } + >