Dependency Updates
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
package com.mealient.user_management.ui.profile
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.activity.compose.rememberLauncherForActivityResult
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.clickable
|
||||
@@ -13,10 +10,10 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.*
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
@@ -25,59 +22,28 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.input.ImeAction
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import coil.compose.AsyncImage
|
||||
import coil.request.ImageRequest
|
||||
import com.ramcosta.composedestinations.annotation.Destination
|
||||
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.InputStream
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
|
||||
@Destination
|
||||
@Composable
|
||||
fun UserProfileScreen(
|
||||
navigator: DestinationsNavigator,
|
||||
viewModel: UserProfileViewModel = hiltViewModel(),
|
||||
) {
|
||||
val state by viewModel.screenState.collectAsStateWithLifecycle()
|
||||
val context = LocalContext.current
|
||||
|
||||
val imagePickerLauncher = rememberLauncherForActivityResult(
|
||||
contract = ActivityResultContracts.GetContent()
|
||||
) { uri: Uri? ->
|
||||
uri?.let { selectedUri ->
|
||||
// Convert URI to byte array
|
||||
// This would typically be done in a background thread
|
||||
try {
|
||||
val inputStream: InputStream? = context.contentResolver.openInputStream(selectedUri)
|
||||
inputStream?.use { stream ->
|
||||
val bytes = stream.readBytes()
|
||||
val fileName = "profile_image_${System.currentTimeMillis()}.jpg"
|
||||
viewModel.onEvent(ProfileScreenEvent.UpdateProfileImage(bytes, fileName))
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
// Handle error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
viewModel.onEvent(ProfileScreenEvent.LoadProfile)
|
||||
}
|
||||
|
||||
val state by viewModel.screenState.collectAsState()
|
||||
|
||||
UserProfileContent(
|
||||
state = state,
|
||||
onEvent = viewModel::onEvent,
|
||||
onSelectImage = { imagePickerLauncher.launch("image/*") }
|
||||
onSelectImage = { /* TODO: Implement image selection */ }
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user