Works everywhere
DynamicList works in both server and client environments. Always use the standard import (e.g. @prokodo/ui/dynamic-list) — the library detects the runtime automatically.
DynamicList
DynamicList renders a repeatable set of input rows that users can add or remove at runtime. Ideal for managing arrays of values inside forms (e.g. phone numbers, addresses, tags).
Overview
import { DynamicList } from "@prokodo/ui/dynamic-list"
;<DynamicList
label="Phone numbers"
name="phones"
value={phones}
onChange={setPhones}
renderItem={(item, onChange) => (
<Input value={item} onChange={e => onChange(e.target.value)} />
)}
/>
Live PreviewOpen in Storybook ↗
Import
import { DynamicList } from "@prokodo/ui/dynamic-list"
CSS:
import "@prokodo/ui/dynamic-list.css"
Props
| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
fields | DynamicListField[] | — | ✅ | Field definitions for each row. |
value | Record<string, unknown>[] | — | — | Controlled list of row values. |
name | string | — | — | Name for hidden form input. |
label | string | — | — | Label text shown above the list. |
labelProps | LabelProps | — |