From 1b2b4dba88e30c080f88600bdb2d2557a88068f5 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Mon, 27 Mar 2023 14:43:29 +0100 Subject: [PATCH] Revert skeleton loaders and restore required setting functionality (#9979) --- packages/bbui/src/Skeleton/Skeleton.svelte | 56 ---- packages/bbui/src/index.js | 1 - packages/client/manifest.json | 13 - .../src/components/BlockComponent.svelte | 1 - .../client/src/components/Component.svelte | 52 ++-- packages/client/src/components/Router.svelte | 4 - .../app/ComponentPlaceholder.svelte | 5 +- .../src/components/app/DataProvider.svelte | 71 ++--- .../client/src/components/app/Repeater.svelte | 13 +- .../client/src/components/app/Skeleton.svelte | 31 -- .../components/app/blocks/CardsBlock.svelte | 232 +++++++------- .../components/app/blocks/TableBlock.svelte | 284 +++++++++--------- .../src/components/app/forms/Field.svelte | 7 - .../src/components/app/forms/Form.svelte | 43 ++- .../src/components/app/table/Table.svelte | 15 +- 15 files changed, 339 insertions(+), 489 deletions(-) delete mode 100644 packages/bbui/src/Skeleton/Skeleton.svelte delete mode 100644 packages/client/src/components/app/Skeleton.svelte diff --git a/packages/bbui/src/Skeleton/Skeleton.svelte b/packages/bbui/src/Skeleton/Skeleton.svelte deleted file mode 100644 index 92357a8c75..0000000000 --- a/packages/bbui/src/Skeleton/Skeleton.svelte +++ /dev/null @@ -1,56 +0,0 @@ -
-
- -
-
- - diff --git a/packages/bbui/src/index.js b/packages/bbui/src/index.js index d7457508fd..0c18156052 100644 --- a/packages/bbui/src/index.js +++ b/packages/bbui/src/index.js @@ -4,7 +4,6 @@ import "./bbui.css" import "@spectrum-css/icon/dist/index-vars.css" // Components -export { default as Skeleton } from "./Skeleton/Skeleton.svelte" export { default as Input } from "./Form/Input.svelte" export { default as Stepper } from "./Form/Stepper.svelte" export { default as TextArea } from "./Form/TextArea.svelte" diff --git a/packages/client/manifest.json b/packages/client/manifest.json index 2579cdedaa..0ac7f6808f 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -2346,7 +2346,6 @@ ] }, "stringfield": { - "skeleton": false, "name": "Text Field", "icon": "Text", "styles": ["size"], @@ -2436,7 +2435,6 @@ ] }, "numberfield": { - "skeleton": false, "name": "Number Field", "icon": "123", "styles": ["size"], @@ -2492,7 +2490,6 @@ ] }, "passwordfield": { - "skeleton": false, "name": "Password Field", "icon": "LockClosed", "styles": ["size"], @@ -2548,7 +2545,6 @@ ] }, "optionsfield": { - "skeleton": false, "name": "Options Picker", "icon": "Menu", "styles": ["size"], @@ -2715,7 +2711,6 @@ ] }, "multifieldselect": { - "skeleton": false, "name": "Multi-select Picker", "icon": "ViewList", "styles": ["size"], @@ -2876,7 +2871,6 @@ ] }, "booleanfield": { - "skeleton": false, "name": "Checkbox", "icon": "SelectBox", "editable": true, @@ -2955,7 +2949,6 @@ ] }, "longformfield": { - "skeleton": false, "name": "Long Form Field", "icon": "TextAlignLeft", "styles": ["size"], @@ -3033,7 +3026,6 @@ ] }, "datetimefield": { - "skeleton": false, "name": "Date Picker", "icon": "Date", "styles": ["size"], @@ -3113,7 +3105,6 @@ ] }, "codescanner": { - "skeleton": false, "name": "Barcode/QR Scanner", "icon": "Camera", "styles": ["size"], @@ -3275,7 +3266,6 @@ ] }, "attachmentfield": { - "skeleton": false, "name": "Attachment", "icon": "Attach", "styles": ["size"], @@ -3338,7 +3328,6 @@ ] }, "relationshipfield": { - "skeleton": false, "name": "Relationship Picker", "icon": "TaskList", "styles": ["size"], @@ -3400,7 +3389,6 @@ ] }, "jsonfield": { - "skeleton": false, "name": "JSON Field", "icon": "Brackets", "styles": ["size"], @@ -3591,7 +3579,6 @@ } }, "table": { - "skeleton": false, "name": "Table", "icon": "Table", "illegalChildren": ["section"], diff --git a/packages/client/src/components/BlockComponent.svelte b/packages/client/src/components/BlockComponent.svelte index 841aeb219a..4f720e2931 100644 --- a/packages/client/src/components/BlockComponent.svelte +++ b/packages/client/src/components/BlockComponent.svelte @@ -24,7 +24,6 @@ // to render this part of the block, taking advantage of binding enrichment $: id = `${block.id}-${context ?? rand}` $: instance = { - _blockElementHasChildren: $$slots?.default ?? false, _component: `@budibase/standard-components/${type}`, _id: id, _instanceName: name || type[0].toUpperCase() + type.slice(1), diff --git a/packages/client/src/components/Component.svelte b/packages/client/src/components/Component.svelte index d94199bc49..c0b8febd96 100644 --- a/packages/client/src/components/Component.svelte +++ b/packages/client/src/components/Component.svelte @@ -29,7 +29,6 @@ import Placeholder from "components/app/Placeholder.svelte" import ScreenPlaceholder from "components/app/ScreenPlaceholder.svelte" import ComponentPlaceholder from "components/app/ComponentPlaceholder.svelte" - import Skeleton from "components/app/Skeleton.svelte" export let instance = {} export let isLayout = false @@ -39,7 +38,6 @@ // Get parent contexts const context = getContext("context") - const loading = getContext("loading") const insideScreenslot = !!getContext("screenslot") // Create component context @@ -172,15 +170,6 @@ $: pad = pad || (interactive && hasChildren && inDndPath) $: $dndIsDragging, (pad = false) - // Determine whether we should render a skeleton loader for this component - $: showSkeleton = - $loading && - definition?.name !== "Screenslot" && - children.length === 0 && - !instance._blockElementHasChildren && - !definition?.block && - definition?.skeleton !== false - // Update component context $: store.set({ id, @@ -507,12 +496,7 @@ }) -{#if showSkeleton} - -{:else if constructor && initialSettings && (visible || inSelectedPath) && !builderHidden} +{#if constructor && initialSettings && (visible || inSelectedPath) && !builderHidden}
- - {#if hasMissingRequiredSettings} - - {:else if children.length} - {#each children as child (child._id)} - - {/each} - {:else if emptyState} - {#if isScreen} - - {:else} - + {#if hasMissingRequiredSettings} + + {:else} + + {#if children.length} + {#each children as child (child._id)} + + {/each} + {:else if emptyState} + {#if isScreen} + + {:else} + + {/if} + {:else if isBlock} + {/if} - {:else if isBlock} - - {/if} - + + {/if}
{/if} diff --git a/packages/client/src/components/Router.svelte b/packages/client/src/components/Router.svelte index e81bb20de5..551a564094 100644 --- a/packages/client/src/components/Router.svelte +++ b/packages/client/src/components/Router.svelte @@ -1,5 +1,4 @@ {#if $builderStore.inBuilder && requiredSetting} -
+
Add the {requiredSetting.label} setting to start using your component - @@ -32,7 +33,7 @@ } .component-placeholder mark { background-color: var(--spectrum-global-color-gray-400); - padding: 0 2px; + padding: 0 4px; border-radius: 2px; } .component-placeholder .spectrum-Link { diff --git a/packages/client/src/components/app/DataProvider.svelte b/packages/client/src/components/app/DataProvider.svelte index 1b4504e689..62a0588172 100644 --- a/packages/client/src/components/app/DataProvider.svelte +++ b/packages/client/src/components/app/DataProvider.svelte @@ -1,7 +1,6 @@ {#if $component.empty} - {:else if !$loading && rows.length === 0} -
{noRowsMessage}
- {:else} + {:else if rows.length > 0} {#each rows as row, index} {/each} + {:else if loaded && noRowsMessage} +
{noRowsMessage}
{/if}
diff --git a/packages/client/src/components/app/Skeleton.svelte b/packages/client/src/components/app/Skeleton.svelte deleted file mode 100644 index 5c247bf3e4..0000000000 --- a/packages/client/src/components/app/Skeleton.svelte +++ /dev/null @@ -1,31 +0,0 @@ - - -
- - - -
diff --git a/packages/client/src/components/app/blocks/CardsBlock.svelte b/packages/client/src/components/app/blocks/CardsBlock.svelte index 795e62eb31..3f42375f0b 100644 --- a/packages/client/src/components/app/blocks/CardsBlock.svelte +++ b/packages/client/src/components/app/blocks/CardsBlock.svelte @@ -37,6 +37,7 @@ let repeaterId let schema let enrichedSearchColumns + let schemaLoaded = false $: fetchSchema(dataSource) $: enrichSearchColumns(searchColumns, schema).then( @@ -77,135 +78,138 @@ enrichRelationships: true, }) } + schemaLoaded = true } - - - {#if title || enrichedSearchColumns?.length || showTitleButton} - - +{#if schemaLoaded} + + + {#if title || enrichedSearchColumns?.length || showTitleButton} - {#if enrichedSearchColumns?.length} - {#each enrichedSearchColumns as column, idx} - - {/each} - {/if} - {#if showTitleButton} - - {/if} - - - {/if} - - - + > + + + {#if enrichedSearchColumns?.length} + {#each enrichedSearchColumns as column, idx} + + {/each} + {/if} + {#if showTitleButton} + + {/if} + + + {/if} + + + + - - + +{/if} diff --git a/packages/client/src/components/app/blocks/TableBlock.svelte b/packages/client/src/components/app/blocks/TableBlock.svelte index 91c266b434..509ad49663 100644 --- a/packages/client/src/components/app/blocks/TableBlock.svelte +++ b/packages/client/src/components/app/blocks/TableBlock.svelte @@ -37,6 +37,7 @@ let schema let primaryDisplay let enrichedSearchColumns + let schemaLoaded = false $: fetchSchema(dataSource) $: enrichSearchColumns(searchColumns, schema).then( @@ -91,6 +92,7 @@ enrichRelationships: true, }) } + schemaLoaded = true } const getNormalFields = schema => { @@ -114,160 +116,162 @@ } - - - {#if title || enrichedSearchColumns?.length || showTitleButton} - - +{#if schemaLoaded} + + + {#if title || enrichedSearchColumns?.length || showTitleButton} - {#if enrichedSearchColumns?.length} - {#each enrichedSearchColumns as column, idx} + + + {#if enrichedSearchColumns?.length} + {#each enrichedSearchColumns as column, idx} + + {/each} + {/if} + {#if showTitleButton} - {/each} - {/if} - {#if showTitleButton} - - {/if} + {/if} + - - {/if} - + {/if} + order={1} + > + + + {#if clickBehaviour === "details"} + + + + {/if} + {#if showTitleButton && titleButtonClickBehaviour === "new"} + + + + {/if} - {#if clickBehaviour === "details"} - - - - {/if} - {#if showTitleButton && titleButtonClickBehaviour === "new"} - - - - {/if} - - + +{/if} diff --git a/packages/client/src/components/app/forms/Field.svelte b/packages/client/src/components/app/forms/Field.svelte index 435805cee8..5f11757c9c 100644 --- a/packages/client/src/components/app/forms/Field.svelte +++ b/packages/client/src/components/app/forms/Field.svelte @@ -1,7 +1,6 @@ -{#key resetKey} - - - -{/key} +{#if loaded} + {#key resetKey} + + + + {/key} +{/if} diff --git a/packages/client/src/components/app/table/Table.svelte b/packages/client/src/components/app/table/Table.svelte index 6e5cd6c5cf..07b64b4107 100644 --- a/packages/client/src/components/app/table/Table.svelte +++ b/packages/client/src/components/app/table/Table.svelte @@ -1,6 +1,6 @@