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

Function cycleValue

packages/react-stately/src/datepicker/IncompleteDate.ts:340–368  ·  view source on GitHub ↗
(value: number, amount: number, min: number, max: number, round = false)

Source from the content-addressed store, hash-verified

338}
339
340function cycleValue(value: number, amount: number, min: number, max: number, round = false) {
341 if (round) {
342 value += Math.sign(amount);
343
344 if (value < min) {
345 value = max;
346 }
347
348 let div = Math.abs(amount);
349 if (amount > 0) {
350 value = Math.ceil(value / div) * div;
351 } else {
352 value = Math.floor(value / div) * div;
353 }
354
355 if (value > max) {
356 value = min;
357 }
358 } else {
359 value += amount;
360 if (value < min) {
361 value = max - (min - value - 1);
362 } else if (value > max) {
363 value = min + (value - max - 1);
364 }
365 }
366
367 return value;
368}
369
370function toHourCycle(hour: number, hourCycle: HourCycle): [number | null, number] {
371 let dayPeriod: number | null = hour >= 12 ? 1 : 0;

Callers 1

cycleMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected