import React, { useState, useEffect } from 'react' import { View, Text, ScrollView } from '@tarojs/components' import Taro from '@tarojs/taro' import { listShopMessage } from '@/api/shop/shopMessage' import type { ShopMessage } from '@/api/shop/shopMessage' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' definePageConfig({ navigationBarTitleText: '消息通知', }) const NotificationPage: React.FC = () => { const [list, setList] = useState([]) const [loading, setLoading] = useState(false) const [finished, setFinished] = useState(false) const [page, setPage] = useState(1) useEffect(() => { loadList(1) }, []) const loadList = async (p: number) => { if (loading) return setLoading(true) try { const res = await listShopMessage({ page: p, limit: 10, }) if (res?.list) { if (p === 1) { setList(res.list) } else { setList(prev => [...prev, ...res.list]) } setFinished(res.list.length < 10) setPage(p) } } catch (err) { console.error('加载通知失败', err) Taro.showToast({ title: '加载失败', icon: 'none' }) } finally { setLoading(false) } } const handleLoadMore = () => { if (!finished && !loading) { loadList(page + 1) } } return ( {list.length === 0 ? ( ) : ( {list.map(item => ( {!item.isRead && } {item.title} {item.createdAt} {item.content} ))} )} ) } export default NotificationPage