/**
* useUserFavorites Hook 使用示例
*
* 这个示例展示了如何使用 useUserFavorites Hook 来获取用户的收藏列表
*/
import { useUserFavorites } from '@/hooks'
// 示例1:基本用法
function MyFavoritesList() {
const {
favorites,
loading,
error,
execute,
refetch,
loadMore,
hasMore,
} = useUserFavorites()
useEffect(() => {
// 初始加载
execute()
}, [])
if (loading && !favorites.length) {
return
}
if (error) {
return
}
return (
(
)}
onEndReached={() => {
if (hasMore && !loading) {
loadMore()
}
}}
onEndReachedThreshold={0.5}
ListFooterComponent={() => loading ? : null}
/>
)
}
// 示例2:带自定义参数
function MyFavoritesWithParams() {
const { favorites, loading } = useUserFavorites({
limit: 50, // 每页50条
})
// ...
}
// 示例3:带搜索功能
function SearchableFavorites() {
const [searchQuery, setSearchQuery] = useState('')
const { favorites, execute, loading } = useUserFavorites()
const handleSearch = (query: string) => {
setSearchQuery(query)
execute({ search: query })
}
// ...
}
// 示例4:下拉刷新
function RefreshableFavorites() {
const { favorites, loading, refreshing, refetch } = useUserFavorites()
const handleRefresh = () => {
refetch()
}
return (
)
}
// 示例5:使用返回的完整数据
function FavoritesWithStats() {
const { data, favorites } = useUserFavorites()
return (
Total Favorites: {data?.total || 0}
Current Page: {data?.page || 1}
Per Page: {data?.limit || 20}
{/* 列表... */}
)
}
export type { UserFavoriteItem } from '@/hooks'