diff --git a/app/src/main/java/com/planify/mobile/ui/MainScreen.kt b/app/src/main/java/com/planify/mobile/ui/MainScreen.kt index 015860b..2601335 100644 --- a/app/src/main/java/com/planify/mobile/ui/MainScreen.kt +++ b/app/src/main/java/com/planify/mobile/ui/MainScreen.kt @@ -10,6 +10,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.FolderOpen +import androidx.compose.material.icons.outlined.Add import androidx.compose.material.icons.outlined.CalendarMonth import androidx.compose.material.icons.outlined.FilterList import androidx.compose.material.icons.outlined.Inbox @@ -19,9 +20,11 @@ import androidx.compose.material.icons.outlined.Settings import androidx.compose.material.icons.outlined.Today import androidx.compose.material3.DrawerValue import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ModalDrawerSheet import androidx.compose.material3.ModalNavigationDrawer import androidx.compose.material3.NavigationDrawerItem @@ -45,6 +48,7 @@ import androidx.navigation.compose.rememberNavController import com.planify.mobile.ui.navigation.DrawerViewModel import com.planify.mobile.ui.navigation.PlanifyNavHost import com.planify.mobile.ui.navigation.Route +import com.planify.mobile.ui.task.TaskEditSheet import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @@ -57,6 +61,13 @@ fun MainScreen(viewModel: DrawerViewModel = hiltViewModel()) { val navBackStack by navController.currentBackStackEntryAsState() val currentRoute = navBackStack?.destination?.route + var showCreateTask by remember { mutableStateOf(false) } + val inboxProjectId = projects.find { it.isInbox }?.id ?: "" + val createProjectId = if (currentRoute?.startsWith("project/") == true) + currentRoute.removePrefix("project/") + else + inboxProjectId + val drawerTitles = mapOf( Route.Inbox.path to "Inbox", Route.Today.path to "Aujourd'hui", @@ -167,11 +178,28 @@ fun MainScreen(viewModel: DrawerViewModel = hiltViewModel()) { }, ) }, + floatingActionButton = { + if (currentRoute != Route.Settings.path) { + FloatingActionButton( + onClick = { showCreateTask = true }, + containerColor = MaterialTheme.colorScheme.primary, + ) { + Icon(Icons.Outlined.Add, contentDescription = "Nouvelle tâche", tint = MaterialTheme.colorScheme.onPrimary) + } + } + }, ) { padding -> PlanifyNavHost( navController = navController, modifier = Modifier.padding(padding), ) + + if (showCreateTask) { + TaskEditSheet( + projectId = createProjectId, + onDismiss = { showCreateTask = false }, + ) + } } } }