Log out implemented

This commit is contained in:
sathwikcs
2024-10-18 12:45:58 +05:30
parent 2a571407fd
commit 39c6124165
6 changed files with 29 additions and 17 deletions

View File

@@ -37,7 +37,7 @@ fun NavigationHost(navController: NavHostController) {
}
composable("main") {
MainScreen()
MainScreen(mainNavHostController = navController )
}
}
}

View File

@@ -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)
}
},
)

View File

@@ -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)
}
}

View File

@@ -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)
}

View File

@@ -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")
}
}
}

View File

@@ -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")
}
}
}