mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-15 19:10:47 +02:00
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import { useState, useEffect } from 'react';
|
|
import apiClient from '@app/services/apiClient';
|
|
|
|
export interface FooterInfo {
|
|
analyticsEnabled?: boolean;
|
|
termsAndConditions?: string;
|
|
privacyPolicy?: string;
|
|
accessibilityStatement?: string;
|
|
cookiePolicy?: string;
|
|
impressum?: string;
|
|
}
|
|
|
|
/**
|
|
* Hook to fetch public footer configuration data.
|
|
* This endpoint is always accessible without authentication.
|
|
*/
|
|
export function useFooterInfo() {
|
|
const [footerInfo, setFooterInfo] = useState<FooterInfo | null>(null);
|
|
const [loading, setLoading] = useState(true);
|
|
const [error, setError] = useState<Error | null>(null);
|
|
|
|
useEffect(() => {
|
|
const fetchFooterInfo = async () => {
|
|
try {
|
|
setLoading(true);
|
|
const response = await apiClient.get<FooterInfo>('/api/v1/ui-data/footer-info', {
|
|
suppressErrorToast: true,
|
|
} as any);
|
|
setFooterInfo(response.data);
|
|
setError(null);
|
|
} catch (err) {
|
|
console.error('[useFooterInfo] Failed to fetch footer info:', err);
|
|
setError(err as Error);
|
|
// Set defaults on error
|
|
setFooterInfo({
|
|
analyticsEnabled: false,
|
|
});
|
|
} finally {
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
fetchFooterInfo();
|
|
}, []);
|
|
|
|
return { footerInfo, loading, error };
|
|
}
|