1
0
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:
杨国璇
2024-07-04 16:30:57 +08:00
committed by GitHub
parent ef96b2bd6b
commit 1eb709023e
36 changed files with 173 additions and 133 deletions

View File

@@ -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>
)}