}
parentRecord={props.organization}
field="pricing_text"
label="Pricing Text"
placeholder="Enter pricing text..."
helpText="Default text if no pricing info in plan"
/>
```
## Grouping Fields with Container
```typescript
record={props.asset}
field="organization_id"
displayField="organization_name"
label="Organization"
modelName="organization"
modelSearchField="q"
modelDisplayField="label"
/>
```
## Complete Example
```typescript
import { observer } from "mobx-react-lite";
import { AssetModel } from "@/models/asset";
import { OrganizationModel } from "@/models/organization";
import { constants } from "@/models/constants";
import {
DetailFieldContainer,
DetailFieldText,
DetailFieldTextArea,
DetailFieldSelect,
DetailFieldModelSearchSelect,
DetailFieldCheckbox,
DetailFieldDate,
} from "@/ui/common/components/form/details";
interface AssetDetailsProps {
asset: AssetModel;
}
export const AssetDetails = observer((props: AssetDetailsProps) => {
return (
record={props.asset}
field="organization_id"
displayField="organization_name"
label="Organization"
modelName="organization"
modelSearchField="q"
modelDisplayField="label"
modelSearchFilters={{ disabled: "0" }}
reloadOnSave={true}
/>
);
});
```
## Key Rules
1. Always generate component with `#ui_code_tools`
2. Group related fields logically with `DetailFieldContainer`
3. Use search variants for large option lists (>50 items)
4. Use `displayField` for computed string versions of IDs
5. Pass `parentRecord` when editing JSONB nested objects
6. Constants are model-specific: `constants.{model}.{field}`
7. Ask before implementing if field importance is unclear