fin page Accueil + ajout stub manquant

pull/45/head
Maxime ROCHER 2 months ago
parent 38038c7939
commit 8fea813004

@ -0,0 +1,15 @@
package com.example.what_the_fantasy.data.local
import com.example.what_the_fantasy.data.model.Quote
object DailyQuoteStub {
val Dailyquote = Quote(
id = 1,
content = "All we have to decide is what to do with the time that is given us.",
likes = 466,
language = "en",
character = CharacterStub.gandalf.name,
source = "The Lord of the Rings: The Fellowship of the Ring",
imgUrl = CharacterStub.gandalf.imgUrl
)
}

@ -0,0 +1,19 @@
package com.example.what_the_fantasy.data.local
import com.example.what_the_fantasy.data.model.Favorite
object FavoriteStub {
val favorites: MutableList<Favorite> = mutableListOf(
Favorite(UserStub.users[0], QuoteStub.quote1),
Favorite(UserStub.users[1], QuoteStub.quote12),
Favorite(UserStub.users[2], QuoteStub.quote13),
Favorite(UserStub.users[3], QuoteStub.quote6),
Favorite(UserStub.users[4], QuoteStub.quote5),
Favorite(UserStub.users[5], QuoteStub.quote3),
Favorite(UserStub.users[6], QuoteStub.quote17),
Favorite(UserStub.users[7], QuoteStub.quote7),
Favorite(UserStub.users[8], QuoteStub.quote19),
Favorite(UserStub.users[9], QuoteStub.quote20),
Favorite(UserStub.users[10], QuoteStub.quote11)
)
}

@ -0,0 +1,6 @@
package com.example.what_the_fantasy.data.model
class Favorite (
val user: User,
val quote: Quote
)

@ -75,12 +75,16 @@ fun QuoteLittle(quote: Quote, modifier: Modifier = Modifier) {
Text(
text = "Film : ${quote.source}",
color = Color.White,
fontSize = 12.sp
fontSize = 12.sp,
maxLines = 1,
overflow = TextOverflow.Ellipsis
)
Text(
text = "Personnage : ${quote.character}",
color = Color.White,
fontSize = 12.sp
fontSize = 12.sp,
maxLines = 1,
overflow = TextOverflow.Ellipsis
)
}
}

@ -5,11 +5,16 @@ import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Button
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.what_the_fantasy.data.local.DailyQuoteStub
import com.example.what_the_fantasy.data.local.QuoteStub
import com.example.what_the_fantasy.ui.components.NavBar
import com.example.what_the_fantasy.ui.components.QuoteLittle
@ -22,8 +27,8 @@ fun AccueilPage(
navQuiz: (Int) -> Unit,
navProfil: (Int) -> Unit
) {
var itemCount by remember { mutableStateOf(15) } // On affiche 15 quotes au début
var itemCount by remember { mutableStateOf(15) }
val dailyQuote = DailyQuoteStub.Dailyquote
val quotes = QuoteStub.allQuotes.take(itemCount)
NavBar(
@ -40,17 +45,45 @@ fun AccueilPage(
.background(colorBackground)
) {
LazyColumn(modifier = Modifier.weight(1f)) {
item{
Column {
Text(
text = "▶ Citation du jour ◀",
color = Color.White,
fontSize = 24.sp,
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
textAlign = TextAlign.Center
)
QuoteLittle(dailyQuote)
}
Text(
text = "▶ Suggestions ◀",
color = Color.White,
fontSize = 24.sp,
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
textAlign = TextAlign.Center
)
}
items(quotes) { quote ->
QuoteLittle(quote)
}
// Si on a encore des éléments à charger, on affiche le bouton
if (itemCount < QuoteStub.allQuotes.size) {
item {
Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.Center) {
Button(onClick = { itemCount += 15 }) {
Text("Charger plus")
}
LaunchedEffect(itemCount) {
itemCount += 15
}
Box(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
contentAlignment = Alignment.Center
) {
CircularProgressIndicator()
}
}
}

@ -34,9 +34,7 @@ fun FavoritePage(
.background(colorBackground),
contentAlignment = Alignment.Center
){
Column {
Text("Favorite", color = Color.White, fontSize = 20.sp)
}
}
}
}
Loading…
Cancel
Save