diff --git a/packages/web/src/elements/ScrollableTableControl.svelte b/packages/web/src/elements/ScrollableTableControl.svelte index d5931a404..b7a966d3d 100644 --- a/packages/web/src/elements/ScrollableTableControl.svelte +++ b/packages/web/src/elements/ScrollableTableControl.svelte @@ -48,6 +48,20 @@ if (event.keyCode == keycodes.upArrow) { selectedIndex = Math.max(0, selectedIndex - 1); } + if (event.keyCode == keycodes.pageUp) { + selectedIndex -= Math.floor(clientHeight / headerHeight) - 1; + if (selectedIndex < 0) selectedIndex = 0; + } + if (event.keyCode == keycodes.pageDown) { + selectedIndex += Math.floor(clientHeight / headerHeight) - 1; + if (selectedIndex >= rows.length) selectedIndex = rows.length - 1; + } + if (event.keyCode == keycodes.home) { + selectedIndex = 0; + } + if (event.keyCode == keycodes.end) { + selectedIndex = rows.length - 1; + } }; function scrollToIndex(index) { diff --git a/packages/web/src/tabs/CompareModelTab.svelte b/packages/web/src/tabs/CompareModelTab.svelte index 52a940f71..f8e9efac2 100644 --- a/packages/web/src/tabs/CompareModelTab.svelte +++ b/packages/web/src/tabs/CompareModelTab.svelte @@ -19,7 +19,7 @@ import SqlEditor from '../query/SqlEditor.svelte'; import useEditorData from '../query/useEditorData'; import { extensions } from '../stores'; - import { computeDbDiffRows } from '../utility/computeDiffRows'; + import { computeDbDiffRows, computeTableDiffColumns } from '../utility/computeDiffRows'; import { useConnectionInfo, useDatabaseInfo } from '../utility/metadataLoaders'; export let tabid; @@ -48,6 +48,12 @@ $: targetDbPaired = matchPairedObjects(sourceDb, targetDb, dbDiffOptions); $: diffRows = computeDbDiffRows(sourceDb, targetDbPaired, dbDiffOptions, driver); + $: diffColumns = computeTableDiffColumns( + diffRows[pairIndex]?.source, + diffRows[pairIndex]?.target, + dbDiffOptions, + driver + ); $: sqlPreview = getAlterTableScript( diffRows[pairIndex]?.source, @@ -150,6 +156,25 @@ + + + + + + + diff --git a/packages/web/src/utility/computeDiffRows.ts b/packages/web/src/utility/computeDiffRows.ts index b01f7c617..73918e9b6 100644 --- a/packages/web/src/utility/computeDiffRows.ts +++ b/packages/web/src/utility/computeDiffRows.ts @@ -55,8 +55,8 @@ export function computeTableDiffColumns( opts: DbDiffOptions, driver: EngineDriver ) { - if (!sourceTable || !sourceTable || !driver) return []; - return computeDiffRowsCore(sourceTable.columns, targetTable.columns, (a, b) => + if (!driver) return []; + return computeDiffRowsCore(sourceTable?.columns || [], targetTable?.columns || [], (a, b) => testEqualColumns(a, b, true, true, opts) ).map(row => ({ ...row,