@@ -4,12 +4,10 @@ import androidx.compose.foundation.Image
44import androidx.compose.foundation.background
55import androidx.compose.foundation.layout.Box
66import androidx.compose.foundation.layout.Column
7- import androidx.compose.foundation.layout.Spacer
87import androidx.compose.foundation.layout.WindowInsets
98import androidx.compose.foundation.layout.WindowInsetsSides
109import androidx.compose.foundation.layout.fillMaxSize
1110import androidx.compose.foundation.layout.fillMaxWidth
12- import androidx.compose.foundation.layout.height
1311import androidx.compose.foundation.layout.offset
1412import androidx.compose.foundation.layout.only
1513import androidx.compose.foundation.layout.padding
@@ -45,6 +43,7 @@ import to.bitkit.ui.components.EmptyStateView
4543import to.bitkit.ui.components.IncomingTransfer
4644import to.bitkit.ui.components.SecondaryButton
4745import to.bitkit.ui.components.TabBar
46+ import to.bitkit.ui.components.VerticalSpacer
4847import to.bitkit.ui.scaffold.AppTopBar
4948import to.bitkit.ui.scaffold.DrawerNavIcon
5049import to.bitkit.ui.scaffold.ScreenColumn
@@ -63,6 +62,7 @@ fun SpendingWalletScreen(
6362 onActivityItemClick : (String ) -> Unit ,
6463 onEmptyActivityRowClick : () -> Unit ,
6564 onTransferToSavingsClick : () -> Unit ,
65+ onTransferFromSavingsClick : () -> Unit ,
6666 onBackClick : () -> Unit ,
6767 balances : BalanceState = LocalBalances .current,
6868) {
@@ -76,7 +76,9 @@ fun SpendingWalletScreen(
7676 val hasChannels = channels.isNotEmpty()
7777 mutableStateOf(hasLnBalance && hasChannels)
7878 }
79-
79+ val canTransferFromSavings by remember(showEmptyState, balances.totalOnchainSats) {
80+ mutableStateOf(showEmptyState && balances.totalOnchainSats > 0uL )
81+ }
8082 val hazeState = rememberHazeState()
8183 Box (
8284 modifier = Modifier
@@ -129,8 +131,26 @@ fun SpendingWalletScreen(
129131 )
130132 }
131133
134+ if (canTransferFromSavings) {
135+ VerticalSpacer (32 .dp)
136+
137+ SecondaryButton (
138+ onClick = onTransferFromSavingsClick,
139+ text = stringResource(R .string.lightning__funding__button1),
140+ icon = {
141+ Icon (
142+ painter = painterResource(R .drawable.ic_transfer),
143+ contentDescription = null ,
144+ modifier = Modifier .size(16 .dp)
145+ )
146+ },
147+ hazeState = hazeState,
148+ modifier = Modifier .testTag(" TransferFromSavings" )
149+ )
150+ }
151+
132152 if (! showEmptyState) {
133- Spacer (modifier = Modifier .height( 32 .dp) )
153+ VerticalSpacer ( 32 .dp)
134154
135155 if (canTransfer) {
136156 SecondaryButton (
@@ -160,8 +180,7 @@ fun SpendingWalletScreen(
160180 }
161181 if (showEmptyState) {
162182 EmptyStateView (
163- text = stringResource(R .string.wallet__spending__onboarding)
164- .withAccent(accentColor = Colors .Purple ),
183+ text = stringResource(R .string.wallet__spending__onboarding).withAccent(accentColor = Colors .Purple ),
165184 modifier = Modifier
166185 .systemBarsPadding()
167186 .align(Alignment .BottomCenter )
@@ -182,6 +201,7 @@ private fun Preview() {
182201 onActivityItemClick = {},
183202 onEmptyActivityRowClick = {},
184203 onTransferToSavingsClick = {},
204+ onTransferFromSavingsClick = {},
185205 onBackClick = {},
186206 balances = BalanceState (totalLightningSats = 50_000u ),
187207 )
@@ -202,6 +222,7 @@ private fun PreviewTransfer() {
202222 onActivityItemClick = {},
203223 onEmptyActivityRowClick = {},
204224 onTransferToSavingsClick = {},
225+ onTransferFromSavingsClick = {},
205226 onBackClick = {},
206227 balances = BalanceState (
207228 totalLightningSats = 50_000u ,
@@ -225,6 +246,7 @@ private fun PreviewNoActivity() {
225246 onActivityItemClick = {},
226247 onEmptyActivityRowClick = {},
227248 onTransferToSavingsClick = {},
249+ onTransferFromSavingsClick = {},
228250 onBackClick = {},
229251 balances = BalanceState (totalLightningSats = 50_000u ),
230252 )
@@ -245,7 +267,29 @@ private fun PreviewEmpty() {
245267 onActivityItemClick = {},
246268 onEmptyActivityRowClick = {},
247269 onTransferToSavingsClick = {},
270+ onTransferFromSavingsClick = {},
271+ onBackClick = {},
272+ )
273+ TabBar ()
274+ }
275+ }
276+ }
277+
278+ @Preview(showSystemUi = true )
279+ @Composable
280+ private fun PreviewEmptyWithSavings () {
281+ AppThemeSurface {
282+ Box {
283+ SpendingWalletScreen (
284+ channels = persistentListOf(),
285+ lightningActivities = persistentListOf(),
286+ onAllActivityButtonClick = {},
287+ onActivityItemClick = {},
288+ onEmptyActivityRowClick = {},
289+ onTransferToSavingsClick = {},
290+ onTransferFromSavingsClick = {},
248291 onBackClick = {},
292+ balances = BalanceState (totalOnchainSats = 100_000u ),
249293 )
250294 TabBar ()
251295 }
0 commit comments