pull/3/head
Arthur VALIN 1 year ago
parent c652ef7eaa
commit 7a50efc19c

@ -3,12 +3,10 @@ package fr.iut.alldev.allin
import android.os.Bundle import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.compose.material3.ExperimentalMaterial3Api import fr.iut.alldev.allin.ui.navigation.drawer.AllInDrawer
import fr.iut.alldev.allin.ui.core.AllInDrawer
import fr.iut.alldev.allin.ui.theme.AllInTheme import fr.iut.alldev.allin.ui.theme.AllInTheme
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContent { setContent {

@ -0,0 +1,50 @@
package fr.iut.alldev.allin.ui.core
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.Dp
import fr.iut.alldev.allin.ui.theme.AllInTheme
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AllInCard(
modifier: Modifier = Modifier,
onClick: (()->Unit)? = null,
radius: Int = 15,
backgroundColor: Color = AllInTheme.colors.white,
borderWidth: Dp? = null,
borderColor: Color = AllInTheme.colors.allIn_LightestGrey,
borderBrush: Brush? = null,
content: @Composable ()->Unit
) {
onClick?.let {
Card(
modifier = modifier.fillMaxWidth(),
onClick = it,
shape = RoundedCornerShape(radius),
border = borderWidth?.let{ width -> borderBrush?.let{BorderStroke(width, it)} ?: BorderStroke(width, borderColor)},
colors = CardDefaults.cardColors(containerColor = backgroundColor)
) {
content()
}
} ?: run {
Card(
modifier = modifier.fillMaxWidth(),
shape = RoundedCornerShape(radius),
border = borderWidth?.let{ width -> borderBrush?.let{BorderStroke(width, it)} ?: BorderStroke(width, borderColor)},
colors = CardDefaults.cardColors(containerColor = backgroundColor)
) {
content()
}
}
}

@ -0,0 +1,59 @@
package fr.iut.alldev.allin.ui.core
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.iut.alldev.allin.ui.theme.AllInTheme
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AllInChip(
text: String,
isSelected: Boolean = false,
onClick: ()->Unit = {},
modifier: Modifier = Modifier
) {
Card(
modifier = modifier.wrapContentSize(),
shape = RoundedCornerShape(50),
onClick = onClick,
border = if(!isSelected) BorderStroke(1.dp, AllInTheme.colors.allIn_LightestGrey) else null,
colors = CardDefaults.cardColors(containerColor = with(AllInTheme.colors){
if(isSelected) allIn_Purple else white
})
) {
Text(
text = text,
modifier = Modifier.padding(vertical = 8.dp, horizontal = 22.dp),
textAlign = TextAlign.Center,
fontWeight = if(isSelected) FontWeight.W800 else null,
color = with(AllInTheme.colors){
if(isSelected) white else allIn_LightGrey
}
)
}
}
@Preview
@Composable
private fun AllInChipPreviewUnselected() {
AllInChip("Public", false)
}
@Preview
@Composable
private fun AllInChipPreviewSelected() {
AllInChip("Public", true)
}

@ -14,17 +14,22 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import fr.iut.alldev.allin.ui.theme.AllInTheme import fr.iut.alldev.allin.ui.theme.AllInTheme
@Composable @Composable
@Preview @Preview
fun ProfilePicture() { fun ProfilePicture(
borderWidth: Dp? = null,
size: Dp = 80.dp,
modifier: Modifier = Modifier
) {
Card( Card(
modifier = Modifier.size(80.dp), modifier = modifier.size(size),
shape = RoundedCornerShape(100), shape = RoundedCornerShape(100),
colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.allIn_DarkerGrey), colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.allIn_DarkerGrey),
border = BorderStroke(1.dp, AllInTheme.colors.allIn_DarkGrey) border = borderWidth?.let{BorderStroke(it, AllInTheme.colors.allIn_DarkGrey)}
) { ) {
Box(Modifier.fillMaxSize()) { Box(Modifier.fillMaxSize()) {
Icon(imageVector = Icons.Filled.Camera, Icon(imageVector = Icons.Filled.Camera,

@ -0,0 +1,38 @@
package fr.iut.alldev.allin.ui.core
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import fr.iut.alldev.allin.ui.theme.AllInTheme
@Composable
fun RainbowButton(
text: String,
onClick: ()->Unit,
modifier: Modifier = Modifier
) {
AllInCard(borderWidth = 1.dp, onClick = onClick, modifier = modifier) {
Text(
text = text,
textAlign = TextAlign.Center,
fontWeight = FontWeight.W700,
fontSize = 30.sp,
style = TextStyle(brush = AllInTheme.colors.allIn_TextGradient),
modifier = Modifier.padding(vertical = 20.dp).fillMaxWidth(),
)
}
}
@Preview
@Composable
private fun RainbowButtonPreview() {
RainbowButton(text = "Participer", onClick = { })
}

@ -1,4 +1,4 @@
package fr.iut.alldev.allin.ui.core package fr.iut.alldev.allin.ui.core.topbar
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row

@ -1,4 +1,4 @@
package fr.iut.alldev.allin.ui.core package fr.iut.alldev.allin.ui.core.topbar
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
@ -21,7 +21,7 @@ fun AllInTopBar(
coinAmount: Int coinAmount: Int
) { ) {
Box(modifier = Modifier.height(86.dp).fillMaxWidth() Box(modifier = Modifier.height(86.dp).fillMaxWidth()
.background(brush = AllInTheme.colors.allIn_gradient)) { .background(brush = AllInTheme.colors.allIn_MainGradient)) {
IconButton(onClick = onMenuClicked, IconButton(onClick = onMenuClicked,
modifier = Modifier.align(Alignment.CenterStart)) { modifier = Modifier.align(Alignment.CenterStart)) {
Icon(Icons.Default.Menu, Icon(Icons.Default.Menu,

@ -0,0 +1,138 @@
package fr.iut.alldev.allin.ui.home.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment.Companion.CenterEnd
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.zIndex
import fr.iut.alldev.allin.ui.core.AllInCard
import fr.iut.alldev.allin.ui.core.ProfilePicture
import fr.iut.alldev.allin.ui.core.RainbowButton
import fr.iut.alldev.allin.ui.theme.AllInTheme
@Composable
fun HomeBetCard(
creator: String,
category: String,
title: String,
date: String,
time: String,
nbPlayer: Int,
modifier: Modifier = Modifier,
onClickParticipate: ()->Unit
) {
AllInCard(
radius = 7
){
Column(Modifier.fillMaxWidth()) {
Row(
Modifier
.align(Alignment.End)
.padding(top = 12.dp, end = 10.dp)) {
Text(
fontSize = 10.sp,
text = "proposé par ",
color = AllInTheme.colors.allIn_LightGrey
)
Text(
fontSize = 10.sp,
text = creator,
fontWeight = FontWeight.W600
)
}
Column(Modifier.padding(horizontal = 19.dp, vertical = 11.dp)) {
Text(
text = category,
fontSize = 15.sp,
color = AllInTheme.colors.allIn_LightGrey,
)
Text(
text = title,
fontSize = 20.sp,
fontWeight = FontWeight.W800
)
Spacer(modifier = Modifier.height(11.dp))
Row(
verticalAlignment = Alignment.CenterVertically,
) {
Text(
text = "Commence le",
fontSize = 15.sp,
color = AllInTheme.colors.allIn_LightGrey,
)
HomeBetCardDateTimeChip(
text = date,
modifier = Modifier.padding(horizontal = 8.dp)
)
HomeBetCardDateTimeChip(time)
}
}
HorizontalDivider(
thickness = 1.dp,
color = AllInTheme.colors.allIn_LightestGrey
)
Column(
Modifier
.background(AllInTheme.colors.allIn_LightestestGrey)
) {
Row(
modifier = Modifier
.align(CenterHorizontally)
.padding(7.dp),
verticalAlignment = Alignment.CenterVertically
){
val nRepeat = if (nbPlayer > 5) 5 else nbPlayer
Box(
Modifier.width((nRepeat*15).dp)
){
repeat(nRepeat) {
ProfilePicture(
size = 30.dp,
modifier = Modifier
.align(CenterEnd)
.offset(x = (it * -15).dp)
.zIndex(-it.toFloat())
)
}
}
Spacer(modifier = Modifier.width(12.dp))
Text(
text = "$nbPlayer joueurs en attente",
color = AllInTheme.colors.allIn_LightGrey
)
}
RainbowButton(
modifier = Modifier.padding(6.dp),
text = "Participer",
onClick = onClickParticipate
)
}
}
}
}
@Preview
@Composable
private fun HomeBetCardPreview() {
HomeBetCard(
creator = "Lucas",
category = "Études",
title = "Emre va réussir son TP de CI/CD mercredi?",
date = "12 Sept.",
time = "13:00",
nbPlayer = 4,
onClickParticipate = {}
)
}

@ -0,0 +1,41 @@
package fr.iut.alldev.allin.ui.home.components
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.iut.alldev.allin.ui.theme.AllInTheme
@Composable
fun HomeBetCardDateTimeChip(
text: String,
modifier: Modifier = Modifier
) {
Card(
modifier = modifier.wrapContentSize(),
shape = RoundedCornerShape(50),
border = BorderStroke(1.dp, AllInTheme.colors.allIn_LightestGrey),
colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.white)
) {
Text(
text = text,
modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp),
textAlign = TextAlign.Center,
color = AllInTheme.colors.allIn_Purple
)
}
}
@Preview
@Composable
private fun HomeBetCardDateTimeChipPreview() {
HomeBetCardDateTimeChip("11 Sept.")
}

@ -0,0 +1,79 @@
package fr.iut.alldev.allin.ui.home.components
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.LocalFireDepartment
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import fr.iut.alldev.allin.ui.core.AllInCard
import fr.iut.alldev.allin.ui.theme.AllInTheme
@Composable
fun HomePopularCards(
nbPlayers: Int,
points: String,
title: String,
modifier: Modifier = Modifier
) {
AllInCard(
modifier = modifier.fillMaxWidth()
.padding(6.dp)
.shadow(elevation = 6.dp, shape = RoundedCornerShape(15)),
backgroundColor = AllInTheme.colors.allIn_Dark,
borderWidth = 2.dp,
borderBrush = AllInTheme.colors.allIn_MainGradient
) {
Column(modifier = Modifier.padding(13.dp)) {
Row(verticalAlignment = Alignment.CenterVertically) {
Icon(imageVector = Icons.Filled.LocalFireDepartment,
contentDescription = null,
tint = AllInTheme.colors.allIn_Pink)
Text(text = "Populaire",
color = AllInTheme.colors.allIn_Pink,
fontSize = 15.sp,
fontWeight = FontWeight.W700
)
}
Text(text = title,
color = AllInTheme.colors.white,
fontSize = 20.sp,
fontWeight = FontWeight.W800,
modifier = Modifier.padding(vertical = 22.dp))
Row(modifier = Modifier.align(alignment = Alignment.CenterHorizontally)) {
Text(text = nbPlayers.toString(),
color = AllInTheme.colors.allIn_Pink,
fontSize = 15.sp,
fontWeight = FontWeight.W700)
Text(text = " joueurs - ",
color = AllInTheme.colors.white,
fontSize = 15.sp)
Text(text = points,
color = AllInTheme.colors.allIn_Pink,
fontSize = 15.sp,
fontWeight = FontWeight.W700)
Text(text = " points en jeu",
color = AllInTheme.colors.white,
fontSize = 15.sp)
}
}
}
}
@Preview
@Composable
private fun HomePopularCardsPreview() {
HomePopularCards(nbPlayers = 12, points = "2.35k", title = "Emre va réussir son TP de CI/CD mercredi?")
}

@ -1,9 +1,68 @@
package fr.iut.alldev.allin.ui.home package fr.iut.alldev.allin.ui.home
import androidx.compose.material3.Text import androidx.compose.foundation.layout.*
import androidx.compose.runtime.Composable import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import fr.iut.alldev.allin.ui.core.AllInChip
import fr.iut.alldev.allin.ui.home.components.HomeBetCard
import fr.iut.alldev.allin.ui.home.components.HomePopularCards
@Composable @Composable
@Preview
fun Home(){ fun Home(){
Text(text = "HOME")
val horizontalPadding = 23.dp
Column {
HomePopularCards(
modifier = Modifier
.padding(horizontal = horizontalPadding)
.padding(top = 23.dp),
nbPlayers = 12,
points = "2.35k",
title = "Emre va réussir son TP de CI/CD mercredi?")
LazyRow(
modifier = Modifier.padding(vertical = 19.dp),
horizontalArrangement = Arrangement.spacedBy(9.dp)
){
item{
Spacer(modifier = Modifier.width(horizontalPadding))
}
items(items){
var isSelected by remember { mutableStateOf(false) }
AllInChip(text = it, isSelected = isSelected, onClick = {isSelected = !isSelected})
}
item{
Spacer(modifier = Modifier.width(horizontalPadding))
}
}
LazyColumn(
modifier = Modifier.padding(horizontal = horizontalPadding),
verticalArrangement = Arrangement.spacedBy(24.dp)
){
items(5){
HomeBetCard(
creator = "Lucas",
category = "Études",
title = "Emre va réussir son TP de CI/CD mercredi?",
date = "11 Sept.",
time = "13:00",
nbPlayer = 4,
onClickParticipate = { /* TODO */ }
)
}
}
}
} }
val items = listOf(
"Public",
"En cours",
"Invitation",
"Terminés"
)

@ -1,5 +1,7 @@
package fr.iut.alldev.allin.ui.navigation package fr.iut.alldev.allin.ui.navigation
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -13,20 +15,27 @@ import fr.iut.alldev.allin.ui.profile.Profile
object Routes { object Routes {
const val HOME = "home" const val HOME = "home"
const val PROFILE = "profile" const val PROFILE = "profile"
const val BET = "BET"
const val BET_HISTORY = "BET_HISTORY"
const val FRIENDS = "FRIENDS"
const val CURRENT_BETS = "CURRENT_BETS"
} }
@Composable @Composable
fun AllInNavHost(modifier: Modifier = Modifier, fun AllInNavHost(modifier: Modifier = Modifier,
navController: NavHostController = rememberNavController(), navController: NavHostController = rememberNavController(),
startDestination: String = Routes.PROFILE startDestination: String = Routes.BET
) { ) {
NavHost( NavHost(
navController = navController, navController = navController,
startDestination = startDestination, startDestination = startDestination,
modifier = modifier.fillMaxSize() modifier = modifier.fillMaxSize(),
enterTransition = { EnterTransition.None },
exitTransition = { ExitTransition.None }
) { ) {
composable(route = Routes.HOME){ Home() } composable(route = Routes.BET){ Home() }
composable(route = Routes.PROFILE){ Profile() } composable(route = Routes.BET_HISTORY){ Profile() }
} }
} }

@ -1,5 +1,6 @@
package fr.iut.alldev.allin.ui.core package fr.iut.alldev.allin.ui.navigation.drawer
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Settings import androidx.compose.material.icons.filled.Settings
@ -15,6 +16,10 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import fr.iut.alldev.allin.ui.core.topbar.AllInTopBar
import fr.iut.alldev.allin.ui.core.ProfilePicture
import fr.iut.alldev.allin.ui.navigation.AllInNavHost
import fr.iut.alldev.allin.ui.navigation.Routes
import fr.iut.alldev.allin.ui.theme.AllInTheme import fr.iut.alldev.allin.ui.theme.AllInTheme
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlin.math.abs import kotlin.math.abs
@ -25,10 +30,10 @@ sealed class TopLevelDestination(
val title: String, val title: String,
val subtitle: String, val subtitle: String,
) { ) {
object BET : TopLevelDestination(route = "BET", title = "CREER UN BET", subtitle = "Créez un nouveau BET et faites participer vos amis.") object BET : TopLevelDestination(route = Routes.BET, title = "CREER UN BET", subtitle = "Créez un nouveau BET et faites participer vos amis.")
object BET_HISTORY : TopLevelDestination(route = "BET_HISTORY", title = "HISTORIQUE DES BETS", subtitle = "Consultez vos paris en cours et terminés.") object BET_HISTORY : TopLevelDestination(route = Routes.BET_HISTORY, title = "HISTORIQUE DES BETS", subtitle = "Consultez vos paris en cours et terminés.")
object FRIENDS : TopLevelDestination(route = "FRIENDS", title = "AMIS", subtitle = "Défiez vos porches en les ajoutant en amis.") object FRIENDS : TopLevelDestination(route = Routes.FRIENDS, title = "AMIS", subtitle = "Défiez vos porches en les ajoutant en amis.")
object CURRENT_BETS : TopLevelDestination(route = "CURRENT_BETS", title = "BETS EN COURS", subtitle = "Gérez vos bets et récompensez les gagnants.") object CURRENT_BETS : TopLevelDestination(route = Routes.CURRENT_BETS, title = "BETS EN COURS", subtitle = "Gérez vos bets et récompensez les gagnants.")
} }
val topLevelDestinations = listOf( val topLevelDestinations = listOf(
@ -41,18 +46,19 @@ val topLevelDestinations = listOf(
@Composable @Composable
fun AllInDrawer( fun AllInDrawer(
navController: NavHostController = rememberNavController(), navController: NavHostController = rememberNavController(),
drawerState: DrawerState = rememberDrawerState(initialValue = DrawerValue.Closed) drawerState: DrawerState = rememberDrawerState(initialValue = DrawerValue.Closed),
startDestination: String = Routes.BET
) { ) {
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val drawerOffset = derivedStateOf { drawerState.offset.value } val drawerOffset = derivedStateOf { drawerState.offset.value }
var drawerWidth by remember { var drawerWidth by remember {
mutableStateOf(drawerState.offset.value) mutableStateOf(drawerState.offset.value)
} }
LaunchedEffect(drawerWidth == 0f) { LaunchedEffect(drawerWidth == 0f) {
drawerWidth = drawerState.offset.value drawerWidth = drawerState.offset.value
} }
ModalNavigationDrawer( ModalNavigationDrawer(
drawerState = drawerState, drawerState = drawerState,
drawerContent = { drawerContent = {
@ -65,7 +71,9 @@ fun AllInDrawer(
.padding(top = 39.dp, bottom = 26.dp) .padding(top = 39.dp, bottom = 26.dp)
.fillMaxWidth(), .fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally){ horizontalAlignment = Alignment.CenterHorizontally){
ProfilePicture() ProfilePicture(
borderWidth = 1.dp
)
Spacer(modifier = Modifier.height(12.dp)) Spacer(modifier = Modifier.height(12.dp))
Text(text = "Pseudo", Text(text = "Pseudo",
fontSize = 20.sp, fontSize = 20.sp,
@ -78,7 +86,18 @@ fun AllInDrawer(
title = item.title, title = item.title,
subtitle = item.subtitle, subtitle = item.subtitle,
emoji = null, emoji = null,
onClick = { scope.launch { drawerState.close() } }, onClick = { scope.launch { drawerState.close() }
navController.navigate(item.route){
launchSingleTop = true
popUpTo(
startDestination
) {
saveState = true
inclusive = true
}
restoreState = true
}
},
modifier = Modifier.padding(vertical = 5.dp, horizontal = 13.dp) modifier = Modifier.padding(vertical = 5.dp, horizontal = 13.dp)
) )
} }
@ -106,9 +125,15 @@ fun AllInDrawer(
Column( Column(
modifier = Modifier modifier = Modifier
.padding(it) .padding(it)
.fillMaxSize(), .fillMaxSize()
.background(AllInTheme.colors.allIn_White),
horizontalAlignment = Alignment.CenterHorizontally horizontalAlignment = Alignment.CenterHorizontally
) { ) {
AllInNavHost(
modifier = Modifier.fillMaxSize(),
navController = navController,
startDestination = startDestination
)
} }
} }
} }

@ -1,4 +1,4 @@
package fr.iut.alldev.allin.ui.core package fr.iut.alldev.allin.ui.navigation.drawer
import android.media.Image import android.media.Image
import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.BorderStroke

@ -14,10 +14,14 @@ data class AllInColors(
val allIn_Grey: Color, val allIn_Grey: Color,
val allIn_LightGrey: Color, val allIn_LightGrey: Color,
val allIn_LighterGrey: Color, val allIn_LighterGrey: Color,
val allIn_LightestGrey: Color,
val allIn_LightestestGrey: Color,
val allIn_White: Color, val allIn_White: Color,
val white: Color, val white: Color,
val allIn_Pink: Color, val allIn_Pink: Color,
val allIn_gradient: Brush val allIn_Purple: Color,
val allIn_MainGradient: Brush,
val allIn_TextGradient: Brush
) )
internal val LocalColors = staticCompositionLocalOf { internal val LocalColors = staticCompositionLocalOf {
@ -28,15 +32,23 @@ internal val LocalColors = staticCompositionLocalOf {
allIn_Grey = Color(0xFF525252), allIn_Grey = Color(0xFF525252),
allIn_LightGrey = Color(0XFFAAAAAA), allIn_LightGrey = Color(0XFFAAAAAA),
allIn_LighterGrey = Color(0XFFC5C5C5), allIn_LighterGrey = Color(0XFFC5C5C5),
allIn_LightestGrey = Color(0XFFEBEBEB),
allIn_LightestestGrey = Color(0XFFF7F7F7),
allIn_White = Color(0xFFEBEBF6), allIn_White = Color(0xFFEBEBF6),
white = Color(0xFFFFFFFF), white = Color(0xFFFFFFFF),
allIn_Pink = Color(0xFFFF2A89), allIn_Pink = Color(0xFFFF2A89),
allIn_gradient = Brush.linearGradient( allIn_Purple = Color(0xFF7D79FF),
allIn_MainGradient = Brush.linearGradient(
0.0f to Color(0xFFf951a8), 0.0f to Color(0xFFf951a8),
0.5f to Color(0xFFaa7ef3), 0.5f to Color(0xFFaa7ef3),
1.1f to Color(0xFF199fee), 1.1f to Color(0xFF199fee),
start = Offset(0f, Float.POSITIVE_INFINITY), start = Offset(0f, Float.POSITIVE_INFINITY),
end = Offset(Float.POSITIVE_INFINITY, 0f) end = Offset(Float.POSITIVE_INFINITY, 0f)
),
allIn_TextGradient = Brush.horizontalGradient(
0.0f to Color(0xFFF876C1),
1.1f to Color(0xFF2399F8)
) )
) )
} }
Loading…
Cancel
Save