code: func New(key string, config map[string]string, cbs *Callbacks) react.Element {
  	if config == nil {
  		fmt.Println("Nil config for DownloadItemsBtn")
  		return nil
  	}
  	downloadHelper, ok := config["downloadHelper"]
  	if !ok {
  		fmt.Println("No downloadHelper in config for DownloadItemsBtn")
  		return nil
  	}
  	if cbs == nil {
  		fmt.Println("Nil callbacks for DownloadItemsBtn")
  		return nil
  	}
  	if cbs.GetSelection == nil {
  		fmt.Println("Nil getSelection callback for DownloadItemsBtn")
  		return nil
  	}
  	if key == "" {
  		// A key is only needed in the context of a list, which is why
  		// it is up to the caller to choose it. Just creating it here for
  		// the sake of consistency.
  		key = "downloadItemsButton"
  	}
  	props := DownloadItemsBtnProps{
  		Key:            key,
  		Callbacks:      cbs,
  		downloadHelper: downloadHelper,
  	}
  	return buildDownloadItemsBtnElem(props)
  }
docs: //go:generate reactGen
  // New returns the button element. It should be used as the entry point, to
  // create the needed React element.
  //
  // key is the id for when the button is in a list, see
  // https://facebook.github.io/react/docs/lists-and-keys.html
  //
  // config is the web UI config that was fetched from the server.
  //
  // cbs is a wrapper around the callback functions required by this component.