fin page Accueil + ajout stub manquant

pull/45/head
Maxime ROCHER 4 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(
text = "Film : ${quote.source}", text = "Film : ${quote.source}",
color = Color.White, color = Color.White,
fontSize = 12.sp fontSize = 12.sp,
maxLines = 1,
overflow = TextOverflow.Ellipsis
) )
Text( Text(
text = "Personnage : ${quote.character}", text = "Personnage : ${quote.character}",
color = Color.White, 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.LazyColumn
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier 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.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.data.local.QuoteStub
import com.example.what_the_fantasy.ui.components.NavBar import com.example.what_the_fantasy.ui.components.NavBar
import com.example.what_the_fantasy.ui.components.QuoteLittle import com.example.what_the_fantasy.ui.components.QuoteLittle
@ -22,8 +27,8 @@ fun AccueilPage(
navQuiz: (Int) -> Unit, navQuiz: (Int) -> Unit,
navProfil: (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) val quotes = QuoteStub.allQuotes.take(itemCount)
NavBar( NavBar(
@ -40,17 +45,45 @@ fun AccueilPage(
.background(colorBackground) .background(colorBackground)
) { ) {
LazyColumn(modifier = Modifier.weight(1f)) { 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 -> items(quotes) { quote ->
QuoteLittle(quote) QuoteLittle(quote)
} }
// Si on a encore des éléments à charger, on affiche le bouton
if (itemCount < QuoteStub.allQuotes.size) { if (itemCount < QuoteStub.allQuotes.size) {
item { item {
Box(modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.Center) { LaunchedEffect(itemCount) {
Button(onClick = { itemCount += 15 }) { itemCount += 15
Text("Charger plus")
} }
Box(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
contentAlignment = Alignment.Center
) {
CircularProgressIndicator()
} }
} }
} }

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