'Add-on triggers duplicate and stack a card that navigates back (🡠) to itself

Building a Workspace Add-on for Google Drive, that lists files.

To my knowledge, this required two triggers.

  • homepageTrigger - when no files are selected
  • onItemsSelectedTrigger - handling selected files

I want them to show the same card, using the same function/code.

When the add-on loads, with selected files, both triggers, and the same Card gets duplicated and stacked. The top card navigates back (🡠) to itself. Going back creates a popup warning. Bad!

Can I avoid creating duplicate cards?

function homepageTrigger(e) { return dashboard(e) }
function onItemsSelectedTrigger(e) { return dashboard(e) }

function dashboard(e) {
  let dashboard = CardService.newCardBuilder().setName("CARD_DASHBOARD")
  selectedFromE(e).forEach(file => {
    dashboard.addWidget(widgetFromFile(file))
  })
  return dashboard.build() 
}

appsscript.json (essentials)

"addOns": {
  "common": {
    "homepageTrigger": {
      "runFunction": "homepageTrigger",
      "enabled": true
    }
  },
  "drive": {
    "onItemsSelectedTrigger": {
      "runFunction": "onItemsSelectedTrigger"
    }
  }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source