@@ -43,49 +43,52 @@ internal fun HorizontalAvatarsSection(
43
43
44
44
val sectionPadding = 16 .dp
45
45
Surface (
46
- modifier.border(
47
- width = 1 .dp,
48
- color = MaterialTheme .colorScheme.surfaceContainerHighest,
49
- shape = RoundedCornerShape (8 .dp),
50
- ),
46
+ modifier = modifier,
51
47
) {
52
- Box {
53
- Column (
48
+ Column {
49
+ Box (
54
50
modifier = Modifier
51
+ .border(
52
+ width = 1 .dp,
53
+ color = MaterialTheme .colorScheme.surfaceContainerHighest,
54
+ shape = RoundedCornerShape (8 .dp),
55
+ )
55
56
.padding(vertical = sectionPadding),
56
57
) {
57
- QESectionTitle (
58
- title = stringResource(id = state.titleRes),
59
- modifier = Modifier
60
- .padding(horizontal = sectionPadding),
61
- )
62
- QESectionMessage (
63
- message = stringResource(R .string.gravatar_qe_avatar_picker_description),
64
- modifier = Modifier
65
- .padding(top = 4 .dp)
66
- .padding(horizontal = sectionPadding),
67
- )
68
- if (state.avatars.isEmpty()) {
69
- ListEmptyStateBox ()
70
- } else {
71
- LazyAvatarRow (
72
- avatars = state.avatars,
73
- onAvatarSelected = onAvatarSelected,
74
- onAvatarOptionClicked = onAvatarOptionClicked,
75
- horizontalArrangement = Arrangement .spacedBy(8 .dp),
76
- modifier = Modifier .padding(vertical = 24 .dp),
77
- state = listState,
78
- contentPadding = PaddingValues (horizontal = sectionPadding),
58
+ Column {
59
+ QESectionTitle (
60
+ title = stringResource(id = state.titleRes),
61
+ modifier = Modifier
62
+ .padding(horizontal = sectionPadding),
63
+ )
64
+ QESectionMessage (
65
+ message = stringResource(R .string.gravatar_qe_avatar_picker_description),
66
+ modifier = Modifier
67
+ .padding(top = 4 .dp)
68
+ .padding(horizontal = sectionPadding),
79
69
)
70
+ if (state.avatars.isEmpty()) {
71
+ ListEmptyStateBox ()
72
+ } else {
73
+ LazyAvatarRow (
74
+ avatars = state.avatars,
75
+ onAvatarSelected = onAvatarSelected,
76
+ onAvatarOptionClicked = onAvatarOptionClicked,
77
+ horizontalArrangement = Arrangement .spacedBy(8 .dp),
78
+ modifier = Modifier .padding(top = 24 .dp),
79
+ state = listState,
80
+ contentPadding = PaddingValues (horizontal = sectionPadding),
81
+ )
82
+ }
80
83
}
81
- UploadImageButton (
82
- onTakePhotoClick = onTakePhotoClick,
83
- onChoosePhotoClick = onChoosePhotoClick,
84
- enabled = state.uploadButtonEnabled,
85
- modifier = Modifier
86
- .padding(horizontal = sectionPadding),
87
- )
88
84
}
85
+ UploadImageButton (
86
+ onTakePhotoClick = onTakePhotoClick,
87
+ onChoosePhotoClick = onChoosePhotoClick,
88
+ enabled = state.uploadButtonEnabled,
89
+ modifier = Modifier
90
+ .padding(start = sectionPadding, end = sectionPadding, top = 24 .dp, bottom = 8 .dp),
91
+ )
89
92
}
90
93
}
91
94
}
@@ -94,48 +97,52 @@ internal fun HorizontalAvatarsSection(
94
97
@Preview(showBackground = true )
95
98
private fun HorizontalAvatarSectionPreview () {
96
99
GravatarTheme {
97
- HorizontalAvatarsSection (
98
- state = AvatarsSectionUiState (
99
- avatars = List (6 ) {
100
- AvatarUi .Uploaded (
101
- avatar = Avatar {
102
- imageUrl = URI .create(" https://gravatar.com/avatar/test" )
103
- imageId = it.toString()
104
- rating = Avatar .Rating .G
105
- altText = " alt"
106
- updatedDate = " "
107
- },
108
- isSelected = it == 0 ,
109
- isLoading = false ,
110
- )
111
- },
112
- scrollToIndex = null ,
113
- uploadButtonEnabled = true ,
114
- avatarPickerContentLayout = AvatarPickerContentLayout .Vertical ,
115
- ),
116
- onTakePhotoClick = { },
117
- onChoosePhotoClick = { },
118
- onAvatarSelected = { },
119
- onAvatarOptionClicked = { _, _ -> },
120
- )
100
+ Box (modifier = Modifier .padding(10 .dp)) {
101
+ HorizontalAvatarsSection (
102
+ state = AvatarsSectionUiState (
103
+ avatars = List (6 ) {
104
+ AvatarUi .Uploaded (
105
+ avatar = Avatar {
106
+ imageUrl = URI .create(" https://gravatar.com/avatar/test" )
107
+ imageId = it.toString()
108
+ rating = Avatar .Rating .G
109
+ altText = " alt"
110
+ updatedDate = " "
111
+ },
112
+ isSelected = it == 0 ,
113
+ isLoading = false ,
114
+ )
115
+ },
116
+ scrollToIndex = null ,
117
+ uploadButtonEnabled = true ,
118
+ avatarPickerContentLayout = AvatarPickerContentLayout .Vertical ,
119
+ ),
120
+ onTakePhotoClick = { },
121
+ onChoosePhotoClick = { },
122
+ onAvatarSelected = { },
123
+ onAvatarOptionClicked = { _, _ -> },
124
+ )
125
+ }
121
126
}
122
127
}
123
128
124
129
@Composable
125
130
@Preview(showBackground = true )
126
131
private fun HorizontalAvatarSectionEmptyPreview () {
127
132
GravatarTheme {
128
- HorizontalAvatarsSection (
129
- state = AvatarsSectionUiState (
130
- avatars = emptyList(),
131
- scrollToIndex = null ,
132
- uploadButtonEnabled = true ,
133
- avatarPickerContentLayout = AvatarPickerContentLayout .Vertical ,
134
- ),
135
- onTakePhotoClick = { },
136
- onChoosePhotoClick = { },
137
- onAvatarSelected = { },
138
- onAvatarOptionClicked = { _, _ -> },
139
- )
133
+ Box (modifier = Modifier .padding(10 .dp)) {
134
+ HorizontalAvatarsSection (
135
+ state = AvatarsSectionUiState (
136
+ avatars = emptyList(),
137
+ scrollToIndex = null ,
138
+ uploadButtonEnabled = true ,
139
+ avatarPickerContentLayout = AvatarPickerContentLayout .Vertical ,
140
+ ),
141
+ onTakePhotoClick = { },
142
+ onChoosePhotoClick = { },
143
+ onAvatarSelected = { },
144
+ onAvatarOptionClicked = { _, _ -> },
145
+ )
146
+ }
140
147
}
141
148
}
0 commit comments