Skip to content

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

@oleg-sherykhalin

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

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions