Перейти к основному содержимому

Projects Screen

Назначение

Показывает каталог проектов CiteC и дает быстрые действия:

  • поиск;
  • фильтрация;
  • переход в карточку проекта;
  • My Project;
  • Suggest Project.

Когда показывается

  • это первая вкладка основного tab bar;
  • экран загружается после onboarding и bootstrap основной сессии.

Дизайн

  • верхний заголовок Проекты;
  • под ним строка поиска и action area для фильтров;
  • ниже скроллируемый список project cards;
  • справа над tab bar плавающая action area с My Project и Suggest Project;
  • для неавторизованного пользователя action set упрощен.

Поведение

  • первая страница проектов загружается автоматически;
  • при прокрутке включается infinite scroll;
  • поиск выполняется локально по уже загруженным данным;
  • фильтры применяются поверх клиентского списка.

Состояния

  • Loading
  • Success(projects, tags, isLoadingMore, hasMorePages)
  • Error(message)

Данные

Экран получает:

  • список проектов;
  • список тегов;
  • локальное состояние пагинации;
  • текст поискового запроса и активные фильтры.

Запросы

Основной запрос:

  • POST /project/findmany

Что используется в клиенте:

  • первая загрузка страницы;
  • догрузка следующих страниц;
  • данные тегов приходят в том же response payload.

Слои

  • UI: ProjectsScreen
  • state: ProjectsViewModel
  • data access: ProjectsRepository
  • HTTP: ProjectsApi