
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 22, 2020 10:27 AM
The Custom Blocks contest deadline is approaching! Do you have questions about releasing or debugging your block? We’re hosting our third live Ask Me Anything (AMA) session in this thread on Wednesday (6/24) at 11am PT.
Billy Littlefield and Tim Deng from our platform engineering team will be ready to answer any development questions you have.
We’ll be picking 3 questions at random to win a $40 Amazon gift card. Any solutions offered by the community will be included in the draw as well. You can even start posting your questions now, and we’ll be answering questions live from 11am - 11:30am PT on Wednesday. See you there!

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 10:20 AM
It appears that in order to have a remote release of a block, the block author needs to be a collaborator with creator permissions in the target base. Can you confirm this?
Is there a way to install a custom block without the developer being a creator?
Does the block remain after the developer/creator is no longer a collaborator?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 10:45 AM
There was a little discussion about external CSS files and Webpack in this topic thread and the answer seems to be: not currently possible. It seems like external CSS can only be loaded using loadCSSFromString
or loadCSSFromURLAsync
.
I’m curious to hear from the Airtable folks how block transpiling interacts with Webpack and/or other command-line tools.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 10:45 AM
I noticed that when I click the “Custom” button next to the name of a custom block, it shows
- the name of the block developer (based on the Airtable account)
- the email address of the block developer (based on the Airtable account)
- the date of the last update
Is all of this information set automatically? Can we change it to display a different name or email address?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 10:46 AM
I noticed that there is a version number in block.json
. Is this version number displayed to the block user anywhere?
Are there guidelines for where to display version information to the user?
Could it be included along with the contact info for the block developer when the “Custom” button is clicked?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 10:47 AM
It looks like the .block
folder lists remotes, including base app ids. I’d rather not include my app ids in a public git repository.
However, this folder is not included in the .gitignore file by default.
What are the implications of adding this folder to the .gitignore file?
How hard will it be for someone to re-create my custom block if I add this folder to .gitignore?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 11:02 AM
Hey y’all, Billy and I will be live for the next 30 minutes to answer your questions!

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 11:05 AM
Yes, you can use third party open source packages in the contest as long as you are using it in accordance with their license terms. You can refer to our contest rules if you have any further queries!

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 11:07 AM
Several times when I try to create a new block from the command line, I get npm enoent
errors, and can’t create the new block. I can’t tell any difference between when it works and when it doesn’t. Sometimes I have to come back hours later and try again.
Any insight?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 11:07 AM
Hi Kamille! The way that the @airtable/blocks-cli
builds the blocks is currently not configurable, so the webpack approach won’t work in the current state. The SDK provides a couple of ways to include CSS, though – loadCSSFromString & loadCSSFromURLAsync

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 24, 2020 11:13 AM
Hi Matthew!
Some good guidelines to follow:
- Disable interactions that the user doesn’t have permission for, rather than checking
onClick
- You can supplement this disabled state with a Tooltip, or including error text in a sticky footer
- Similarly, disable interactions if the settings configuration is invalid and would preclude the interaction from successfully completing. In this case, using a TextButton in a sticky footer to open the settings could be a nice touch.
- If the operation consists of multiple line-items, and only some are invalid, you should highlight the invalid items inline (potentially with a “quick-fix” button, depending on how complex the “fix” is)
- If you don’t know whether an operation will succeed until runtime, a “Results” screen showing successes & failures is a good strategy (similar to the SendGrid block)
We have a number of UI components that can help with some of these interactions this built into the SDK:
- ConfirmationDialog (and its sibling Dialog)
- Icon (eg name=“warning”)
- Similarly, Button and TextButton both accept an
icon
prop which can help illustrate intent, andButton
has adanger
variant
You’re also welcome to use third-party libraries as you would in other apps (e.g. npm install cool-ui-library
). If you have any feedback about the UI components that do exist in the SDK (see the docs site for a full list) we’d love to hear it!
