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