Log out implemented
This commit is contained in:
@@ -37,7 +37,7 @@ fun NavigationHost(navController: NavHostController) {
|
||||
}
|
||||
|
||||
composable("main") {
|
||||
MainScreen()
|
||||
MainScreen(mainNavHostController = navController )
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import `in`.sminnovations.smi_attendance_admin.navigation.data.navItems
|
||||
|
||||
@Composable
|
||||
fun MainScreen(
|
||||
mainNavHostController: NavHostController
|
||||
) {
|
||||
val navController = rememberNavController()
|
||||
|
||||
@@ -23,7 +24,7 @@ fun MainScreen(
|
||||
},
|
||||
content = { padding ->
|
||||
Box(modifier = Modifier.padding(padding)) {
|
||||
Navigation(navController = navController, navItems)
|
||||
Navigation(navController = navController, navItems,mainNavHostController =mainNavHostController)
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
@@ -11,15 +11,17 @@ import `in`.sminnovations.smi_attendance_admin.navigation.data.BottomNavItem
|
||||
|
||||
@Composable
|
||||
fun Navigation(
|
||||
|
||||
navController: NavHostController,
|
||||
items: List<BottomNavItem>,
|
||||
mainNavHostController : NavHostController,
|
||||
) {
|
||||
NavHost(navController, startDestination = items[0].route) {
|
||||
composable(items[0].route) {
|
||||
HomeScreen()
|
||||
}
|
||||
composable(items[1].route) {
|
||||
SettingsScreen()
|
||||
SettingsScreen(mainNavHostController = mainNavHostController)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,13 +16,14 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.navigation.NavHostController
|
||||
import `in`.sminnovations.smi_attendance_admin.screens.login.viewModel.LoginViewModel
|
||||
import `in`.sminnovations.smi_attendance_admin.screens.settings.components.TopComponents
|
||||
import `in`.sminnovations.smi_attendance_admin.screens.settings.components.subSetting.AboutSettings
|
||||
import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel
|
||||
|
||||
@Composable
|
||||
fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel()) {
|
||||
fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel(), mainNavHostController :NavHostController,) {
|
||||
val context = LocalContext.current
|
||||
val scrollState = rememberScrollState()
|
||||
Column(
|
||||
@@ -31,14 +32,14 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel()) {
|
||||
.fillMaxSize(),
|
||||
) {
|
||||
Spacer(modifier = Modifier.height(20.dp))
|
||||
TopComponents()
|
||||
TopComponents( mainNavHostController= mainNavHostController,settingsViewModel = settingsViewModel)
|
||||
Spacer(modifier = Modifier.height(20.dp))
|
||||
OutlinedCard(
|
||||
modifier = Modifier
|
||||
.padding(10.dp)
|
||||
.wrapContentSize()
|
||||
) {
|
||||
AboutSettings(context = context,settingsViewModel = settingsViewModel)
|
||||
AboutSettings(context = context)
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
@@ -23,11 +24,15 @@ import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.navigation.NavHostController
|
||||
import `in`.sminnovations.smi_attendance_admin.R
|
||||
import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel
|
||||
|
||||
|
||||
@Composable
|
||||
fun TopComponents(
|
||||
mainNavHostController : NavHostController,
|
||||
settingsViewModel : SettingsViewModel
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
@@ -70,5 +75,17 @@ fun TopComponents(
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
fontSize = 16.sp
|
||||
)
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
Button(
|
||||
onClick = {
|
||||
settingsViewModel.logout()
|
||||
mainNavHostController.navigate("login")
|
||||
},
|
||||
modifier = Modifier
|
||||
.align(Alignment.CenterHorizontally)
|
||||
.padding(top = 16.dp)
|
||||
) {
|
||||
Text(text = "Logout")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ import kotlinx.coroutines.launch
|
||||
|
||||
@SuppressLint("CoroutineCreationDuringComposition")
|
||||
@Composable
|
||||
fun AboutSettings(context: Context, settingsViewModel : SettingsViewModel)
|
||||
fun AboutSettings(context: Context,)
|
||||
{
|
||||
val scope = rememberCoroutineScope()
|
||||
val dataStore = SettingsData(context)
|
||||
@@ -72,16 +72,7 @@ fun AboutSettings(context: Context, settingsViewModel : SettingsViewModel)
|
||||
},
|
||||
icon = ImageVector.vectorResource(id = R.drawable.round_logo_dev_24)
|
||||
)
|
||||
Button(
|
||||
onClick = {
|
||||
settingsViewModel.logout() // Call your logout function from ViewModel
|
||||
},
|
||||
modifier = Modifier
|
||||
.align(Alignment.CenterHorizontally)
|
||||
.padding(top = 16.dp)
|
||||
) {
|
||||
Text(text = "Logout")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user