fix: ajout du FAB + sur tous les écrans (absent de MainScreen.Scaffold)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-06 07:54:20 +02:00
parent 0fd300ffdc
commit 6d5feacf45
@@ -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 },
)
}
}
}
}