mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-20 19:08:21 +00:00
feat: metadata checkbox (#6295)
* feat: metadata checkbox * feat: optimize checkbox * feat: update code * feat: update code --------- Co-authored-by: 杨国璇 <ygx@Hello-word.local>
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { toaster } from '@seafile/sf-metadata-ui-component';
|
||||
import toaster from '../../../../components/toast';
|
||||
import { EVENT_BUS_TYPE } from '../../constants';
|
||||
import { CommonlyUsedHotkey, getErrorMsg } from '../../_basic';
|
||||
import { CommonlyUsedHotkey } from '../../_basic';
|
||||
import { gettext } from '../../utils';
|
||||
import { useMetadata } from '../../hooks';
|
||||
import TableTool from './table-tool';
|
||||
import TableMain from './table-main';
|
||||
import RecordDetailsDialog from '../record-details-dialog';
|
||||
import { PER_LOAD_NUMBER, MAX_LOAD_NUMBER } from '../../constants';
|
||||
import { Utils } from '../../../../utils/utils';
|
||||
|
||||
import './index.css';
|
||||
|
||||
@@ -38,17 +40,39 @@ const Container = () => {
|
||||
setLoadingMore(true);
|
||||
|
||||
try {
|
||||
await store.loadMore();
|
||||
await store.loadMore(PER_LOAD_NUMBER);
|
||||
setLoadingMore(false);
|
||||
} catch (error) {
|
||||
const errorMsg = getErrorMsg(error);
|
||||
toaster.danger(gettext(errorMsg));
|
||||
const errorMsg = Utils.getErrorMsg(error);
|
||||
toaster.danger(errorMsg);
|
||||
setLoadingMore(false);
|
||||
return;
|
||||
}
|
||||
|
||||
}, [metadata, store]);
|
||||
|
||||
const loadAll = useCallback(async (maxLoadNumber, callback) => {
|
||||
if (!metadata.hasMore) return;
|
||||
setLoadingMore(true);
|
||||
const rowsCount = metadata.row_ids.length;
|
||||
const loadNumber = rowsCount % MAX_LOAD_NUMBER !== 0 ? MAX_LOAD_NUMBER - rowsCount % MAX_LOAD_NUMBER : MAX_LOAD_NUMBER;
|
||||
try {
|
||||
await store.loadMore(loadNumber);
|
||||
setLoadingMore(false);
|
||||
} catch (error) {
|
||||
const errorMsg = Utils.getErrorMsg(error);
|
||||
toaster.danger(errorMsg);
|
||||
setLoadingMore(false);
|
||||
return;
|
||||
}
|
||||
if (store.data.hasMore && store.data.row_ids.length < maxLoadNumber) {
|
||||
loadAll(maxLoadNumber, callback);
|
||||
} else {
|
||||
typeof callback === 'function' && callback(store.data.hasMore);
|
||||
setLoadingMore(false);
|
||||
}
|
||||
}, [metadata, store]);
|
||||
|
||||
const modifyRecords = useCallback((rowIds, idRowUpdates, idOriginalRowUpdates, idOldRowData, idOriginalOldRowData, isCopyPaste = false) => {
|
||||
// todo: store op
|
||||
}, []);
|
||||
@@ -144,7 +168,7 @@ const Container = () => {
|
||||
return (
|
||||
<>
|
||||
<div className="sf-metadata-wrapper">
|
||||
<TableTool view={metadata.view} columns={metadata.columns} modifyFilters={modifyFilters} modifySorts={modifySorts} modifyGroupbys={modifyGroupbys} modifyHiddenColumns={modifyHiddenColumns} />
|
||||
<TableTool view={metadata.view} modifyFilters={modifyFilters} modifySorts={modifySorts} modifyGroupbys={modifyGroupbys} modifyHiddenColumns={modifyHiddenColumns} />
|
||||
<div className="sf-metadata-main">
|
||||
{errorMsg && (<div className="d-center-middle error">{gettext(errorMsg)}</div>)}
|
||||
{!errorMsg && (
|
||||
@@ -161,6 +185,7 @@ const Container = () => {
|
||||
getTableContentWidth={getTableContentWidth}
|
||||
getTableContentLeft={getTableContentLeft}
|
||||
getAdjacentRowsIds={getAdjacentRowsIds}
|
||||
loadAll={loadAll}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
Reference in New Issue
Block a user