@airtable/blocks/ui#FieldPicker JavaScript Examples
The following examples show how to use
@airtable/blocks/ui#FieldPicker.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: settings.js From neighbor-express with MIT License | 6 votes |
function FieldSetter({
label,
description,
keyOrPath,
tableName,
...setterProps
}) {
const globalConfig = useGlobalConfig();
const base = useBase();
const table = base.getTableByNameIfExists(tableName);
function setField(newField) {
globalConfig.setAsync(keyOrPath, newField.id);
}
// If table is null or undefined, the FieldPicker will not render.
return (
<FormField label={label} description={description}>
<FieldPicker
table={table}
field={table.getFieldIfExists(globalConfig.get(keyOrPath))}
onChange={setField}
disabled={!globalConfig.hasPermissionToSet(keyOrPath)}
{...setterProps}
/>
</FormField>
);
}
Example #2
Source File: settings.js From neighbor-express with MIT License | 5 votes |
function AddTemplateVariableDialog({ table }) {
const [isDialogOpen, setIsDialogOpen] = useState(false);
const [field, setField] = useState("");
const [sendgrid, setSendgrid] = useState("");
const globalConfig = useGlobalConfig();
function save() {
globalConfig.setAsync(
["template_variables", table.name, field.id],
sendgrid
);
setField("");
setSendgrid("");
setIsDialogOpen(false);
}
return (
<>
<Button onClick={() => setIsDialogOpen(true)}>
Add new template variable
</Button>
{isDialogOpen && (
<Dialog onClose={() => setIsDialogOpen(false)} width="320px">
<Dialog.CloseButton />
<FormField
label="Airtable field"
description="What field contains the data you want to send to sendgrid?"
>
<FieldPicker
table={table}
field={field}
onChange={(newField) => setField(newField)}
/>
</FormField>
<FormField
label="Sendgrid reference"
description="How does the sengrid template refer to this data?"
>
<Input
value={sendgrid}
onChange={(e) => setSendgrid(e.target.value)}
/>
</FormField>
<Button onClick={save}>Save</Button>
</Dialog>
)}
</>
);
}