Comments (4)
Thanks a lot for your help!!
from chakra-react-select.
I'll take a look at this! I'm not sure why this package would handle react nodes as labels differently than the original package. Do you have an example of what happens, like a CodeSandbox? I have templates in my Readme if you need. Also are you using TypeScript or vanilla JS?
from chakra-react-select.
After digging in, you are right that the limitation comes from the react-select. Maybe this issue should be closed and I should open a new one in react-select
from chakra-react-select.
Ah ok, that makes more sense. However, you aren't fully out of options. One way you could get the behavior you're looking for is by extending the Option
component exported from this package to render custom elements you keep on your options object. This feature is explained in depth in the react-select docs
Here's a quick example I made demonstrating how to do it: https://codesandbox.io/s/chakra-react-select-custom-option-d99s7?file=/example.js
import { Icon } from "@chakra-ui/react";
import { Select, chakraComponents } from "chakra-react-select";
import {
GiJellyBeans,
GiChocolateBar,
GiStrawberry,
GiCherry
} from "react-icons/gi";
const flavorOptions = [
{
value: "vanilla",
label: "Vanilla",
icon: <Icon as={GiJellyBeans} color="orange.700" mr={2} h={5} w={5} />
},
{
value: "chocolate",
label: "Chocolate",
icon: <Icon as={GiChocolateBar} color="yellow.800" mr={2} h={5} w={5} />
},
{
value: "strawberry",
label: "Strawberry",
icon: <Icon as={GiStrawberry} color="red.500" mr={2} h={5} w={5} />
},
{
value: "cherry",
label: "Cherry",
icon: <Icon as={GiCherry} color="red.600" mr={2} h={5} w={5} />
}
];
const customComponents = {
Option: ({ children, ...props }) => (
<chakraComponents.Option {...props}>
{props.data.icon} {children}
</chakraComponents.Option>
)
};
const Example = () => (
<Select
isMulti
name="flavors"
options={flavorOptions}
placeholder="Select some flavors..."
components={customComponents}
/>
);
If this suits your needs then feel free to close it for now. I don't plan on adding any features that fundamentally change the inner workings of react-select
, so you're better off asking there if it's something you'd like natively added.
However, if you have any more questions let me know! Or if you want me to make a TypeScript example instead I could do that as well.
from chakra-react-select.
Related Issues (20)
- [BUG] Users cannot make more than one selection in a multi selection dropdown at once when using a mobile phone HOT 2
- [BUG] Invalid font color when trying to change Input component HOT 8
- [BUG] Vitest test crashes when using chakra-react-select. HOT 5
- [BUG] Warning: Prop `id` did not match. Server: HOT 1
- [BUG] name and required does not work with standard form validation HOT 2
- [BUG]: `colorScheme` doesn't get passed to input variants HOT 4
- [BUG] `selectedOptionStyle` and `variant` are missing from `Select` types. HOT 16
- selectedOptionStyle with isMulti HOT 1
- [BUG] Breaking Change in chakraui/icon HOT 6
- Property "size" does not exist on type HOT 1
- [BUG] "default" is not exported by "node_modules/@chakra-ui/icon/dist/index.mjs", imported by "node_modules/chakra-react-select/dist/esm/chakra-components/menu.js". HOT 1
- [BUG] useBasicStyles type error on Vite HOT 1
- [BUG] Group Heading props does not work HOT 3
- [Feature request] Allow adding some related keywords to dropdown items so that they can be searched based on those keywords HOT 1
- [BUG] Problem with accessibility of the CreatableSelect (nested interactive elements) HOT 1
- [BUG] peerDependencies to Chakra v2 still show up HOT 5
- [BUG] Cannot start the application when using chakra-react-select with Vite HOT 2
- [BUG] Custom components automatically switch to Chakra style instead of keeping default HOT 1
- [BUG]: No `ValueType` export for the `onChange` handler HOT 11
- property data-testid is not render
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chakra-react-select.