Функции deleteListResult, deleteWordResult, addListResult, addWordResult должны быть экспортированы из src/external/redux/helpers.
deleteListResult должен получать в качестве аргументов состояние и список для удаления.
Этот метод должен возвращать обновленное состояние, отфильтровав списки LISTS и WORDS....
Доработаем reducer. По умолчанию он должен возвращать начальное состояние.
Случай ADD_LIST должен вызывать метод addListResult, случай ADD_WORD: addWordResult.
Случаи DELETE_LIST и DELETE_WORD - методы deleteListResult и deleteWordResult соответственно.
При этом всегда нужно возвращать результат вызова метода с соответствующими аргументами....
Нужно создать папки: src/containers/Words/Word, src/containers/Words/Word/Details, src/containers/Words/Word/Option.
В каждой из низ нужен index.js файл для создания соответствующих компонентов.
Начнем с компонента Option. Он должен возвращать элемент Text.
Если свойство detailsKey не равно examples или defs:...
Теперь поработаем над компонентом Details. Он должен возвращать элемент View.
У View свойство marginVertical должно равняться 10.
Внутри View сначала добавим элемент Text: для значения detailsKey defs - внутренний текст Definition:,...
Теперь время проработать компонент Word. В нем будут разворачиваться и сворачиваться детали.
Для этого добавим флаг с использованием хука useState. Начальное значение - false.
Компонент Word должен возвращать элемент View, внутри которого будет TouchableOpacity со стилями:...
Для отображения данные надо сначала подготовить.
Для этого экспортируй функцию preparedDetails из файла: src/containers/Words/Word/helpers.js.
Получать эта функция должна один аргумент meanings.
meanings это массив объектов, которые описывают слово.
Каждый объект состоит из строк def, example и массива строк synonyms....
Нам надо добавить еще один, на этот раз последний, компонент.
Создадим его в папке src/components/AlertModal.
Возвращать этот компонент должен элемент Modal.
Свойство visible должно быть проброшено в него, а свойство handleClose в его свойство onRequestClose....
Добавим модальное окно в контейнер Words.
Сначала добавим логику его включения.
Создадим его состояние с помощью useState. Начальное значение это объект с полями:
visible со значением false, title - пустая строка, handleDelete - null....
Добавим компонент навигатора в файле src/components/Navigator/index.js.
Сразу добавим временные компоненты для наших будущих экраном.
Разместим их в папке src/containers: Words/index.js, Lists/index.js, AddingListOrWord/index.js.
Все компоненты и контейнеры надо называть точно также, как папки в которых они находятся....
Контейнер Words нужно подключить к хранилищу с помощью метода connect.
Будем использовать и mapStateToProps, и mapDispatchToProps.
mapStateToProps должен возвращать только одно свойство words, равное WORDS из состояния.
mapDispatchToProps должен быть объектом со свойствами: dispatchDeleteList и dispatchDeleteWord....