Skip to content

feat: Implement onboarding screen UI #70

Merged
MostafaMohamed2002 merged 13 commits into
developfrom
feature/on-boarding
Aug 4, 2025
Merged

feat: Implement onboarding screen UI #70
MostafaMohamed2002 merged 13 commits into
developfrom
feature/on-boarding

Conversation

@MostafaMohamed2002

@MostafaMohamed2002 MostafaMohamed2002 commented Aug 4, 2025

Copy link
Copy Markdown
Member

This pull request introduces the new onboarding screen, which is the first screen the user sees when opening the app. It allows the user to select their preferred language and navigate to the login or sign-up screen.

Changes included:

  • Implemented the UI for the onboarding screen.
  • Added the logic for language selection using a bottom sheet.
  • Created OnBoardingViewModel to handle the business logic of the screen.
  • Added OnboardingScreenState, OnboardingScreenListener, and OnboardingScreenEffect to manage the state and events of the screen.
  • Added new drawables for the onboarding screen background and a dropdown arrow.
  • Added new strings for language selection in both English and Arabic.
  • Included a NoRippleClick utility for click effects.
  • Updated the navigation graph to include the onboarding screen.

Closes #34

Screen_recording_20250804_185939.mp4

@MostafaMohamed2002 MostafaMohamed2002 self-assigned this Aug 4, 2025
# Conflicts:
#	composeApp/src/commonMain/composeResources/values-ar/strings.xml
#	composeApp/src/commonMain/composeResources/values/strings.xml
@MostafaMohamed2002 MostafaMohamed2002 requested review from Al-Qassim, gehadepada and iZyadNasser and removed request for Al-Qassim August 4, 2025 15:42
Comment on lines +40 to +39
navigateToRegister = { navController.navigate(RegisterRoute) },
navController = navController

@Al-Qassim Al-Qassim Aug 4, 2025

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

don't pass the nav controller, pass only the functions

navigateToLogin = { navController.navigate(LoginRoute) },
navigateToRegister = { navController.navigate(RegisterRoute) },

this is why when you click login in the video, you went to the home screen instead of the login screen

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

okay i have updated it

Comment on lines +12 to +18
class OnBoardingViewModel: ViewModel() , OnboardingScreenListener {
private val _state = MutableStateFlow(OnboardingScreenState())
val state = _state.asStateFlow()

private val _effect = MutableSharedFlow<OnboardingScreenEffect>()
val effect = _effect.asSharedFlow()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

use the base view model

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

used the base view model

@Al-Qassim Al-Qassim left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

apply the changes

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

replace this with svg

@MostafaMohamed2002 MostafaMohamed2002 merged commit d96e05f into develop Aug 4, 2025
2 checks passed
@Al-Qassim Al-Qassim deleted the feature/on-boarding branch August 4, 2025 19:48
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.

onboarding screen

3 participants