Skip to content

Commit

Permalink
Hide discovery message when transfer list has at least one item
Browse files Browse the repository at this point in the history
  • Loading branch information
LunarX committed Sep 20, 2024
1 parent b696172 commit 91d90de
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,39 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.infomaniak.swisstransfer.R
import com.infomaniak.swisstransfer.ui.components.BrandTobAppBar
import com.infomaniak.swisstransfer.ui.components.EmptyState
import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus
import com.infomaniak.swisstransfer.ui.images.illus.MascotSearching
import com.infomaniak.swisstransfer.ui.screen.main.received.components.ReceivedEmptyFab
import com.infomaniak.swisstransfer.ui.screen.main.sent.SentViewModel
import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme
import com.infomaniak.swisstransfer.ui.utils.PreviewMobile
import com.infomaniak.swisstransfer.ui.utils.PreviewTablet

@Composable
fun ReceivedScreen(navigateToDetails: (transferId: Int) -> Unit) {
fun ReceivedScreen(
navigateToDetails: (transferId: Int) -> Unit,
sentViewModel: SentViewModel = hiltViewModel<SentViewModel>(),
) {
val transfers by sentViewModel.transfers.collectAsStateWithLifecycle()
val areTransfersEmpty by remember { derivedStateOf { transfers?.isEmpty() == true } }

ReceivedScreen { areTransfersEmpty }
}

@Composable
private fun ReceivedScreen(areTransfersEmpty: () -> Boolean) {
Scaffold(
topBar = { BrandTobAppBar() },
floatingActionButton = { ReceivedEmptyFab() },
floatingActionButton = { ReceivedEmptyFab(areTransfersEmpty) },
) { contentPadding ->
EmptyState(
icon = AppIllus.MascotSearching,
Expand All @@ -52,7 +69,7 @@ fun ReceivedScreen(navigateToDetails: (transferId: Int) -> Unit) {
private fun ReceivedScreenMobilePreview() {
SwissTransferTheme {
Surface {
ReceivedScreen {}
ReceivedScreen { true }
}
}
}
Expand All @@ -62,7 +79,7 @@ private fun ReceivedScreenMobilePreview() {
private fun ReceivedScreenTabletPreview() {
SwissTransferTheme {
Surface {
ReceivedScreen {}
ReceivedScreen { true }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.constraintlayout.compose.ConstraintLayout
Expand All @@ -38,32 +37,34 @@ import com.infomaniak.swisstransfer.ui.theme.Margin
import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme

@Composable
fun ReceivedEmptyFab() {
fun ReceivedEmptyFab(isMessageVisible: () -> Boolean) {
ConstraintLayout {
val (text, icon, fab) = createRefs()

Text(
text = stringResource(R.string.firstTransferDescription),
style = SwissTransferTheme.typography.bodyRegular,
color = SwissTransferTheme.colors.secondaryTextColor,
modifier = Modifier
.padding(PaddingValues(top = Margin.XLarge))
.constrainAs(text) {
bottom.linkTo(icon.top, Margin.Small)
end.linkTo(icon.end, Margin.Small)
},
)
if (isMessageVisible()) {
Text(
text = stringResource(R.string.firstTransferDescription),
style = SwissTransferTheme.typography.bodyRegular,
color = SwissTransferTheme.colors.secondaryTextColor,
modifier = Modifier
.padding(PaddingValues(top = Margin.XLarge))
.constrainAs(text) {
bottom.linkTo(icon.top, Margin.Small)
end.linkTo(icon.end, Margin.Small)
},
)

Icon(
modifier = Modifier
.constrainAs(icon) {
top.linkTo(fab.top)
bottom.linkTo(fab.bottom, Margin.Small)
end.linkTo(fab.start, Margin.Medium)
},
imageVector = AppIllus.ArrowRightCurved,
contentDescription = null,
)
Icon(
modifier = Modifier
.constrainAs(icon) {
top.linkTo(fab.top)
bottom.linkTo(fab.bottom, Margin.Small)
end.linkTo(fab.start, Margin.Medium)
},
imageVector = AppIllus.ArrowRightCurved,
contentDescription = null,
)
}

NewTransferFab(
modifier = Modifier.constrainAs(fab) { },
Expand All @@ -79,7 +80,7 @@ private fun ReceivedEmptyFabPreview() {
SwissTransferTheme {
Surface {
Row(Modifier.fillMaxSize(), horizontalArrangement = Arrangement.End, verticalAlignment = Alignment.Bottom) {
ReceivedEmptyFab()
ReceivedEmptyFab { true }
}
}
}
Expand Down

0 comments on commit 91d90de

Please sign in to comment.