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;
- поиск выполняется локально по уже загруженным данным;
- фильтры применяются поверх клиентского списка.
Состояния
LoadingSuccess(projects, tags, isLoadingMore, hasMorePages)Error(message)
Данные
Экран получает:
- список проектов;
- список тегов;
- локальное состояние пагинации;
- текст поискового запроса и активные фильтры.
Запросы
Основной запрос:
POST /project/findmany
Что используется в клиенте:
- первая загрузка страницы;
- догрузка следующих страниц;
- данные тегов приходят в том же response payload.
Слои
- UI:
ProjectsScreen - state:
ProjectsViewModel - data access:
ProjectsRepository - HTTP:
ProjectsApi