Refactor: Rename Student route to AddPersonToClazz
The `Student` route in `AppRoutes.kt` has been renamed to `AddPersonToClazz`.
This change is reflected in: - `ClazzDetailViewModel.kt`: The navigation command for adding a person to a class now uses `AddPersonToClazz`. - `AppNavHost.kt`: The composable for the add person screen is now associated with the `AddPersonToClazz` route. - `AddPersonToClazzScreen.kt`: The "share with link or QR code" and "share QR code" options have been removed from this screen. - `ClazzDetailScreen.kt`: The "Invite Student" list item now navigates to `AddPersonToClazz`. The "Pending Invite", "Teachers", and "Students" list items now have a trailing arrow icon. The `onClickInviteStudent` parameter has been renamed to `onClickAddPersonToClazz`. (commit: 24b546c)
Populate Class Detail screen with fake roster data
The `ClazzDetailScreen` now displays teachers and students fetched from `FakeRosterDataSource`. The `FakeRosterDataSource` has been updated to provide a list of fake users with teacher and student roles. (commit: 90b3a2b)
Integrate pending invite list into class detail screen
This commit introduces a "Pending Invites" section to the class detail screen.
Key changes: - Added `enabledUser` field to `OneRosterUser` in `FakeRosterDataSource.kt` to differentiate between active and pending users. - Updated `ClazzDetailViewModel.kt` to fetch and store pending users in `listOfPending` within `ClazzDetailUiState`. - Modified `ClazzDetailScreen.kt` to display the list of pending invites, showing the user's name, role, and an avatar. (commit: 7ea89d7)
The `AcceptInviteScreen` and its associated `AcceptInviteViewModel` have been removed. Correspondingly, the `AcceptInvite` route and its usage within `ClazzDetailScreen`, `ClazzDetailViewModel`, `AppNavHost`, and `AppKoinModule` have been eliminated. (commit: 898149d)
The `AcceptInviteScreen` and its associated `AcceptInviteViewModel` have been removed. Correspondingly, the `AcceptInvite` route and its usage within `ClazzDetailScreen`, `ClazzDetailViewModel`, `AppNavHost`, and `AppKoinModule` have been eliminated. (commit: 6d2b783)
Add fields for class description, start date, and end date to AddClazzScreen
The `AddClazzScreen` now includes `OutlinedTextField` components for capturing the class description, start date, and end date.
Corresponding updates have been made to: - `AddClazzUiState` to include fields for `description`, `startDate`, and `endDate`. - `AddClazzViewModel` to handle changes to these new fields with dedicated `onClassDescriptionChange`, `onStartDateChange`, and `onEndDateChange` functions. - `strings.xml` to add string resources for the new labels.
The layout has been changed from `Column` to `LazyColumn` and a `Row` has been added to arrange the start and end date fields side-by-side. (commit: 0b8949e)
Refactor: Remove RespectAppLauncher from AppNavHost
The `RespectAppLauncher` screen has been removed from the `AppNavHost`. Additionally, minor code formatting adjustments have been made in `AddClazzScreen.kt`. (commit: 48fb2c0)
This commit introduces localized sort options for "First name" and "Last name" in the class list and class detail screens.
- Added new string resources for "First name" and "Last name". - Created a `SortOrderOption` data class to represent sort options. - Updated `ClazzDetailViewModel` and `ClazzListViewModel` to use `SortOrderOption` and initialize sort options with localized strings. - Modified `ClazzDetailScreen` and `ClazzListScreen` to use the new `SortOrderOption` for displaying sort options. - The default sort option is set to "First name". (commit: 0377053)
The composable functions `RespectFilterChip` and `RespectSortOption` have been renamed to `RespectFilterChipsHeader` and `RespectSortHeader` respectively.
Their usages in `LearningUnitListScreen`, `ClazzDetailScreen`, and `ClazzListScreen` have been updated to reflect these changes. (commit: 80a497f)