diff --git a/src/components/config/ConnectionsForm.tsx b/src/components/config/ConnectionsForm.tsx new file mode 100644 index 0000000..7ce0629 --- /dev/null +++ b/src/components/config/ConnectionsForm.tsx @@ -0,0 +1,47 @@ +import React from 'react'; +import { GitHubConfigForm } from './GitHubConfigForm'; +import { GiteaConfigForm } from './GiteaConfigForm'; +import { Separator } from '../ui/separator'; +import type { GitHubConfig, GiteaConfig } from '@/types/config'; + +interface ConnectionsFormProps { + githubConfig: GitHubConfig; + giteaConfig: GiteaConfig; + setGithubConfig: (update: GitHubConfig | ((prev: GitHubConfig) => GitHubConfig)) => void; + setGiteaConfig: (update: GiteaConfig | ((prev: GiteaConfig) => GiteaConfig)) => void; + onAutoSaveGitHub?: (config: GitHubConfig) => Promise; + onAutoSaveGitea?: (config: GiteaConfig) => Promise; + isAutoSavingGitHub?: boolean; + isAutoSavingGitea?: boolean; +} + +export function ConnectionsForm({ + githubConfig, + giteaConfig, + setGithubConfig, + setGiteaConfig, + onAutoSaveGitHub, + onAutoSaveGitea, + isAutoSavingGitHub, + isAutoSavingGitea, +}: ConnectionsFormProps) { + return ( +
+ + + + + +
+ ); +} diff --git a/src/components/config/ScheduleAndCleanupForm.tsx b/src/components/config/ScheduleAndCleanupForm.tsx new file mode 100644 index 0000000..8177e0d --- /dev/null +++ b/src/components/config/ScheduleAndCleanupForm.tsx @@ -0,0 +1,47 @@ +import React from 'react'; +import { ScheduleConfigForm } from './ScheduleConfigForm'; +import { DatabaseCleanupConfigForm } from './DatabaseCleanupConfigForm'; +import { Separator } from '../ui/separator'; +import type { ScheduleConfig, DatabaseCleanupConfig } from '@/types/config'; + +interface ScheduleAndCleanupFormProps { + scheduleConfig: ScheduleConfig; + cleanupConfig: DatabaseCleanupConfig; + setScheduleConfig: (update: ScheduleConfig | ((prev: ScheduleConfig) => ScheduleConfig)) => void; + setCleanupConfig: (update: DatabaseCleanupConfig | ((prev: DatabaseCleanupConfig) => DatabaseCleanupConfig)) => void; + onAutoSaveSchedule?: (config: ScheduleConfig) => Promise; + onAutoSaveCleanup?: (config: DatabaseCleanupConfig) => Promise; + isAutoSavingSchedule?: boolean; + isAutoSavingCleanup?: boolean; +} + +export function ScheduleAndCleanupForm({ + scheduleConfig, + cleanupConfig, + setScheduleConfig, + setCleanupConfig, + onAutoSaveSchedule, + onAutoSaveCleanup, + isAutoSavingSchedule, + isAutoSavingCleanup, +}: ScheduleAndCleanupFormProps) { + return ( +
+ + + + + +
+ ); +}