
Security News
Django Joins curl in Pushing Back on AI Slop Security Reports
Django has updated its security policies to reject AI-generated vulnerability reports that include fabricated or unverifiable content.
react-switchable-next
Advanced tools
This is forked from react-switchable with some changes to make it work with react 18 and convert it to function component.
npm install react-switchable-next --save
import Switch, { Item } from "react-switchable-next";
import "react-switchable-next/dist/index.esm.css";
<Switch
name="temperature"
onItemChanged={(newValue) => console.log("The new value is => ", newValue)}
>
<Item value="Hot">Hot</Item>
<Item value="Cold">Cold</Item>
</Switch>;
You can have as many Item children as you can fit:
import Switch, { Item } from "react-switchable-next";
import "react-switchable-next/dist/index.esm.css";
<div>
<h1>What is the capital of Venezuela ?</h1>
<Switch name="countries" onItemChanged={(capital) => checkAnswer(capital)}>
<Item value="London">London</Item>
<Item value="Caracas">Caracas</Item>
<Item value="Lagos">Lagos</Item>
<Item value="Beijing">Beijing</Item>
<Item value="Moscow">Moscow</Item>
</Switch>
</div>;
By default the switchable component manages which <Item />
is active internally. You can change that by setting the active
attribute in any <Item />
component.
Data flow from parent to child :
import React, { useState } from "react";
const App = () => {
const [selectedCountryIndex, setSelectedCountryIndex] = useState(1);
const countries = [
{ value: "Russia" },
{ value: "Nigeria" },
{ value: "Venezuela" },
{ value: "France" },
];
return (
<Switch
name="countries"
onItemSelected={(selectedIndex) => setSelectedCountryIndex(selectedIndex)}
>
{countries.map((country, index) => (
<Item key={country.value} active={index === selectedCountryIndex} value={country.value}>
{country.value}
</Item>
))}
</Switch>
);
};
export default App;
Data flow from child to parent:
import React, { useState } from "react";
import Switch, { Item } from "react-switchable-next";
const App = () => {
const [selectedCountry, setSelectedCountry] = useState("Nigeria");
return (
<Switch name="countries" onItemChanged={(country) => setSelectedCountry(country)}>
<Item value="Russia">Russia</Item>
<Item default value="Nigeria">
Nigeria
</Item>
<Item value="Venezuela">Venezuela</Item>
<Item value="France">France</Item>
</Switch>
);
};
export default App;
Created with accessibility in mind. The following gif
was made using MacOS
Sierra VoiceOver
.
Prop | Type | Required | Default | Description |
---|---|---|---|---|
name | string | Yes | "" | Unique global identifier. |
children | Array[Item] | Yes | [] | A list of Items. |
onItemChanged | function | No | "" | Fires after the selection of an Item. |
onItemSelected | function | No | "" | Fires when an Item is selected. |
disable | boolean | No | false | Disables the switch. |
arrowSelection | boolean | No | true | Enables the selection of Items with arrow keys. |
customOverlay | Overlay | No | undefined | Enables the use of a custom overlay React component. |
Inherits all other properties assigned from the parent component
Prop | Type | Required | Default | Description |
---|---|---|---|---|
value | string | Yes | "" | Represents the Item value. |
active | boolean | No | false | Sets the Item as active. |
disable | boolean | No | false | Disables the Item. |
default | boolean | No | false | Which Item should be active by default. |
Inherits all other properties assigned from the parent component.
Prop | Type | Required | Default | Description |
---|---|---|---|---|
selectedIndex | number | Yes | "" | The selected Item index. |
totalItems | number | Yes | "" | The total number of Items. |
Inherits all other properties assigned from the parent component.
All contributions are welcome.
MIT license @Alvaro Bernal G.
FAQs
react-switchable with new updates
The npm package react-switchable-next receives a total of 6 weekly downloads. As such, react-switchable-next popularity was classified as not popular.
We found that react-switchable-next demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Django has updated its security policies to reject AI-generated vulnerability reports that include fabricated or unverifiable content.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.