import React, { useMemo, useRef, useState, forwardRef, useImperativeHandle } from 'react' import { FlatList, type FlatListProps, RefreshControl, View } from 'react-native' // import { useMusicList } from '@/store/list/hook' import CommentFloor from './CommentFloor' import { createStyle } from '@/utils/tools' import { useTheme } from '@/store/theme/hook' import { type Comment } from '../utils' import { useI18n } from '@/lang' import Text from '@/components/common/Text' type FlatListType = FlatListProps export interface ListProps { onRefresh: () => void onLoadMore: () => void } export interface ListType { setList: (list: Comment[]) => void getList: () => Comment[] setStatus: (val: Status) => void } export type Status = 'loading' | 'refreshing' | 'end' | 'error' | 'idle' const List = forwardRef(({ onRefresh, onLoadMore, }, ref) => { // const t = useI18n() const theme = useTheme() const flatListRef = useRef(null) const [currentList, setList] = useState([]) const [status, setStatus] = useState('idle') // const currentListIdRef = useRef('') // console.log('render comment list') useImperativeHandle(ref, () => ({ setList(list) { setList(list) }, getList() { return currentList }, setStatus(val) { setStatus(val) }, })) const handleLoadMore = () => { if (status != 'idle') return onLoadMore() } const renderItem: FlatListType['renderItem'] = ({ item }) => const getkey: FlatListType['keyExtractor'] = item => item.id const refreshControl = useMemo(() => ( ), [status, onRefresh, theme]) const footerComponent = useMemo(() => { let label: FooterLabel switch (status) { case 'refreshing': return null case 'loading': label = 'list_loading' break case 'end': label = 'list_end' break case 'error': label = 'list_error' break case 'idle': label = null break } return