diff --git a/packages/web/src/perspectives/PerspectiveTable.svelte b/packages/web/src/perspectives/PerspectiveTable.svelte index c08c56202..53d892b08 100644 --- a/packages/web/src/perspectives/PerspectiveTable.svelte +++ b/packages/web/src/perspectives/PerspectiveTable.svelte @@ -7,13 +7,18 @@ import debug from 'debug'; import contextMenu from '../utility/contextMenu'; import DataFilterControl from '../datagrid/DataFilterControl.svelte'; + import ErrorInfo from '../elements/ErrorInfo.svelte'; + import FormStyledButton from '../buttons/FormStyledButton.svelte'; const dbg = debug('dbgate:PerspectivaTable'); export let root: PerspectiveTreeNode; export let loadedCounts; + export let setConfig; + let dataRows; let domWrapper; + let errorMessage; async function loadLevelData(node: PerspectiveTreeNode, parentRows: any[], counts) { dbg('load level data', counts); @@ -79,10 +84,15 @@ // console.log('LOADING', node); if (!node) return; const rows = []; - await loadLevelData(node, rows, counts); - dataRows = rows; - - dbg('display rows', rows); + try { + await loadLevelData(node, rows, counts); + dataRows = rows; + dbg('display rows', rows); + errorMessage = null; + } catch (err) { + errorMessage = err.message; + dataRows = null; + } // console.log('DISPLAY ROWS', rows); // const rows = await node.loadLevelData(); // for (const child of node.childNodes) { @@ -168,6 +178,22 @@ {/if} + + {#if errorMessage} + + + + setConfig( + cfg => ({ + ...cfg, + filters: {}, + }), + true + )} + /> + {/if}