mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 01:26:01 +00:00
master/detail view - handle reload chidlren
This commit is contained in:
@@ -391,6 +391,9 @@ export default function DataGridCore(props) {
|
|||||||
loadNextData();
|
loadNextData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (props.masterLoadedTime && props.masterLoadedTime > loadedTime) {
|
||||||
|
display.reload();
|
||||||
|
}
|
||||||
if (display.cache.refreshTime > loadedTime) {
|
if (display.cache.refreshTime > loadedTime) {
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
@@ -426,10 +429,10 @@ export default function DataGridCore(props) {
|
|||||||
}, [jslid]);
|
}, [jslid]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
if (props.onRefSourceRowsChanged) {
|
if (props.onRefSourceRowsChanged && ((loadedRows && loadedRows.length > 0) || isLoadedAll)) {
|
||||||
props.onRefSourceRowsChanged(getSelectedRowData());
|
props.onRefSourceRowsChanged(getSelectedRowData(), loadedTime);
|
||||||
}
|
}
|
||||||
}, [selectedCells, props.refReloadToken]);
|
}, [selectedCells, props.refReloadToken, loadedRows && loadedRows[0]]);
|
||||||
|
|
||||||
// const handleCloseInplaceEditor = React.useCallback(
|
// const handleCloseInplaceEditor = React.useCallback(
|
||||||
// mode => {
|
// mode => {
|
||||||
|
|||||||
@@ -22,12 +22,14 @@ export default function TableDataGrid({
|
|||||||
setConfig = undefined,
|
setConfig = undefined,
|
||||||
cache = undefined,
|
cache = undefined,
|
||||||
setCache = undefined,
|
setCache = undefined,
|
||||||
|
masterLoadedTime = undefined,
|
||||||
}) {
|
}) {
|
||||||
const [myConfig, setMyConfig] = React.useState(createGridConfig());
|
const [myConfig, setMyConfig] = React.useState(createGridConfig());
|
||||||
const [childConfig, setChildConfig] = React.useState(createGridConfig());
|
const [childConfig, setChildConfig] = React.useState(createGridConfig());
|
||||||
const [myCache, setMyCache] = React.useState(createGridCache());
|
const [myCache, setMyCache] = React.useState(createGridCache());
|
||||||
const [childCache, setChildCache] = React.useState(createGridCache());
|
const [childCache, setChildCache] = React.useState(createGridCache());
|
||||||
const [refReloadToken, setRefReloadToken] = React.useState(0);
|
const [refReloadToken, setRefReloadToken] = React.useState(0);
|
||||||
|
const [myLoadedTime, setMyLoadedTime] = React.useState(0);
|
||||||
|
|
||||||
const connection = useConnectionInfo({ conid });
|
const connection = useConnectionInfo({ conid });
|
||||||
const [reference, setReference] = React.useState(null);
|
const [reference, setReference] = React.useState(null);
|
||||||
@@ -70,7 +72,8 @@ export default function TableDataGrid({
|
|||||||
}, [conid, database, display]);
|
}, [conid, database, display]);
|
||||||
|
|
||||||
const handleRefSourcedRowsChanged = React.useCallback(
|
const handleRefSourcedRowsChanged = React.useCallback(
|
||||||
(selectedRows) => {
|
(selectedRows, loadedTime) => {
|
||||||
|
setMyLoadedTime(loadedTime);
|
||||||
if (!reference) return;
|
if (!reference) return;
|
||||||
const filters = {
|
const filters = {
|
||||||
...(config || myConfig).filters,
|
...(config || myConfig).filters,
|
||||||
@@ -112,6 +115,7 @@ export default function TableDataGrid({
|
|||||||
onReferenceClick={setReference}
|
onReferenceClick={setReference}
|
||||||
onRefSourceRowsChanged={reference ? handleRefSourcedRowsChanged : null}
|
onRefSourceRowsChanged={reference ? handleRefSourcedRowsChanged : null}
|
||||||
refReloadToken={refReloadToken.toString()}
|
refReloadToken={refReloadToken.toString()}
|
||||||
|
masterLoadedTime={masterLoadedTime}
|
||||||
/>
|
/>
|
||||||
{reference && (
|
{reference && (
|
||||||
<TableDataGrid
|
<TableDataGrid
|
||||||
@@ -128,6 +132,7 @@ export default function TableDataGrid({
|
|||||||
setConfig={setChildConfig}
|
setConfig={setChildConfig}
|
||||||
cache={childCache}
|
cache={childCache}
|
||||||
setCache={setChildCache}
|
setCache={setChildCache}
|
||||||
|
masterLoadedTime={myLoadedTime}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</VerticalSplitter>
|
</VerticalSplitter>
|
||||||
|
|||||||
@@ -13,4 +13,5 @@ export interface DataGridProps {
|
|||||||
onReferenceClick?: (def: GridReferenceDefinition) => void;
|
onReferenceClick?: (def: GridReferenceDefinition) => void;
|
||||||
onRefSourceRowsChanged?: Function;
|
onRefSourceRowsChanged?: Function;
|
||||||
refReloadToken?: string;
|
refReloadToken?: string;
|
||||||
|
masterLoadedTime?: number
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user