1+ package com.flint.core.designsystem.component.image
2+
3+ import androidx.compose.foundation.background
4+ import androidx.compose.foundation.clickable
5+ import androidx.compose.foundation.layout.Box
6+ import androidx.compose.foundation.layout.fillMaxSize
7+ import androidx.compose.foundation.layout.padding
8+ import androidx.compose.foundation.layout.size
9+ import androidx.compose.foundation.shape.CircleShape
10+ import androidx.compose.material3.Icon
11+ import androidx.compose.runtime.Composable
12+ import androidx.compose.ui.Alignment
13+ import androidx.compose.ui.Modifier
14+ import androidx.compose.ui.graphics.Color
15+ import androidx.compose.ui.graphics.vector.ImageVector
16+ import androidx.compose.ui.res.vectorResource
17+ import androidx.compose.ui.tooling.preview.Preview
18+ import androidx.compose.ui.unit.dp
19+ import com.flint.R
20+ import com.flint.core.designsystem.theme.FlintTheme
21+
22+ @Composable
23+ fun EditProfileImage (
24+ imageUrl : String ,
25+ onClickEdit : () -> Unit ,
26+ modifier : Modifier = Modifier
27+ ) {
28+ Box (
29+ modifier = modifier.size(128 .dp)
30+ ) {
31+ NetworkImage (
32+ imageUrl = imageUrl,
33+ shape = CircleShape ,
34+ modifier = Modifier
35+ .fillMaxSize()
36+ .padding(4 .dp)
37+ .align(Alignment .Center )
38+ )
39+
40+ Icon (
41+ imageVector = ImageVector .vectorResource(id = R .drawable.ic_profile_change),
42+ contentDescription = " camera" ,
43+ tint = Color .Unspecified ,
44+ modifier =
45+ Modifier
46+ .align(Alignment .BottomEnd )
47+ .size(48 .dp)
48+ .clickable { onClickEdit() },
49+ )
50+ }
51+ }
52+
53+ @Preview(showBackground = true )
54+ @Composable
55+ fun EditProfileImagePreview () {
56+ FlintTheme {
57+ Box (
58+ modifier = Modifier
59+ .background(FlintTheme .colors.background)
60+ ) {
61+ EditProfileImage (
62+ imageUrl = " " ,
63+ onClickEdit = {}
64+ )
65+ }
66+ }
67+ }
0 commit comments