refactor: move Loader component to core module

This commit is contained in:
Cutiful 2025-07-12 10:29:52 +07:00
parent ddcf31be9b
commit a7e977b871
6 changed files with 8 additions and 11 deletions

View File

@ -105,4 +105,7 @@ dependencies {
// placeholder or shimmer loading // placeholder or shimmer loading
implementation(libs.accompanist.placeholder.material) implementation(libs.accompanist.placeholder.material)
// Lottie Animation
implementation(libs.lottie.compose)
} }

View File

@ -1,11 +1,11 @@
package com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.component package com.syaroful.agrilinkvocpro.core.components
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import com.airbnb.lottie.compose.LottieAnimation import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.compose.LottieCompositionSpec import com.airbnb.lottie.compose.LottieCompositionSpec
import com.airbnb.lottie.compose.rememberLottieComposition import com.airbnb.lottie.compose.rememberLottieComposition
import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.R import com.syaroful.agrilinkvocpro.R
@Composable @Composable
fun Loader() { fun Loader() {

View File

@ -11,7 +11,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
@ -34,10 +33,10 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.navigation.NavController import androidx.navigation.NavController
import com.syaroful.agrilinkvocpro.core.components.DefaultErrorComponent import com.syaroful.agrilinkvocpro.core.components.DefaultErrorComponent
import com.syaroful.agrilinkvocpro.core.components.Loader
import com.syaroful.agrilinkvocpro.core.utils.ResultState import com.syaroful.agrilinkvocpro.core.utils.ResultState
import com.syaroful.agrilinkvocpro.growth_recipe_feature.R import com.syaroful.agrilinkvocpro.growth_recipe_feature.R
import com.syaroful.agrilinkvocpro.growth_recipe_feature.core.component.ListItemClustering import com.syaroful.agrilinkvocpro.growth_recipe_feature.core.component.ListItemClustering
import com.syaroful.agrilinkvocpro.presentation.theme.MainGreen
import org.koin.androidx.compose.koinViewModel import org.koin.androidx.compose.koinViewModel
import java.time.ZoneId import java.time.ZoneId
import java.time.ZonedDateTime import java.time.ZonedDateTime
@ -98,9 +97,7 @@ fun ClusterScreen(
) { ) {
when (state) { when (state) {
is ResultState.Loading -> { is ResultState.Loading -> {
CircularProgressIndicator( Loader()
color = MainGreen
)
} }
is ResultState.Error -> { is ResultState.Error -> {

View File

@ -99,7 +99,4 @@ dependencies {
implementation(libs.androidx.room.runtime) implementation(libs.androidx.room.runtime)
ksp(libs.androidx.room.compiler) ksp(libs.androidx.room.compiler)
implementation(libs.androidx.room.ktx) implementation(libs.androidx.room.ktx)
// Lottie Animation
implementation(libs.lottie.compose)
} }

View File

@ -40,8 +40,8 @@ import androidx.compose.ui.unit.dp
import com.syaroful.agrilinkvocpro.R import com.syaroful.agrilinkvocpro.R
import com.syaroful.agrilinkvocpro.core.components.AppButton import com.syaroful.agrilinkvocpro.core.components.AppButton
import com.syaroful.agrilinkvocpro.core.components.DefaultErrorComponent import com.syaroful.agrilinkvocpro.core.components.DefaultErrorComponent
import com.syaroful.agrilinkvocpro.core.components.Loader
import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.AppConstant import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.AppConstant
import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.component.Loader
import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.presentation.camera.CameraViewModel import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.presentation.camera.CameraViewModel
import org.koin.androidx.compose.koinViewModel import org.koin.androidx.compose.koinViewModel