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