1. 重構盤點流程:實作自動狀態轉換(盤點中/盤點完成)、整合按鈕為「儲存盤點結果」、更名 UI 狀態標籤。 2. 優化操作日誌: - 實作全域 ID 轉名稱邏輯(倉庫、使用者)。 - 合併單次操作的日誌記錄,避免重複產生。 - 修復日誌產生過程中的 Collection 修改錯誤。 3. 修正 TypeScript lint 錯誤(Index, Show 頁面)。
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { useState } from 'react';
|
|
import LogTable, { Activity } from './LogTable';
|
|
import ActivityDetailDialog from './ActivityDetailDialog';
|
|
import { History } from 'lucide-react';
|
|
|
|
interface Props {
|
|
activities: Activity[];
|
|
className?: string;
|
|
}
|
|
|
|
export default function ActivityLog({ activities, className = '' }: Props) {
|
|
const [selectedActivity, setSelectedActivity] = useState<Activity | null>(null);
|
|
const [isDetailOpen, setIsDetailOpen] = useState(false);
|
|
|
|
const handleViewDetail = (activity: Activity) => {
|
|
setSelectedActivity(activity);
|
|
setIsDetailOpen(true);
|
|
};
|
|
|
|
return (
|
|
<div className={`space-y-4 ${className}`}>
|
|
<div className="flex items-center gap-2">
|
|
<History className="h-5 w-5 text-gray-500" />
|
|
<h3 className="text-lg font-semibold text-gray-900">操作紀錄</h3>
|
|
</div>
|
|
|
|
<LogTable
|
|
activities={activities}
|
|
onViewDetail={handleViewDetail}
|
|
/>
|
|
|
|
<ActivityDetailDialog
|
|
open={isDetailOpen}
|
|
onOpenChange={setIsDetailOpen}
|
|
activity={selectedActivity}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|