diff --git a/app/client/ui/RightPanel.ts b/app/client/ui/RightPanel.ts index 567fd78b..0dfab821 100644 --- a/app/client/ui/RightPanel.ts +++ b/app/client/ui/RightPanel.ts @@ -123,6 +123,8 @@ export class RightPanel extends Disposable { return use(this._pageWidgetType) === 'form'; }); + private _hasActiveWidget = Computed.create(this, (use) => Boolean(use(this._pageWidgetType))); + // Returns the active section if it's valid, null otherwise. private _validSection = Computed.create(this, (use) => { const sec = use(this._gristDoc.viewModel.activeSection); @@ -253,7 +255,7 @@ export class RightPanel extends Disposable { dom.create(this._buildPageFormHeader.bind(this)), dom.create(this._buildPageWidgetContent.bind(this)), ]; - } else { + } else if (use(this._hasActiveWidget)) { return [ dom.create(this._buildPageWidgetHeader.bind(this)), dom.create(this._buildPageWidgetContent.bind(this)), diff --git a/test/nbrowser/RawData.ts b/test/nbrowser/RawData.ts index d3bb3258..606530ab 100644 --- a/test/nbrowser/RawData.ts +++ b/test/nbrowser/RawData.ts @@ -32,6 +32,12 @@ describe('RawData', function () { assert.deepEqual(uiTables, tables); }); + it('shows blank creator panel', async function () { + await gu.toggleSidePanel('right', 'open'); + assert.isEmpty(await driver.find('.test-right-panel').getText()); + await gu.toggleSidePanel('right', 'close'); + }); + it('shows row counts of all tables', async function () { assert.deepEqual(await getRawTableRows(), [ '4,079',