move TimerEntry to common.composable
This commit is contained in:
parent
08a33d1c9e
commit
d5b62e0cb9
3 changed files with 70 additions and 64 deletions
|
@ -0,0 +1,68 @@
|
||||||
|
package be.ugent.sel.studeez.common.composable
|
||||||
|
|
||||||
|
import androidx.annotation.StringRes
|
||||||
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
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.material.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
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 be.ugent.sel.studeez.R
|
||||||
|
import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
|
||||||
|
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun TimerEntry(
|
||||||
|
timerInfo: TimerInfo,
|
||||||
|
showButton: Boolean,
|
||||||
|
@StringRes buttonName: Int = -1,
|
||||||
|
onButtonClick: (TimerInfo) -> Unit = {}
|
||||||
|
) {
|
||||||
|
Row(
|
||||||
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween
|
||||||
|
) {
|
||||||
|
Column(
|
||||||
|
Modifier.padding(horizontal = 10.dp)
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = timerInfo.name, fontWeight = FontWeight.Bold, fontSize = 20.sp
|
||||||
|
)
|
||||||
|
Text(
|
||||||
|
text = timerInfo.description, fontWeight = FontWeight.Light, fontSize = 15.sp
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (showButton) {
|
||||||
|
StealthButton(buttonName) {
|
||||||
|
onButtonClick(timerInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun TimerEntryPreview() {
|
||||||
|
val timerInfo = CustomTimerInfo(
|
||||||
|
"my preview timer", "This is the description of the timer", 60
|
||||||
|
)
|
||||||
|
TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun TimerDefaultEntryPreview() {
|
||||||
|
val timerInfo = CustomTimerInfo(
|
||||||
|
"my preview timer", "This is the description of the timer", 60
|
||||||
|
)
|
||||||
|
TimerEntry(timerInfo = timerInfo, false, buttonName = R.string.edit) { }
|
||||||
|
}
|
|
@ -1,27 +1,19 @@
|
||||||
package be.ugent.sel.studeez.screens.timer_overview
|
package be.ugent.sel.studeez.screens.timer_overview
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
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.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.Text
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.ui.Alignment
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
|
||||||
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.sp
|
|
||||||
import androidx.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import be.ugent.sel.studeez.R
|
import be.ugent.sel.studeez.R
|
||||||
import be.ugent.sel.studeez.common.composable.BasicButton
|
import be.ugent.sel.studeez.common.composable.BasicButton
|
||||||
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
|
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
|
||||||
import be.ugent.sel.studeez.common.composable.StealthButton
|
import be.ugent.sel.studeez.common.composable.TimerEntry
|
||||||
import be.ugent.sel.studeez.common.ext.basicButton
|
import be.ugent.sel.studeez.common.ext.basicButton
|
||||||
import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
|
import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
|
||||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||||
|
@ -100,63 +92,9 @@ fun TimerOverviewScreen(
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
|
||||||
fun TimerEntry(
|
|
||||||
timerInfo: TimerInfo,
|
|
||||||
showButton: Boolean,
|
|
||||||
@StringRes buttonName: Int = -1,
|
|
||||||
onButtonClick: (TimerInfo) -> Unit = {}
|
|
||||||
) {
|
|
||||||
Row(
|
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
horizontalArrangement = Arrangement.SpaceBetween
|
|
||||||
) {
|
|
||||||
Column(
|
|
||||||
Modifier.padding(horizontal = 10.dp)
|
|
||||||
) {
|
|
||||||
Text(
|
|
||||||
text = timerInfo.name,
|
|
||||||
fontWeight = FontWeight.Bold,
|
|
||||||
fontSize = 20.sp
|
|
||||||
)
|
|
||||||
Text(
|
|
||||||
text = timerInfo.description,
|
|
||||||
fontWeight = FontWeight.Light,
|
|
||||||
fontSize = 15.sp
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (showButton) {
|
|
||||||
StealthButton(buttonName) {
|
|
||||||
onButtonClick(timerInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Preview
|
|
||||||
@Composable
|
|
||||||
fun TimerEntryPreview() {
|
|
||||||
val timerInfo = CustomTimerInfo(
|
|
||||||
"my preview timer", "This is the description of the timer", 60
|
|
||||||
)
|
|
||||||
TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { }
|
|
||||||
}
|
|
||||||
|
|
||||||
@Preview
|
|
||||||
@Composable
|
|
||||||
fun TimerDefaultEntryPreview() {
|
|
||||||
val timerInfo = CustomTimerInfo(
|
|
||||||
"my preview timer", "This is the description of the timer", 60
|
|
||||||
)
|
|
||||||
TimerEntry(timerInfo = timerInfo, false, buttonName = R.string.edit) { }
|
|
||||||
}
|
|
||||||
|
|
||||||
@Preview
|
@Preview
|
||||||
@Composable
|
@Composable
|
||||||
fun TimerOverviewPreview() {
|
fun TimerOverviewPreview() {
|
||||||
|
|
|
@ -10,13 +10,13 @@ import androidx.compose.ui.unit.dp
|
||||||
import androidx.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import be.ugent.sel.studeez.R
|
import be.ugent.sel.studeez.R
|
||||||
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
|
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
|
||||||
|
import be.ugent.sel.studeez.common.composable.TimerEntry
|
||||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||||
import be.ugent.sel.studeez.resources
|
import be.ugent.sel.studeez.resources
|
||||||
import be.ugent.sel.studeez.screens.drawer.DrawerActions
|
import be.ugent.sel.studeez.screens.drawer.DrawerActions
|
||||||
import be.ugent.sel.studeez.screens.drawer.getDrawerActions
|
import be.ugent.sel.studeez.screens.drawer.getDrawerActions
|
||||||
import be.ugent.sel.studeez.screens.navbar.NavigationBarActions
|
import be.ugent.sel.studeez.screens.navbar.NavigationBarActions
|
||||||
import be.ugent.sel.studeez.screens.navbar.getNavigationBarActions
|
import be.ugent.sel.studeez.screens.navbar.getNavigationBarActions
|
||||||
import be.ugent.sel.studeez.screens.timer_overview.TimerEntry
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
|
|
||||||
|
|
Reference in a new issue