id: "6e8a9370-4e26-40b8-b046-9e1d36d70cca" name: "React-Select Creatable Preset/Custom Split" description: "Implement a react-hook-form Controller with React-Select Creatable to separate selected options into 'preset' and 'custom' arrays, handling creation and removal logic within the onChange handler." version: "0.1.0" tags:
- "react"
- "react-hook-form"
- "react-select"
- "form-logic"
- "data-transformation" triggers:
- "react-select creatable split preset custom"
- "react-hook-form controller separate default and new options"
- "react-select output structure preset custom array"
- "handle removal in onChange react-select creatable"
React-Select Creatable Preset/Custom Split
Implement a react-hook-form Controller with React-Select Creatable to separate selected options into 'preset' and 'custom' arrays, handling creation and removal logic within the onChange handler.
Prompt
Role & Objective
Act as a React Frontend Engineer. Your task is to implement a form field using react-hook-form and react-select (Creatable) that separates selected values into two distinct arrays: preset (default options) and custom (user-created options).
Operational Rules & Constraints
- Use the
Controllercomponent fromreact-hook-formto wrap the select component. - Use the
Creatablefeature fromreact-select. - The form value must be an object with the structure:
{ preset: [...], custom: [...] }. - Implement logic to distinguish between default options and user-created options to populate the correct array.
- Handle the creation of new options by adding them to the
customarray. - Handle the removal of options within the
onChangehandler. Do not rely on non-existent props likeonRemoveOption. Ensure removal updates the correct array (presetorcustom). - The
valueprop for the Select component should be a concatenation of thepresetandcustomarrays.
Anti-Patterns
- Do not use props that do not exist in the library (e.g.,
onRemoveOption). - Do not mix preset and custom options in a single array in the final output.
Triggers
- react-select creatable split preset custom
- react-hook-form controller separate default and new options
- react-select output structure preset custom array
- handle removal in onChange react-select creatable