Refactor History component

This commit is contained in:
gpt-engineer-app[bot]
2025-10-06 16:37:56 +00:00
parent 3cda4b1fde
commit f86b772eca
7 changed files with 179 additions and 206 deletions

View File

@@ -0,0 +1,81 @@
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { EntityHistoryTimeline, HistoryEvent } from './EntityHistoryTimeline';
import { EntityVersionHistory } from '@/components/versioning/EntityVersionHistory';
import { FormerNamesSection } from './FormerNamesSection';
import { RideNameHistory } from '@/types/database';
interface EntityHistoryTabsProps {
entityType: 'park' | 'ride' | 'company';
entityId: string;
entityName: string;
events: HistoryEvent[];
formerNames?: RideNameHistory[];
currentName?: string;
}
const getHistoryLabel = (entityType: string) => {
switch (entityType) {
case 'park':
return 'Park History';
case 'ride':
return 'Ride History';
case 'company':
return 'Company History';
default:
return 'History';
}
};
const getHistoryValue = (entityType: string) => {
switch (entityType) {
case 'park':
return 'park-history';
case 'ride':
return 'ride-history';
case 'company':
return 'company-history';
default:
return 'entity-history';
}
};
export function EntityHistoryTabs({
entityType,
entityId,
entityName,
events,
formerNames,
currentName,
}: EntityHistoryTabsProps) {
const historyValue = getHistoryValue(entityType);
const historyLabel = getHistoryLabel(entityType);
return (
<Tabs defaultValue={historyValue} className="w-full">
<TabsList className="grid w-full grid-cols-2">
<TabsTrigger value={historyValue}>{historyLabel}</TabsTrigger>
<TabsTrigger value="version-history">Version History</TabsTrigger>
</TabsList>
<TabsContent value={historyValue} className="mt-6 space-y-6">
{formerNames && formerNames.length > 0 && currentName && (
<FormerNamesSection
currentName={currentName}
formerNames={formerNames}
entityType={entityType}
/>
)}
<EntityHistoryTimeline events={events} entityName={entityName} />
</TabsContent>
<TabsContent value="version-history" className="mt-6">
<EntityVersionHistory
entityType={entityType}
entityId={entityId}
entityName={entityName}
/>
</TabsContent>
</Tabs>
);
}