UNPKG

@zohodesk/components

Version:

In this Package, we Provide Some Basic Components to Build Web App

83 lines (74 loc) 1.93 kB
/** * Methods ** */ import { getIsNewValueType, getDayDetails, getIsNumberTyped, getIsDeleteTyped } from "./index"; import { getKeyValue } from "../../utils/Common"; export function getChangedDay(values, event, focusOrders, keyActions) { const { keyCode, which } = event; const { day = '' /*month = '', year = ''*/ } = values; let isChanged = false; let newDay = Number.parseInt(day) || 0; // const newMonth = Number.parseInt(month) || 0; // const newYear = Number.parseInt(year) || 0; const { focusOrder } = focusOrders; let newFocusOrder = focusOrder; const isNewType = getIsNewValueType(focusOrders, keyActions); const { startPoint, endPoint /*getDayEnd(newMonth, newYear);*/ } = getDayDetails(); if (keyCode === 38) { //up arrow if (newDay === endPoint || !newDay) { isChanged = true; newDay = startPoint; } else if (newDay) { isChanged = true; newDay += 1; } } else if (keyCode === 40) { //down arrow if (newDay === startPoint || !newDay) { isChanged = true; newDay = endPoint; } else if (newDay) { isChanged = true; newDay -= 1; } } else if (getIsNumberTyped(event)) { const keyString = getKeyValue(event); let newValue = isNewType ? keyString : day.toString() + keyString; newValue = Number.parseInt(newValue); if (isNewType) { isChanged = true; if (newValue * 10 > endPoint) { newFocusOrder += 1; } newDay = newValue; } else { isChanged = true; newFocusOrder += 1; if (newValue > endPoint) { newDay = endPoint; } else if (!newValue) { newDay = startPoint; } else { newDay = newValue; } } } else if (getIsDeleteTyped(keyCode)) { isChanged = true; newDay = ''; } return { day: newDay, isChanged, focusOrder: newFocusOrder }; }