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.foundation.lazy.items
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.FolderOpen 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.CalendarMonth
import androidx.compose.material.icons.outlined.FilterList import androidx.compose.material.icons.outlined.FilterList
import androidx.compose.material.icons.outlined.Inbox 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.material.icons.outlined.Today
import androidx.compose.material3.DrawerValue import androidx.compose.material3.DrawerValue
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
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.ModalDrawerSheet import androidx.compose.material3.ModalDrawerSheet
import androidx.compose.material3.ModalNavigationDrawer import androidx.compose.material3.ModalNavigationDrawer
import androidx.compose.material3.NavigationDrawerItem 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.DrawerViewModel
import com.planify.mobile.ui.navigation.PlanifyNavHost import com.planify.mobile.ui.navigation.PlanifyNavHost
import com.planify.mobile.ui.navigation.Route import com.planify.mobile.ui.navigation.Route
import com.planify.mobile.ui.task.TaskEditSheet
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@@ -57,6 +61,13 @@ fun MainScreen(viewModel: DrawerViewModel = hiltViewModel()) {
val navBackStack by navController.currentBackStackEntryAsState() val navBackStack by navController.currentBackStackEntryAsState()
val currentRoute = navBackStack?.destination?.route 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( val drawerTitles = mapOf(
Route.Inbox.path to "Inbox", Route.Inbox.path to "Inbox",
Route.Today.path to "Aujourd'hui", 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 -> ) { padding ->
PlanifyNavHost( PlanifyNavHost(
navController = navController, navController = navController,
modifier = Modifier.padding(padding), modifier = Modifier.padding(padding),
) )
if (showCreateTask) {
TaskEditSheet(
projectId = createProjectId,
onDismiss = { showCreateTask = false },
)
}
} }
} }
} }