Lines Matching refs:values
14 values: Value[] | EnumValue[];
18 function valuesAreEnumValues(values: (Value | EnumValue)[]): values is EnumValue[] {
19 return values.every((value) => typeof value === 'object' && 'name' in value && 'value' in value);
22 function useEnumValues(values: Value[] | EnumValue[]): values is EnumValue[] {
23 return useMemo(() => valuesAreEnumValues(values), [values]);
26 function getSuccessorCyclically(values: Value[], value: Value) {
27 const valueIdx = values.findIndex((v) => v === value);
28 const successorIdx = (valueIdx + 1) % values.length;
29 return values[successorIdx];
35 export default function EnumButton({ value, onChange, values, disabled }: Props) {
36 const valuesAreEnums = useEnumValues(values);
39 const plainValues = valuesAreEnums ? values.map((v) => v.value) : values;
42 }, [valuesAreEnums, onChange, value, values]);
48 {valuesAreEnums ? values.find((element) => element.value === value)?.name : value}