Skip to content

ANDR-51 Завершение работы над регистрацией#154

Open
xMODDIIx wants to merge 15 commits into
epic/ANDR-81from
feature/ANDR-51
Open

ANDR-51 Завершение работы над регистрацией#154
xMODDIIx wants to merge 15 commits into
epic/ANDR-81from
feature/ANDR-51

Conversation

@xMODDIIx

@xMODDIIx xMODDIIx commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Что сделано:
- Реализован экран регистрации (RegistrationScreen) с валидацией полей (Email, пароль, подтверждение пароля) и чекбоксами согласий (ПД, Оферта, рассылка)
- Добавлена логика во ViewModel и UiStateMapper для управления состояниями экрана регистрации (Loading, Error, Success)
- Реализован репозиторий и сетевой слой взаимодействия с API для регистрации (auth/signUp), настроена обработка ошибок бэкенда (409 Conflict, 404 Not Found)
- В базовый компонент PrimaryButton (:core:ui) добавлена поддержка состояния загрузки (isLoading) с отображением ProgressBar
- Интегрирована иконка профиля и обновлена конфигурация нижней навигации
- Фича регистрации подключена через FeatureApi, зарегистрирована в навигации и настроена DI-зависимость через Koin
- Полностью удален неиспользуемый устаревший модуль :feature:forgot-password и очищены все его зависимости в settings.gradle.kts и app/build.gradle.kts для успешной сборки проекта (взамен создается новый модуль восстановления)
- Изменен цвет границ неактивных чекбоксов со светло-фиолетового на нейтрально-серый
- Блок согласий сгруппирован плотнее в отдельный Column со spacedBy(8.dp)

Снимок экрана 2026-06-11 203241 Снимок экрана 2026-06-11 203522 Снимок экрана 2026-06-11 203505

xMODDIIx added 13 commits June 3, 2026 15:32
…льных настроек IDE. Закомментированы вызовы удаленных UI-компонентов для обеспечения успешной сборки
…oading для отображения индикатора загрузки и автоматической блокировки кнопок
…н POST-метод для регистрации и иконка профиля для нижней навигации
…оен маппинг ответов бэкенда с учетом специфичных кодов (404, 409) и ключей сообщений
…wModel, комплексная валидация полей на основе доменных правил и маппинг состояний экрана
…троена навигация, регистрация экрана в NavigationFactory и подключение DI-модулей.
@xMODDIIx xMODDIIx changed the title Feature/andr 51 ANDR-51 Завершение работы над регистрацией Jun 11, 2026

@kish-dev kish-dev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

минорные правки

Comment thread .idea/compiler.xml Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Удалить

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кто-то коммитил это до меня, а гиигнор игнорирует это правило теперь. Поэтому я удалил это

is RegistrationAction.EmailChanged -> form.copy(email = action.value)
is RegistrationAction.PasswordChanged -> form.copy(password = action.value)
is RegistrationAction.ConfirmPasswordChanged -> form.copy(confirmPassword = action.value)
else -> form

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрать else, чтобы был полный перебор. Если у тебя остается много веток одинаковых, то

is first,
is second,
-> form

}

@Test
fun `mapToInitialState returns correct initial state`() {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У нас не так пишутся тесты, 1 функция и параметры прокидываются в нее через @ParametrizedTest

@xMODDIIx xMODDIIx Jun 25, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Маппер сложный, тут одной функцией на все тяжело обойтись. Я сделал как в других модулян, но сократил на 3 функции

  1. все экшены
  2. логика валидации
  3. маппинг ошибок

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Гоу все равно переделаем, чтобы не отличаться. Тест не сложный, у нас тесты по 2к строк)

Ты же параметризированными параметрами эти тесты и покрываешь.

xMODDIIx and others added 2 commits June 25, 2026 14:14
…на проекте. Обновление самого маппера. Теперь все события обрабатываются без else
}

@Test
fun `mapToInitialState returns correct initial state`() {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Гоу все равно переделаем, чтобы не отличаться. Тест не сложный, у нас тесты по 2к строк)

Ты же параметризированными параметрами эти тесты и покрываешь.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants