From 7e99ea86182aac5789cde11c69cc8c67cf25d1fe Mon Sep 17 00:00:00 2001 From: Sai Avishkar Sreerama <74571829+ssreerama@users.noreply.github.com> Date: Fri, 12 Aug 2022 16:30:20 -0500 Subject: [PATCH] Adding a loader spinner before the options load (#20314) * Adding a loader spinner before the options load * removing the local var and using const * Reducing delay between button click and loader visibility, --- .../src/dialogs/publishOptionsDialog.ts | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/extensions/sql-database-projects/src/dialogs/publishOptionsDialog.ts b/extensions/sql-database-projects/src/dialogs/publishOptionsDialog.ts index 5b4b4452c5..8103b12c52 100644 --- a/extensions/sql-database-projects/src/dialogs/publishOptionsDialog.ts +++ b/extensions/sql-database-projects/src/dialogs/publishOptionsDialog.ts @@ -62,6 +62,24 @@ export class PublishOptionsDialog { private initializeDeploymentOptionsDialogTab(): void { this.optionsTab?.registerContent(async view => { + // create loading component + const loader = view.modelBuilder.loadingComponent() + .withProps({ + CSSStyles: { + 'margin-top': '50%' + } + }) + .component(); + + this.optionsFlexBuilder = view.modelBuilder.flexContainer() + .withLayout({ + flexFlow: 'column' + }).component(); + + // adding loading component to the flexcontainer + this.optionsFlexBuilder.addItem(loader); + await view.initializeModel(this.optionsFlexBuilder); + this.descriptionHeading = view.modelBuilder.table().withProps({ data: [], columns: [ @@ -104,14 +122,10 @@ export class PublishOptionsDialog { } })); - this.optionsFlexBuilder = view.modelBuilder.flexContainer() - .withLayout({ - flexFlow: 'column' - }).component(); - this.optionsFlexBuilder.addItem(this.optionsTable, { CSSStyles: { 'overflow': 'scroll', 'height': '65vh', 'padding-top': '2px' } }); this.optionsFlexBuilder.addItem(this.descriptionHeading, { CSSStyles: { 'font-weight': 'bold', 'height': '30px' } }); this.optionsFlexBuilder.addItem(this.descriptionText, { CSSStyles: { 'padding': '4px', 'margin-right': '10px', 'overflow': 'scroll', 'height': '10vh' } }); + loader.loading = false; await view.initializeModel(this.optionsFlexBuilder); // focus the first option await this.optionsTable.focus();