From e39245a35dc2ef79db9f619f42a27196b2656245 Mon Sep 17 00:00:00 2001
From: Gael-Android <84790707+Gael-Android@users.noreply.github.com>
Date: Sun, 19 Jan 2025 19:56:38 +0900
Subject: [PATCH] =?UTF-8?q?Divider=20=EC=A0=9C=EC=9E=91=20(#16)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* add : width를 nullable로 하는 버전 생성
* add : fillMaxWidth인 divider와 너비를 지정할 수 있는 Divider분리
* chore : 프리뷰수정
* chore : 리뷰 반영
---
.idea/deploymentTargetSelector.xml | 16 +++++
.idea/git_toolbox_blame.xml | 6 ++
.idea/gradle.xml | 21 ++++++
.idea/runConfigurations.xml | 13 ++++
.../com/yourssu/handy/demo/DividerPreview.kt | 31 +++++++++
.../com/yourssu/handy/compose/Divider.kt | 65 +++++++++++++++++++
6 files changed, 152 insertions(+)
create mode 100644 .idea/deploymentTargetSelector.xml
create mode 100644 .idea/git_toolbox_blame.xml
create mode 100644 .idea/gradle.xml
create mode 100644 .idea/runConfigurations.xml
create mode 100644 app/src/main/kotlin/com/yourssu/handy/demo/DividerPreview.kt
create mode 100644 compose/src/main/kotlin/com/yourssu/handy/compose/Divider.kt
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
new file mode 100644
index 00000000..5394540f
--- /dev/null
+++ b/.idea/deploymentTargetSelector.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/git_toolbox_blame.xml b/.idea/git_toolbox_blame.xml
new file mode 100644
index 00000000..7dc12496
--- /dev/null
+++ b/.idea/git_toolbox_blame.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 00000000..a4253118
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 00000000..931b96c3
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/yourssu/handy/demo/DividerPreview.kt b/app/src/main/kotlin/com/yourssu/handy/demo/DividerPreview.kt
new file mode 100644
index 00000000..c7fbb740
--- /dev/null
+++ b/app/src/main/kotlin/com/yourssu/handy/demo/DividerPreview.kt
@@ -0,0 +1,31 @@
+package com.yourssu.handy.demo
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.yourssu.handy.compose.Divider
+import com.yourssu.handy.compose.DividerThickness
+import com.yourssu.handy.compose.HandyTheme
+import com.yourssu.handy.compose.Text
+
+@Preview(showBackground = true)
+@Composable
+fun DividerExample() {
+ Column {
+ Text("Section 1")
+ Divider(
+ dividerThickness = DividerThickness.TWO,
+ width = 100.dp,
+ color = HandyTheme.colors.bgBasicBlack
+ )
+ Text("Section 2")
+ Divider(
+ dividerThickness = DividerThickness.FOUR,
+ width = 200.dp,
+ color = HandyTheme.colors.bgBasicBlack
+ )
+ Text("Section 3")
+ Divider(dividerThickness = DividerThickness.EIGHT, color = HandyTheme.colors.bgBasicBlack)
+ }
+}
diff --git a/compose/src/main/kotlin/com/yourssu/handy/compose/Divider.kt b/compose/src/main/kotlin/com/yourssu/handy/compose/Divider.kt
new file mode 100644
index 00000000..3f52cc10
--- /dev/null
+++ b/compose/src/main/kotlin/com/yourssu/handy/compose/Divider.kt
@@ -0,0 +1,65 @@
+package com.yourssu.handy.compose
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.width
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+
+/**
+ * Divider의 두께를 정의하는 enum class
+ */
+enum class DividerThickness(
+ val size: Dp
+) {
+ ONE(1.dp),
+ TWO(2.dp),
+ FOUR(4.dp),
+ EIGHT(8.dp),
+}
+
+/**
+ * width를 지정할 수 있는 Divider
+ * @param width Divider의 너비
+ * @param color Divider의 색상
+ * @param dividerThickness Divider의 두께
+ */
+@Composable
+fun Divider(
+ dividerThickness: DividerThickness,
+ modifier: Modifier = Modifier,
+ width: Dp = 0.dp,
+ color: Color = HandyTheme.colors.bgBasicStrong,
+) {
+ Box(
+ modifier = modifier
+ .width(width)
+ .height(dividerThickness.size)
+ .background(color)
+ )
+}
+
+/**
+ * width를 지정할 수 없는 Divider
+ * 기본적으로 fillMaxWidth를 사용
+ * @param color Divider의 색상
+ * @param dividerThickness Divider의 두께
+ */
+@Composable
+fun Divider(
+ dividerThickness: DividerThickness,
+ modifier: Modifier = Modifier,
+ color: Color = HandyTheme.colors.bgBasicStrong,
+) {
+ Box(
+ modifier = modifier
+ .fillMaxWidth()
+ .height(dividerThickness.size)
+ .background(color)
+ )
+}
\ No newline at end of file