MCPcopy Create free account
hub / github.com/adobe/react-spectrum / Meter

Function Meter

starters/hooks/src/Meter.tsx:7–36  ·  view source on GitHub ↗
(props: AriaMeterProps)

Source from the content-addressed store, hash-verified

5import './Form.css';
6
7export function Meter(props: AriaMeterProps) {
8 let {label, value = 0, minValue = 0, maxValue = 100} = props;
9 /*- begin highlight -*/
10 let {meterProps, labelProps} = useMeter(props);
11 /*- end highlight -*/
12
13 // Calculate the width of the meter fill as a percentage.
14 let percentage = ((value - minValue) / (maxValue - minValue)) * 100;
15
16 return (
17 <div {...meterProps} className="react-aria-Meter">
18 <label className="react-aria-Label" {...labelProps}>
19 {label}
20 </label>
21 <span className="value">{meterProps['aria-valuetext']}</span>
22 <div className="track inset">
23 <div
24 className="fill"
25 style={
26 {
27 width: percentage + '%',
28 '--fill-color':
29 percentage < 70 ? 'var(--green)' : percentage < 90 ? 'var(--orange)' : 'var(--red)'
30 } as CSSProperties & {'--fill-color': string}
31 }
32 />
33 </div>
34 </div>
35 );
36}

Callers

nothing calls this directly

Calls 1

useMeterFunction · 0.90

Tested by

no test coverage detected