diff --git a/packages/web/src/formview/FormView.svelte b/packages/web/src/formview/FormView.svelte
index e8f6e5136..1abafb1ff 100644
--- a/packages/web/src/formview/FormView.svelte
+++ b/packages/web/src/formview/FormView.svelte
@@ -36,6 +36,7 @@
import { getActiveTabId } from '../stores';
import contextMenu from '../utility/contextMenu';
import createReducer from '../utility/createReducer';
+ import resizeObserver from '../utility/resizeObserver';
export let config;
export let setConfig;
@@ -159,6 +160,8 @@
function createMenu() {
return [{ command: 'dataForm.switchToTable' }];
}
+
+ $: console.log('rowHeight', rowHeight);
@@ -167,27 +170,20 @@
{#each chunk as col, rowIndex}
- {#if chunkIndex == 0 && rowIndex == 0}
-
- {:else}
-
- {/if}
+
+
{
- console.log('LOAD ROW');
if (isLoadingData) return;
let newLoadedRow = false;
if (formDisplay.config.formViewKeyRequested || formDisplay.config.formViewKey) {
diff --git a/packages/web/src/utility/resizeObserver.ts b/packages/web/src/utility/resizeObserver.ts
new file mode 100644
index 000000000..cd5b47a96
--- /dev/null
+++ b/packages/web/src/utility/resizeObserver.ts
@@ -0,0 +1,47 @@
+import _ from 'lodash';
+
+export default function resizeObserver(node, observerEnabled) {
+ const measure = () => {
+ const rect = node.getBoundingClientRect();
+
+ node.dispatchEvent(
+ new CustomEvent('resize', {
+ detail: {
+ width: rect.width,
+ height: rect.height,
+ },
+ })
+ );
+ };
+
+ let resizeObserver = null;
+
+ function doUpdate() {
+ if (observerEnabled && !resizeObserver) {
+ resizeObserver = new window['ResizeObserver'](() => {
+ measure();
+ });
+ resizeObserver.observe(node);
+ }
+ if (!observerEnabled && resizeObserver) {
+ resizeObserver.disconnect();
+ resizeObserver = null;
+ }
+ }
+
+ doUpdate();
+ if (observerEnabled) measure();
+
+ return {
+ destroy() {
+ if (resizeObserver) {
+ resizeObserver.disconnect();
+ resizeObserver = null;
+ }
+ },
+ update(value) {
+ observerEnabled = value;
+ doUpdate();
+ },
+ };
+}