Metadata
import Metadata from 'frui/fields/Metadata';Props
The following props are accepted by Metadata.
| Name | Type | Required | Notes | 
|---|---|---|---|
| add | string | No | Add button text | 
| className | string | No | Standard HTML class names applied to the add button | 
| defaultValue | Object entries | No | Default value (uncontrolled) | 
| error | string|boolean | No | Any error message | 
| min | string|number | No | Used to set minimum number if type is number | 
| max | string|number | No | Used to set maximum number if type is number | 
| name | string | No | Used for react server components. | 
| placeholder | string|string[] | No | Placeholders for input values. | 
| onUpdate | Function | No | Event handler when value updates | 
| step | string|number | No | Used to set step number if type is number | 
| style | CSS Object | No | Standard CSS object applied to the add button | 
| type | string | No | Sets the type of value input | 
| value | Object entries | No | Default value (controlled) | 
Basics
The following is a basic example of a Metadata field.
<Metadata 
  add="Add Reference" 
  placeholder={['Enter Key', 'Enter Value']} 
  value={Object.entries({ foo: 'Foo', bar: 'Bar' })} 
/>You can set different value types using the type prop. Its value can be one of `type="text"`, `type="number"`, `type="date"`, `type="time"`, or `type="datetime"`.
<Metadata type="date" add="Add Date" />For `type="number"`, you can also set the min, max, and step props.
<Metadata type="number" min="0" max="100000" step="0.01" add="Add Number" />Events
The following example makes use of all the possible events for Metadata.
<Metadata add="Add Reference" onUpdate={value => alert(JSON.stringify(value))} />On Update
The onUpdate event is triggered when the value has been updated. The following arguments are passed to the event handler:
| Name | Type | Sample | 
|---|---|---|
| value | Object Entries | `[['foo', 'Foo'], ['bar', 'Bar']]` | 
Errors
You can pass the error prop to highlight the Metadata field red.
<Metadata error value={Object.entries({ foo: 'Foo', bar: 'Bar' })} />Custom Styles
You can add your own custom class to selects or use any of the respective frui-field-metadata-row, frui-field-metadata-remove, frui-field-metadata-name, frui-field-metadata-value, and frui-fieldset-add CSS classes.