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