@@ -9,39 +9,49 @@ import androidx.compose.ui.Modifier
9
9
import androidx.compose.ui.res.stringResource
10
10
import androidx.compose.ui.tooling.preview.Preview
11
11
import com.ramcosta.composedestinations.annotation.Destination
12
- import com.ramcosta.composedestinations.result.EmptyResultBackNavigator
13
- import com.ramcosta.composedestinations.result.ResultBackNavigator
12
+ import com.ramcosta.composedestinations.navigation.DestinationsNavigator
13
+ import com.ramcosta.composedestinations.navigation.EmptyDestinationsNavigator
14
14
import com.ramcosta.composedestinations.spec.DestinationStyle
15
15
import net.mullvad.mullvadvpn.R
16
16
import net.mullvad.mullvadvpn.compose.button.NegativeButton
17
17
import net.mullvad.mullvadvpn.compose.button.PrimaryButton
18
+ import net.mullvad.mullvadvpn.compose.util.CollectSideEffectWithLifecycle
18
19
import net.mullvad.mullvadvpn.lib.theme.AppTheme
20
+ import net.mullvad.mullvadvpn.viewmodel.ResetServerIpOverridesConfirmationUiSideEffect
21
+ import net.mullvad.mullvadvpn.viewmodel.ResetServerIpOverridesConfirmationViewModel
22
+ import org.koin.androidx.compose.koinViewModel
19
23
20
24
@Preview
21
25
@Composable
22
26
private fun PreviewResetServerIpOverridesConfirmationDialog () {
23
- AppTheme { ResetServerIpOverridesConfirmationDialog (EmptyResultBackNavigator () ) }
27
+ AppTheme { ResetServerIpOverridesConfirmationDialog (EmptyDestinationsNavigator ) }
24
28
}
25
29
26
30
@Destination(style = DestinationStyle .Dialog ::class )
27
31
@Composable
28
- fun ResetServerIpOverridesConfirmationDialog (
29
- resultNavigator : ResultBackNavigator <Boolean >,
30
- ) {
32
+ fun ResetServerIpOverridesConfirmationDialog (navigator : DestinationsNavigator ) {
33
+ val viewModel: ResetServerIpOverridesConfirmationViewModel = koinViewModel()
34
+ CollectSideEffectWithLifecycle (viewModel.uiSideEffect) {
35
+ when (it) {
36
+ ResetServerIpOverridesConfirmationUiSideEffect .OverridesCleared ->
37
+ navigator.navigateUp()
38
+ }
39
+ }
40
+
31
41
AlertDialog (
32
42
containerColor = MaterialTheme .colorScheme.background,
33
43
confirmButton = {
34
44
NegativeButton (
35
45
modifier = Modifier .fillMaxWidth(),
36
46
text = stringResource(id = R .string.server_ip_overrides_reset_reset_button),
37
- onClick = { resultNavigator.navigateBack(result = true ) }
47
+ onClick = viewModel::clearAllOverrides
38
48
)
39
49
},
40
50
dismissButton = {
41
51
PrimaryButton (
42
52
modifier = Modifier .fillMaxWidth(),
43
53
text = stringResource(R .string.cancel),
44
- onClick = resultNavigator::navigateBack
54
+ onClick = navigator::navigateUp
45
55
)
46
56
},
47
57
title = {
@@ -57,6 +67,6 @@ fun ResetServerIpOverridesConfirmationDialog(
57
67
style = MaterialTheme .typography.bodySmall,
58
68
)
59
69
},
60
- onDismissRequest = resultNavigator::navigateBack
70
+ onDismissRequest = navigator::navigateUp
61
71
)
62
72
}
0 commit comments