sort on display status (#24252)
Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
@@ -30,6 +30,7 @@ import Popover from '@/app/components/base/popover'
|
||||
import Confirm from '@/app/components/base/confirm'
|
||||
import Tooltip from '@/app/components/base/tooltip'
|
||||
import Toast, { ToastContext } from '@/app/components/base/toast'
|
||||
import type { Item } from '@/app/components/base/select'
|
||||
import type { ColorMap, IndicatorProps } from '@/app/components/header/indicator'
|
||||
import Indicator from '@/app/components/header/indicator'
|
||||
import { asyncRunSafe } from '@/utils'
|
||||
@@ -426,6 +427,8 @@ type IDocumentListProps = {
|
||||
pagination: PaginationProps
|
||||
onUpdate: () => void
|
||||
onManageMetadata: () => void
|
||||
statusFilter: Item
|
||||
onStatusFilterChange: (filter: string) => void
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -440,6 +443,7 @@ const DocumentList: FC<IDocumentListProps> = ({
|
||||
pagination,
|
||||
onUpdate,
|
||||
onManageMetadata,
|
||||
statusFilter,
|
||||
}) => {
|
||||
const { t } = useTranslation()
|
||||
const { formatTime } = useTimestamp()
|
||||
@@ -451,6 +455,7 @@ const DocumentList: FC<IDocumentListProps> = ({
|
||||
const [localDocs, setLocalDocs] = useState<LocalDoc[]>(documents)
|
||||
const [sortField, setSortField] = useState<'name' | 'word_count' | 'hit_count' | 'created_at' | null>('created_at')
|
||||
const [sortOrder, setSortOrder] = useState<'asc' | 'desc'>('desc')
|
||||
|
||||
const {
|
||||
isShowEditModal,
|
||||
showEditModal,
|
||||
@@ -465,12 +470,22 @@ const DocumentList: FC<IDocumentListProps> = ({
|
||||
})
|
||||
|
||||
useEffect(() => {
|
||||
let filteredDocs = documents
|
||||
|
||||
if (statusFilter.value !== 'all') {
|
||||
filteredDocs = filteredDocs.filter(doc =>
|
||||
typeof doc.display_status === 'string'
|
||||
&& typeof statusFilter.value === 'string'
|
||||
&& doc.display_status.toLowerCase() === statusFilter.value.toLowerCase(),
|
||||
)
|
||||
}
|
||||
|
||||
if (!sortField) {
|
||||
setLocalDocs(documents)
|
||||
setLocalDocs(filteredDocs)
|
||||
return
|
||||
}
|
||||
|
||||
const sortedDocs = [...documents].sort((a, b) => {
|
||||
const sortedDocs = [...filteredDocs].sort((a, b) => {
|
||||
let aValue: any
|
||||
let bValue: any
|
||||
|
||||
@@ -506,7 +521,7 @@ const DocumentList: FC<IDocumentListProps> = ({
|
||||
})
|
||||
|
||||
setLocalDocs(sortedDocs)
|
||||
}, [documents, sortField, sortOrder])
|
||||
}, [documents, sortField, sortOrder, statusFilter])
|
||||
|
||||
const handleSort = (field: 'name' | 'word_count' | 'hit_count' | 'created_at') => {
|
||||
if (sortField === field) {
|
||||
|
||||
Reference in New Issue
Block a user