@@ -4,38 +4,32 @@ import androidx.compose.foundation.layout.Arrangement
4
4
import androidx.compose.foundation.layout.Column
5
5
import androidx.compose.foundation.layout.Spacer
6
6
import androidx.compose.foundation.layout.fillMaxSize
7
- import androidx.compose.foundation.layout.fillMaxWidth
8
7
import androidx.compose.foundation.layout.height
9
8
import androidx.compose.foundation.layout.padding
10
9
import androidx.compose.material.icons.Icons
11
10
import androidx.compose.material.icons.filled.ArrowBack
12
- import androidx.compose.material3.Button
13
- import androidx.compose.material3.CenterAlignedTopAppBar
14
- import androidx.compose.material3.ExperimentalMaterial3Api
15
- import androidx.compose.material3.Icon
16
- import androidx.compose.material3.IconButton
17
11
import androidx.compose.material3.MaterialTheme
18
- import androidx.compose.material3.OutlinedButton
19
12
import androidx.compose.material3.Scaffold
20
13
import androidx.compose.material3.Text
21
- import androidx.compose.material3.TextButton
22
14
import androidx.compose.runtime.Composable
23
15
import androidx.compose.ui.Alignment
24
16
import androidx.compose.ui.Modifier
17
+ import app.app.samplekmp.resources.RhealPrimary
25
18
import app.app.samplekmp.resources.Space16
26
- import app.app.samplekmp.resources.Space24
27
19
import app.app.samplekmp.resources.Space48
28
20
import app.app.samplekmp.resources.Space64
29
21
import app.app.samplekmp.resources.Space8
22
+ import app.app.samplekmp.resources.composables.button.GradientButton
23
+ import app.app.samplekmp.resources.composables.button.TextButtonCustom
30
24
import app.app.samplekmp.resources.composables.form.login.LoginForm
31
25
import app.app.samplekmp.resources.composables.form.login.rememberLoginFormState
26
+ import app.app.samplekmp.resources.composables.topbar.TopBar
32
27
import org.jetbrains.compose.resources.stringResource
33
28
import samplekmp.composeapp.generated.resources.Res
34
29
import samplekmp.composeapp.generated.resources.forgot_password
35
30
import samplekmp.composeapp.generated.resources.login
36
31
import samplekmp.composeapp.generated.resources.register
37
32
38
- @OptIn(ExperimentalMaterial3Api ::class )
39
33
@Composable
40
34
fun SignInScaffold (
41
35
onBackClick : () -> Unit ,
@@ -45,62 +39,50 @@ fun SignInScaffold(
45
39
) {
46
40
Scaffold (
47
41
topBar = {
48
- CenterAlignedTopAppBar (
49
- title = {},
50
- navigationIcon = {
51
- IconButton (onClick = onBackClick) {
52
- Icon (imageVector = Icons .Default .ArrowBack , contentDescription = null )
53
- }
54
- }
42
+ TopBar (
43
+ icon = Icons .Default .ArrowBack ,
44
+ onBackClick = onBackClick
55
45
)
56
46
}
57
- ) { padding ->
47
+ ) { paddingValues ->
58
48
Column (
59
- modifier = Modifier
60
- .padding(padding)
61
- .fillMaxSize(),
62
49
verticalArrangement = Arrangement .Center ,
63
50
horizontalAlignment = Alignment .CenterHorizontally ,
51
+ modifier = Modifier
52
+ .fillMaxSize()
53
+ .padding(
54
+ top = paddingValues.calculateTopPadding(),
55
+ bottom = paddingValues.calculateBottomPadding(),
56
+ start = Space16 ,
57
+ end = Space16 )
64
58
) {
65
59
val formState = rememberLoginFormState()
66
60
Text (
67
61
text = stringResource(Res .string.login),
68
62
style = MaterialTheme .typography.displayMedium
69
63
)
70
64
Spacer (modifier = Modifier .height(Space64 ))
71
- LoginForm (
72
- state = formState,
73
- modifier = Modifier .padding(horizontal = Space24 )
74
- )
75
- TextButton (
76
- onClick = onForgotPasswordClick,
65
+ LoginForm (state = formState)
66
+ TextButtonCustom (
67
+ onTextButtonClick = onForgotPasswordClick,
68
+ title = Res .string.forgot_password,
69
+ color = RhealPrimary ,
77
70
modifier = Modifier
78
71
.align(Alignment .End )
79
- .padding(end = Space16 , top = Space8 )
80
- ) {
81
- Text (text = stringResource(Res .string.forgot_password))
82
- }
72
+ .padding(top = Space8 )
73
+ )
83
74
Spacer (modifier = Modifier .height(Space48 ))
84
- Button (
85
- onClick = {
75
+ GradientButton (
76
+ title = Res .string.login,
77
+ onButtonPressed = {
86
78
onLoginClick(formState.email.value, formState.password.value)
87
- },
88
- modifier = Modifier
89
- .fillMaxWidth()
90
- .padding(horizontal = Space24 ),
91
- enabled = formState.isValid,
92
- ) {
93
- Text (text = stringResource(Res .string.login))
94
- }
95
- Spacer (modifier = Modifier .height(Space8 ))
96
- OutlinedButton (
97
- onClick = onRegisterClick,
98
- modifier = Modifier
99
- .fillMaxWidth()
100
- .padding(horizontal = Space24 )
101
- ) {
102
- Text (text = stringResource(Res .string.register))
103
- }
79
+ }
80
+ )
81
+ Spacer (modifier = Modifier .height(Space16 ))
82
+ GradientButton (
83
+ title = Res .string.register,
84
+ onButtonPressed = onRegisterClick,
85
+ )
104
86
}
105
87
}
106
88
}
0 commit comments