Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MOB-1868] Emoji 추가 #65

Merged
merged 3 commits into from
Sep 3, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package io.channel.bezier.compose.component.emoji

import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.size
import androidx.compose.material.Icon
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import io.channel.bezier.BezierTheme
import io.channel.bezier.compose.component.badge.chat.BezierChatBadge
import io.channel.bezier.compose.component.emoji.properties.BezierEmojiBadge
import io.channel.bezier.compose.component.emoji.properties.BezierEmojiSize
import io.channel.bezier.extension.toEmojiPainter

@Composable
fun BezierEmoji(
name: String,
size: BezierEmojiSize,
modifier: Modifier = Modifier,
badge: BezierEmojiBadge = BezierEmojiBadge.None,
) {
Box(
modifier = modifier,
) {
Image(
modifier = Modifier.size(size.size),
painter = name.toEmojiPainter,
contentDescription = null,
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Box의 Modifier에 requiredSize를 넣고 Image의 Modifier의 사이즈를 fillMaxSize로 두면 좋을것 같아요

현재 상태에서는 디자인을 깨뜨릴 수 있어보여서요!


Box(
modifier = Modifier
.align(Alignment.BottomEnd)
.offset(x = 4.dp, y = 4.dp),
) {
when (badge) {
BezierEmojiBadge.None -> Unit
BezierEmojiBadge.Chat -> BezierChatBadge(size = size.chatBadgeSize)
}
}
}
}

@Preview(showBackground = true, widthDp = 700, heightDp = 300)
@Composable
private fun BezierEmojiPreview() {
BezierTheme {
Column {
Row(
horizontalArrangement = Arrangement.spacedBy(8.dp),
) {
BezierEmojiSize.entries.forEach { size ->
BezierEmoji(
name = "smile",
size = size,
)
}
}

Row(
horizontalArrangement = Arrangement.spacedBy(8.dp),
) {
BezierEmojiSize.entries.forEach { size ->
BezierEmoji(
name = "smile",
size = size,
badge = BezierEmojiBadge.Chat,
)
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package io.channel.bezier.compose.component.emoji.properties

sealed interface BezierEmojiBadge {
data object None : BezierEmojiBadge
data object Chat : BezierEmojiBadge
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package io.channel.bezier.compose.component.emoji.properties

import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import io.channel.bezier.compose.component.badge.chat.properties.BezierChatBadgeSize

enum class BezierEmojiSize(
internal val size: Dp,
internal val chatBadgeSize: BezierChatBadgeSize
) {
Size16(
size = 16.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size20(
size = 20.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size24(
size = 24.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size30(
size = 30.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size36(
size = 36.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size42(
size = 42.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size48(
size = 48.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size60(
size = 60.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size72(
size = 72.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size90(
size = 90.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
Size120(
size = 120.dp,
chatBadgeSize = BezierChatBadgeSize.Medium,
),
}