Skip to content

Commit

Permalink
add Custom Composable - OnboardingNavigationButton, OutlinedTextBox, …
Browse files Browse the repository at this point in the history
…StableImage
  • Loading branch information
eshc123 committed Aug 1, 2024
1 parent 2b212ce commit 70b65ee
Show file tree
Hide file tree
Showing 3 changed files with 135 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package com.goalpanzi.mission_mate.feature.onboarding.component

import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.goalpanzi.mission_mate.core.designsystem.ext.dropShadow
import com.goalpanzi.mission_mate.core.designsystem.theme.ColorGray1_FF404249
import com.goalpanzi.mission_mate.core.designsystem.theme.ColorGray3_FF727484
import com.goalpanzi.mission_mate.core.designsystem.theme.ColorWhite_FFFFFFFF
import com.goalpanzi.mission_mate.core.designsystem.theme.MissionMateTypography

@Composable
fun OnboardingNavigationButton(
@StringRes titleId : Int,
@StringRes descriptionId : Int,
@DrawableRes imageId: Int,
onClick : () -> Unit,
modifier: Modifier = Modifier,
shape: Shape = RoundedCornerShape(20.dp)
){
ElevatedButton(
modifier = modifier.dropShadow(shape),
onClick = onClick,
shape = shape,
colors = ButtonDefaults.elevatedButtonColors(
containerColor = ColorWhite_FFFFFFFF
),
contentPadding = PaddingValues()
) {
Column(
modifier = Modifier,
verticalArrangement = Arrangement.spacedBy(6.dp)
) {
Text(
modifier = Modifier.padding(start = 20.dp, end = 20.dp,top = 20.dp),
text = stringResource(id = titleId),
style = MissionMateTypography.title_xl_bold,
color = ColorGray1_FF404249
)
Text(
modifier = Modifier.padding(start = 20.dp, end = 20.dp, bottom = 12.dp),
text = stringResource(id = descriptionId),
style = MissionMateTypography.body_lg_regular,
color = ColorGray3_FF727484
)
StableImage(
modifier = Modifier
.padding(bottom = 12.dp, end = 8.dp)
.align(Alignment.End),
drawableResId = imageId
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.goalpanzi.mission_mate.feature.onboarding.component

import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import com.goalpanzi.mission_mate.core.designsystem.theme.ColorOrange_FFFF5732
import com.goalpanzi.mission_mate.core.designsystem.theme.MissionMateTypography

@Composable
fun OutlinedTextBox(
text : String,
modifier: Modifier = Modifier,
borderStroke: BorderStroke = BorderStroke(1.dp, ColorOrange_FFFF5732),
shape: Shape = RoundedCornerShape(50),
contentPadding : PaddingValues = PaddingValues(vertical = 1.dp, horizontal = 14.dp),
textStyle: TextStyle = MissionMateTypography.title_lg_regular,
textColor : Color = ColorOrange_FFFF5732
){
Box(
modifier = modifier
.border(borderStroke, shape)
.padding(contentPadding),
contentAlignment = Alignment.Center
){
Text(
text = text,
style = textStyle,
color = textColor
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.goalpanzi.mission_mate.feature.onboarding.component

import androidx.annotation.DrawableRes
import androidx.compose.foundation.Image
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource

@Composable
fun StableImage (
@DrawableRes drawableResId: Int,
modifier: Modifier = Modifier,
contentScale: ContentScale = ContentScale.Fit,
description : String? = null,
) {
val painter = painterResource(id = drawableResId)
Image(
modifier = modifier,
painter = painter,
contentScale = contentScale,
contentDescription = description
)
}

0 comments on commit 70b65ee

Please sign in to comment.