import { useState, useCallback } from 'react'; export const useGentleLoading = (initialLoading = false) => { const [loading, setLoading] = useState(initialLoading); const [refreshing, setRefreshing] = useState(false); const startLoading = useCallback(() => { setLoading(true); }, []); const stopLoading = useCallback(() => { setLoading(false); }, []); const startRefreshing = useCallback(() => { setRefreshing(true); }, []); const stopRefreshing = useCallback(() => { setRefreshing(false); }, []); const withGentleLoading = useCallback(async (asyncFunction) => { try { setRefreshing(true); const result = await asyncFunction(); return result; } finally { setRefreshing(false); } }, []); return { loading, refreshing, startLoading, stopLoading, startRefreshing, stopRefreshing, withGentleLoading }; };