Build a segmented control (button group) with an animated indicator.
01
01
Understand the problem
ReactUIState
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
Solve in
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
React solution
Complete solutionRun Playground
import React, { useState } from 'react';
import SegmentedControl from './src/SegmentedControl';
export default function App() {
const segments = [
{ label: 'Daily', value: 'daily' },
{ label: 'Weekly', value: 'weekly' },
{ label: 'Monthly', value: 'monthly' },
];
const [selectedPeriod, setSelectedPeriod] = useState('weekly');
const handlePeriodChange = (value) => {
setSelectedPeriod(value);
};
return (
<div style={{ fontFamily: 'sans-serif', padding: '20px' }}>
<h1>Segmented Control Demo</h1>
<p>Select a time period:</p>
<SegmentedControl
segments={segments}
initialValue={selectedPeriod}
onChange={handlePeriodChange}
/>
<p style={{ marginTop: '20px', fontSize: '18px' }}>
Currently selected: <strong>{selectedPeriod}</strong>
</p>
</div>
);
}05
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.