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:
@@ -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 },
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user