إنجاز: تفعيل خاصية استعادة كلمة المرور وإعادة تعيينها
- إضافة نقاط نهاية لخاصيتي استعادة كلمة المرور وإعادة تعيينها في الواجهة الخلفية. - إنشاء اختبارات لخاصية إعادة تعيين كلمة المرور لضمان كفاءتها وأمانها. - تطوير صفحات واجهة المستخدم لخاصيتي استعادة كلمة المرور وإعادة تعيينها مع معالجة النماذج. - دمج حدود تحميل ديناميكية لأنواع ملفات مختلفة بناءً على خطط المستخدمين. - تقديم أداة جديدة لتغيير حجم الصور مع إمكانية تعديل الأبعاد وإعدادات الجودة. - تحديث نظام التوجيه والتنقل ليشمل أدوات جديدة وميزات مصادقة. - تحسين تجربة المستخدم من خلال معالجة الأخطاء ورسائل التغذية الراجعة المناسبة. - إضافة دعم التدويل للميزات الجديدة باللغات الإنجليزية والعربية والفرنسية.
This commit is contained in:
45
frontend/src/hooks/useConfig.ts
Normal file
45
frontend/src/hooks/useConfig.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { useState, useEffect, useCallback } from 'react';
|
||||
import { TOOL_LIMITS_MB } from '@/config/toolLimits';
|
||||
|
||||
interface FileLimitsMb {
|
||||
pdf: number;
|
||||
word: number;
|
||||
image: number;
|
||||
video: number;
|
||||
homepageSmartUpload: number;
|
||||
}
|
||||
|
||||
interface ConfigData {
|
||||
file_limits_mb: FileLimitsMb;
|
||||
max_upload_mb: number;
|
||||
}
|
||||
|
||||
const API_BASE = import.meta.env.VITE_API_URL || '';
|
||||
|
||||
/**
|
||||
* Fetches dynamic upload limits from /api/config.
|
||||
* Falls back to the hardcoded TOOL_LIMITS_MB on error.
|
||||
*/
|
||||
export function useConfig() {
|
||||
const [limits, setLimits] = useState<FileLimitsMb>(TOOL_LIMITS_MB);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
const fetchConfig = useCallback(async () => {
|
||||
try {
|
||||
const res = await fetch(`${API_BASE}/api/config`, { credentials: 'include' });
|
||||
if (!res.ok) throw new Error('config fetch failed');
|
||||
const data: ConfigData = await res.json();
|
||||
setLimits(data.file_limits_mb);
|
||||
} catch {
|
||||
// Keep hardcoded fallback
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
fetchConfig();
|
||||
}, [fetchConfig]);
|
||||
|
||||
return { limits, loading, refetch: fetchConfig };
|
||||
}
|
||||
Reference in New Issue
Block a user