/
kaws
/
ui-kit-ce
Обзор
Документация
Войти
/
kaws
/
ui-kit-ce
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
packages/input-number/src/utils/createList.ts
62 строки
1 KB
zavyalov.d.o
refactor: устранение eslint warnings
06 мар 2025, 00:50
06 мар 2025, 00:50
9490b1b
Код
Авторство
О чём код?
export interface Item { /** * Наличие каретки слева от символа. * * @inner */ hasCaret?: boolean /** * Значение элемента списка. * * @inner */ value: string /** * Ссылка на соседа слева, если нет соседа, значит элемент первый в списке. * * @inner */ neighborLeft?: Item | null /** * Ссылка на соседа справа, если нет соседа, значит элемент последний в списке. * * @inner */ neighborRight?: Item | null } const initialItem: Item = { value: '', hasCaret: false, neighborLeft: null, neighborRight: null, } /** * * @param items * @param caretPosition */ export const createList = ( items: string[], caretPosition: number | null ): Item[] => { return items.reduce((data: Item[], value: string, index: number) => { const prevIndex: number = index - 1 const hasCaret: boolean = caretPosition === index const previousItem: Item = data[prevIndex] const item: Item = { ...initialItem, hasCaret, value, } if (previousItem) { item.neighborLeft = previousItem previousItem.neighborRight = item } return data.push(item), data }, []) }