Bet Creation Screen, starting Question Tab
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
16f3a5808f
commit
6f9f6e5be0
@ -0,0 +1,31 @@
|
|||||||
|
package fr.iut.alldev.allin.ui.betcreation.components
|
||||||
|
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
|
import fr.iut.alldev.allin.ui.theme.AllInTheme
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun BetCreationScreenBottomText(
|
||||||
|
text: String,
|
||||||
|
modifier: Modifier = Modifier
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = text,
|
||||||
|
color = AllInTheme.colors.allIn_Purple,
|
||||||
|
fontWeight = FontWeight.Bold,
|
||||||
|
style = AllInTheme.typography.h2,
|
||||||
|
modifier = modifier.alpha(.5f)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
private fun BetCreationScreenBottomTextPreview() {
|
||||||
|
AllInTheme {
|
||||||
|
BetCreationScreenBottomText("Lorem Ipsum...")
|
||||||
|
}
|
||||||
|
}
|
@ -1,11 +1,30 @@
|
|||||||
package fr.iut.alldev.allin.ui.betcreation.tabs
|
package fr.iut.alldev.allin.ui.betcreation.tabs
|
||||||
|
|
||||||
import androidx.compose.material3.Text
|
import android.util.Log
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.outlined.QuestionAnswer
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import fr.iut.alldev.allin.R
|
import fr.iut.alldev.allin.R
|
||||||
|
import fr.iut.alldev.allin.ui.core.AllInTextAndIcon
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BetCreationScreenAnswerTab() {
|
fun BetCreationScreenAnswerTab() {
|
||||||
Text(text = stringResource(id = R.string.Answer))
|
Column(
|
||||||
|
Modifier
|
||||||
|
.fillMaxSize()
|
||||||
|
.padding(20.dp)
|
||||||
|
) {
|
||||||
|
AllInTextAndIcon(
|
||||||
|
text = stringResource(id = R.string.Answer),
|
||||||
|
icon = Icons.Outlined.QuestionAnswer
|
||||||
|
){
|
||||||
|
Log.d("ALLINNN", "AAAA")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,43 +1,116 @@
|
|||||||
package fr.iut.alldev.allin.ui.betcreation.tabs
|
package fr.iut.alldev.allin.ui.betcreation.tabs
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.relocation.BringIntoViewRequester
|
||||||
import androidx.compose.foundation.layout.padding
|
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
||||||
import androidx.compose.material.icons.filled.Lock
|
import androidx.compose.material.icons.filled.Lock
|
||||||
import androidx.compose.material.icons.filled.Public
|
import androidx.compose.material.icons.filled.Public
|
||||||
import androidx.compose.material3.Text
|
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.compose.ui.unit.sp
|
||||||
import fr.iut.alldev.allin.R
|
import fr.iut.alldev.allin.R
|
||||||
|
import fr.iut.alldev.allin.ui.betcreation.components.BetCreationScreenBottomText
|
||||||
import fr.iut.alldev.allin.ui.core.AllInIconChip
|
import fr.iut.alldev.allin.ui.core.AllInIconChip
|
||||||
|
import fr.iut.alldev.allin.ui.core.AllInTextAndIcon
|
||||||
|
import fr.iut.alldev.allin.ui.core.AllInTextField
|
||||||
|
import fr.iut.alldev.allin.ui.theme.AllInTheme
|
||||||
|
|
||||||
|
@OptIn(ExperimentalFoundationApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun BetCreationScreenQuestionTab() {
|
fun BetCreationScreenQuestionTab(
|
||||||
Column(Modifier.padding(20.dp)){
|
betTheme: String,
|
||||||
var isPublic by remember{
|
setBetTheme: (String)->Unit,
|
||||||
mutableStateOf(true)
|
betPhrase: String,
|
||||||
}
|
setBetPhrase: (String)->Unit,
|
||||||
Text(text = stringResource(id = R.string.Question))
|
isPublic: Boolean,
|
||||||
Spacer(modifier = Modifier.height(7.dp))
|
setIsPublic: (Boolean)->Unit
|
||||||
|
) {
|
||||||
|
val bringIntoViewRequester = remember { BringIntoViewRequester() }
|
||||||
|
Column(
|
||||||
|
Modifier
|
||||||
|
.fillMaxSize()
|
||||||
|
.padding(20.dp)
|
||||||
|
){
|
||||||
|
AllInTextAndIcon(
|
||||||
|
text = stringResource(id = R.string.Theme),
|
||||||
|
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
||||||
|
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
|
||||||
|
onClick = {}
|
||||||
|
)
|
||||||
|
AllInTextField(
|
||||||
|
placeholder = stringResource(id = R.string.Theme_placeholder),
|
||||||
|
value = betPhrase,
|
||||||
|
onValueChange = setBetPhrase,
|
||||||
|
bringIntoViewRequester = bringIntoViewRequester,
|
||||||
|
borderColor = AllInTheme.colors.white,
|
||||||
|
maxChar = 20,
|
||||||
|
placeholderFontSize = 13.sp,
|
||||||
|
modifier = Modifier.fillMaxWidth()
|
||||||
|
)
|
||||||
|
Spacer(modifier = Modifier.height(12.dp))
|
||||||
|
AllInTextAndIcon(
|
||||||
|
text = stringResource(id = R.string.Bet_Phrase),
|
||||||
|
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
||||||
|
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
|
||||||
|
onClick = {}
|
||||||
|
)
|
||||||
|
AllInTextField(
|
||||||
|
placeholder = stringResource(id = R.string.Bet_Phrase_placeholder),
|
||||||
|
value = betTheme,
|
||||||
|
borderColor = AllInTheme.colors.white,
|
||||||
|
onValueChange = setBetTheme,
|
||||||
|
bringIntoViewRequester = bringIntoViewRequester,
|
||||||
|
multiLine = true,
|
||||||
|
maxChar = 100,
|
||||||
|
placeholderFontSize = 13.sp,
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.height(100.dp)
|
||||||
|
)
|
||||||
|
Spacer(modifier = Modifier.height(35.dp))
|
||||||
|
AllInTextAndIcon(
|
||||||
|
text = stringResource(id = R.string.Bet_privacy),
|
||||||
|
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
||||||
|
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
|
||||||
|
onClick = {}
|
||||||
|
)
|
||||||
|
Row(
|
||||||
|
horizontalArrangement = Arrangement.spacedBy(8.dp)
|
||||||
|
){
|
||||||
AllInIconChip(
|
AllInIconChip(
|
||||||
text = "Public",
|
text = stringResource(id = R.string.Public),
|
||||||
leadingIcon = Icons.Default.Public,
|
leadingIcon = Icons.Default.Public,
|
||||||
onClick = {
|
onClick = {
|
||||||
isPublic = true
|
setIsPublic(true)
|
||||||
},
|
},
|
||||||
isSelected = isPublic
|
isSelected = isPublic
|
||||||
)
|
)
|
||||||
AllInIconChip(
|
AllInIconChip(
|
||||||
text = "Privé",
|
text = stringResource(id = R.string.Private),
|
||||||
leadingIcon = Icons.Default.Lock,
|
leadingIcon = Icons.Default.Lock,
|
||||||
onClick = {
|
onClick = {
|
||||||
isPublic = false
|
setIsPublic(false)
|
||||||
},
|
},
|
||||||
isSelected = !isPublic
|
isSelected = !isPublic
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Spacer(modifier = Modifier.height(52.dp))
|
||||||
|
Column(
|
||||||
|
verticalArrangement = Arrangement.spacedBy(17.dp)
|
||||||
|
) {
|
||||||
|
if(isPublic){
|
||||||
|
BetCreationScreenBottomText(text = stringResource(id = R.string.public_bottom_text_1))
|
||||||
|
BetCreationScreenBottomText(text = stringResource(id = R.string.public_bottom_text_2))
|
||||||
|
}else{
|
||||||
|
BetCreationScreenBottomText(text = stringResource(id = R.string.private_bottom_text_1))
|
||||||
|
BetCreationScreenBottomText(text = stringResource(id = R.string.private_bottom_text_2))
|
||||||
|
BetCreationScreenBottomText(text = stringResource(id = R.string.private_bottom_text_3))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package fr.iut.alldev.allin.ui.core
|
||||||
|
|
||||||
|
import androidx.compose.material.ripple.LocalRippleTheme
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import fr.iut.alldev.allin.ui.theme.AllInRippleTheme
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun AllInRipple(
|
||||||
|
color: Color,
|
||||||
|
content: @Composable ()->Unit
|
||||||
|
) {
|
||||||
|
CompositionLocalProvider(
|
||||||
|
LocalRippleTheme provides AllInRippleTheme(color),
|
||||||
|
content = content
|
||||||
|
)
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
package fr.iut.alldev.allin.ui.core
|
||||||
|
|
||||||
|
import android.content.res.Configuration
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.Spacer
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
|
import androidx.compose.foundation.layout.width
|
||||||
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
|
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.theme.AllInTheme
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun AllInTextAndIcon(
|
||||||
|
text: String,
|
||||||
|
icon: ImageVector,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
onClick: ()->Unit
|
||||||
|
) {
|
||||||
|
val interactionSource = remember { MutableInteractionSource() }
|
||||||
|
Row(
|
||||||
|
modifier = modifier
|
||||||
|
.clickable(
|
||||||
|
interactionSource = interactionSource,
|
||||||
|
indication = null,
|
||||||
|
onClick = onClick
|
||||||
|
),
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = text,
|
||||||
|
style = AllInTheme.typography.h2,
|
||||||
|
fontWeight = FontWeight.Bold,
|
||||||
|
fontSize = 15.sp,
|
||||||
|
color = AllInTheme.themeColors.on_main_surface
|
||||||
|
)
|
||||||
|
Spacer(modifier = Modifier.width(5.dp))
|
||||||
|
Icon(
|
||||||
|
imageVector = icon,
|
||||||
|
contentDescription = null,
|
||||||
|
tint = AllInTheme.themeColors.on_main_surface,
|
||||||
|
modifier = Modifier
|
||||||
|
.size(15.dp)
|
||||||
|
.alpha(.8f)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||||
|
@Composable
|
||||||
|
private fun AllInTextAndIconPreview() {
|
||||||
|
AllInTheme {
|
||||||
|
AllInTextAndIcon(text = "Texte", icon = Icons.AutoMirrored.Outlined.HelpOutline) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue