Цель: предоставить пользователю возможности
- отметить лук в ленте на главном экране как нежелательный, и больше его не видеть;
- включить пользователя в «чёрный список», чтобы больше не видеть его луков.
Результат: выполнение на телефоне, изменение данных в Firebase.
Детали
- Добавить иконку «Alert» на каждый лук в ленте на главном экране.
Макет для вёрстки в Figma https://www.figma.com/file/dv5SIYUDwchc5KGJ2ezHPC1r/Untitled, «Главный экран».

По нажатию на иконку открывать меню с пунктами:
- Нежелательный контент
- Заблокировать автора
- Отмена
Вид меню – или всплывающее контекстное, или «выезжающее» снизу (UIActionSheet в iOS, Modal bottom sheet в Android), модальное. Можно использовать библиотеки:
https://github.com/expo/react-native-action-sheet
https://github.com/instea/react-native-popup-menu
При выборе пункта «Отмена» закрывать меню.
- При выборе пункта «Нежелательный контент» выполнить:
- скрыть в ленте лук (так же, как при нажатии «лайк»/«дизлайк»);
- добавить в объект
user.blocked_looks ИД лука с атрибутами date_blocked и reference, сохранить на бэкенде (так же, как при нажатии «лайк»/«дизлайк»);
- в объекте
look установить атрибут is_reported = true, сохранить на бэкенде.
- При выборе пункта «Заблокировать автора» выполнить:
- добавить в объект
user.blocked_users ИД блокируемого пользователя с атрибутами date_blocked и reference, сохранить на бэкенде;
- в объекте
look установить атрибут is_reported = true, сохранить на бэкенде;
- скрыть в ленте все луки от заблокированного пользователя.
- При обновлении ленты луков на главном экране (после запуска приложения, после перехода с других экранов) исключать луки:
- с атрибутом
is_blocked = true
- перечисленные в
user.blocked_looks
- от пользователей, перечисленных в
user.blocked_users
Чеклист задачи
Ресурсы
Документация на структуру базы данных
Консоль Firebase
Цель: предоставить пользователю возможности
Результат: выполнение на телефоне, изменение данных в Firebase.
Детали
Макет для вёрстки в Figma https://www.figma.com/file/dv5SIYUDwchc5KGJ2ezHPC1r/Untitled, «Главный экран».
По нажатию на иконку открывать меню с пунктами:
Вид меню – или всплывающее контекстное, или «выезжающее» снизу (UIActionSheet в iOS, Modal bottom sheet в Android), модальное. Можно использовать библиотеки:
https://github.com/expo/react-native-action-sheet
https://github.com/instea/react-native-popup-menu
При выборе пункта «Отмена» закрывать меню.
user.blocked_looksИД лука с атрибутамиdate_blockedиreference, сохранить на бэкенде (так же, как при нажатии «лайк»/«дизлайк»);lookустановить атрибутis_reported = true, сохранить на бэкенде.user.blocked_usersИД блокируемого пользователя с атрибутамиdate_blockedиreference, сохранить на бэкенде;lookустановить атрибутis_reported = true, сохранить на бэкенде;is_blocked = trueuser.blocked_looksuser.blocked_usersЧеклист задачи
Ресурсы
Документация на структуру базы данных
Консоль Firebase