完成Work组件的界面和一些小修改
> 1. 修改优化路由守卫
> 2. 去除拦截器中的调试信息
> 3. 修改头部导航条下拉菜单的样式增加图标。
> 4. work组件现在使用mock数据
Change-Id: Ic602a35bb02e645a0d5253c5cbd12a68d70bfb33
diff --git a/src/feature/work/hooks.ts b/src/feature/work/hooks.ts
new file mode 100644
index 0000000..f07189e
--- /dev/null
+++ b/src/feature/work/hooks.ts
@@ -0,0 +1,34 @@
+import { useCallback, useState } from "react";
+import { useNavigate } from "react-router";
+import type {
+ WorkFormData,
+ BasicInfo,
+ CoverInfo,
+ VersionFormData,
+ ArtworkCategory
+} from './types';
+
+// ==================== Hook ====================
+export const useCreateWorkForm = () => {
+ const navigate = useNavigate();
+ const [currentStep, setCurrentStep] = useState<number>(0);
+ const [formData, setFormData] = useState<WorkFormData>({
+ basicInfo: {
+ artworkName: '',
+ artworkCategory: '概念设计' as ArtworkCategory,
+ artworkDescription: ''
+ },
+ coverInfo: {},
+ versions: [],
+ });
+
+ const handleUpdateFormData = useCallback((field: keyof WorkFormData, value: BasicInfo | CoverInfo | VersionFormData[]) => {
+ setFormData(prev => ({ ...prev, [field]: value }));
+ }, []);
+
+ const handleNext = useCallback(() => setCurrentStep(prev => Math.min(prev + 1, 3)), []);
+ const handlePrev = useCallback(() => setCurrentStep(prev => Math.max(prev - 1, 0)), []);
+ const handlePublish = useCallback(() => navigate('/work/new-work-id'), [navigate]);
+
+ return { currentStep, formData, handleUpdateFormData, handleNext, handlePrev, handlePublish };
+};
\ No newline at end of file