1+ package com.flipcash.app.core.transfers
2+
3+ import android.os.Parcelable
4+ import androidx.compose.runtime.Composable
5+ import androidx.compose.ui.res.stringResource
6+ import com.flipcash.app.core.NavScreenProvider
7+ import com.flipcash.core.R
8+ import kotlinx.parcelize.IgnoredOnParcel
9+ import kotlinx.parcelize.Parcelize
10+
11+ @Parcelize
12+ sealed interface TransferDirection : Parcelable {
13+
14+ @get:Composable
15+ val title: String
16+
17+ val nextScreen: NavScreenProvider
18+
19+ @get:Composable
20+ val description: String
21+
22+ @get:Composable
23+ val learnMoreAction: String
24+
25+ @get:Composable
26+ val continueAction: String
27+
28+ data object Incoming : TransferDirection {
29+ @IgnoredOnParcel
30+ override val nextScreen: NavScreenProvider =
31+ NavScreenProvider .HomeScreen .Menu .Transfers .Deposit
32+ override val title: String
33+ @Composable get() = stringResource(R .string.title_depositUsdc)
34+ override val description: String
35+ @Composable get() = stringResource(R .string.title_learnToDeposit)
36+ override val learnMoreAction: String
37+ @Composable get() = stringResource(R .string.action_learnHowToDepositFunds)
38+ override val continueAction: String
39+ @Composable get() = stringResource(R .string.action_depositFundsNow)
40+ }
41+
42+ data object Outgoing : TransferDirection {
43+ @IgnoredOnParcel
44+ override val nextScreen: NavScreenProvider =
45+ NavScreenProvider .HomeScreen .Menu .Transfers .Withdrawal .Amount
46+ override val title: String
47+ @Composable get() = stringResource(R .string.title_withdrawUsdc)
48+ override val description: String
49+ @Composable get() = stringResource(R .string.title_learnToWithdraw)
50+ override val learnMoreAction: String
51+ @Composable get() = stringResource(R .string.action_learnHowToWithdrawFunds)
52+ override val continueAction: String
53+ @Composable get() = stringResource(R .string.action_withdrawFundsNow)
54+ }
55+ }
0 commit comments