Skip to content

Блокировка нежелательных луков и их авторов #73

Description

@oleg-sherykhalin

Цель: предоставить пользователю возможности

  1. отметить лук в ленте на главном экране как нежелательный, и больше его не видеть;
  2. включить пользователя в «чёрный список», чтобы больше не видеть его луков.

Результат: выполнение на телефоне, изменение данных в Firebase.

Детали

  1. Добавить иконку «Alert» на каждый лук в ленте на главном экране.
    Макет для вёрстки в Figma https://www.figma.com/file/dv5SIYUDwchc5KGJ2ezHPC1r/Untitled, «Главный экран».
    default

По нажатию на иконку открывать меню с пунктами:

  • Нежелательный контент
  • Заблокировать автора
  • Отмена

Вид меню – или всплывающее контекстное, или «выезжающее» снизу (UIActionSheet в iOS, Modal bottom sheet в Android), модальное. Можно использовать библиотеки:
https://github.com/expo/react-native-action-sheet
https://github.com/instea/react-native-popup-menu

При выборе пункта «Отмена» закрывать меню.

  1. При выборе пункта «Нежелательный контент» выполнить:
  • скрыть в ленте лук (так же, как при нажатии «лайк»/«дизлайк»);
  • добавить в объект user.blocked_looks ИД лука с атрибутами date_blocked и reference, сохранить на бэкенде (так же, как при нажатии «лайк»/«дизлайк»);
  • в объекте look установить атрибут is_reported = true, сохранить на бэкенде.
  1. При выборе пункта «Заблокировать автора» выполнить:
  • добавить в объект user.blocked_users ИД блокируемого пользователя с атрибутами date_blocked и reference, сохранить на бэкенде;
  • в объекте look установить атрибут is_reported = true, сохранить на бэкенде;
  • скрыть в ленте все луки от заблокированного пользователя.
  1. При обновлении ленты луков на главном экране (после запуска приложения, после перехода с других экранов) исключать луки:
  • с атрибутом is_blocked = true
  • перечисленные в user.blocked_looks
  • от пользователей, перечисленных в user.blocked_users

Чеклист задачи

  • добавить иконку «Alert»
  • добавить меню
  • обработчик меню «Нежелательный контент»
  • обработчик меню «Заблокировать автора»
  • обновление ленты луков с обработкой заблокированных луков и пользователей

Ресурсы
Документация на структуру базы данных
Консоль Firebase

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions