From 964d2ddb00a225f09d0facf52e26f1f043bc9550 Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 01:39:55 +0900
Subject: [PATCH 1/9] =?UTF-8?q?[UI]:=20book=20top=20app=20bar=20=EC=A0=9C?=
=?UTF-8?q?=EC=9E=91=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../thip/ui/common/topappbar/BookTopAppBar.kt | 68 +++++++++++++++++++
app/src/main/res/values/strings.xml | 2 +-
2 files changed, 69 insertions(+), 1 deletion(-)
create mode 100644 app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
new file mode 100644
index 00000000..93e55ede
--- /dev/null
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
@@ -0,0 +1,68 @@
+package com.texthip.thip.ui.common.topappbar
+
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.TopAppBar
+import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.tooling.preview.Preview
+import com.texthip.thip.R
+import com.texthip.thip.ui.common.view.CountingBar
+import com.texthip.thip.ui.theme.ThipTheme
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun BookTopAppBar(
+ onLeftClick: () -> Unit,
+ onRightClick: () -> Unit,
+ count: Int = 0,
+) {
+ TopAppBar(
+ navigationIcon = {
+ IconButton(onClick = {
+ onLeftClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_arrow_back),
+ contentDescription = "Back Button",
+ tint = Color.Unspecified
+ )
+ }
+
+ },
+ title = {
+ CountingBar(
+ count = count,
+ )
+ },
+ actions = {
+ IconButton(onClick = {
+ onRightClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_more),
+ contentDescription = "More Options",
+ tint = Color.Unspecified
+ )
+ }
+ },
+ colors = TopAppBarDefaults.topAppBarColors(
+ containerColor = Color.Transparent,
+ ),
+ )
+}
+
+@Preview(showBackground = false)
+@Composable
+private fun BookTopAppBarPreview() {
+ ThipTheme {
+ BookTopAppBar(
+ onLeftClick = { },
+ onRightClick = { },
+ count = 210
+ )
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a85018cb..8cfbc11b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,7 +2,7 @@
Thip
- π₯%dλͺ
μ΄ μ½κΈ°μ μ°Έμ¬μ€μ΄μμ!π₯
+ π₯ %dλͺ
μ΄ μ½κΈ°μ μ°Έμ¬μ€μ΄μμ! π₯
ꡬλ
From ef5fc445291cafe15704bd010026cb7b7922d30f Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 01:57:19 +0900
Subject: [PATCH 2/9] =?UTF-8?q?[UI]:=20default=20top=20app=20bar=20?=
=?UTF-8?q?=EC=A0=9C=EC=9E=91=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/deploymentTargetSelector.xml | 32 -------
.../thip/ui/common/topappbar/BookTopAppBar.kt | 3 +-
.../ui/common/topappbar/DefaultTopAppBar.kt | 86 +++++++++++++++++++
3 files changed, 87 insertions(+), 34 deletions(-)
delete mode 100644 .idea/deploymentTargetSelector.xml
create mode 100644 app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
deleted file mode 100644
index 75b3c473..00000000
--- a/.idea/deploymentTargetSelector.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
index 93e55ede..31a0c65f 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
@@ -16,9 +16,9 @@ import com.texthip.thip.ui.theme.ThipTheme
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun BookTopAppBar(
+ count: Int = 0,
onLeftClick: () -> Unit,
onRightClick: () -> Unit,
- count: Int = 0,
) {
TopAppBar(
navigationIcon = {
@@ -31,7 +31,6 @@ fun BookTopAppBar(
tint = Color.Unspecified
)
}
-
},
title = {
CountingBar(
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
new file mode 100644
index 00000000..abd37546
--- /dev/null
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
@@ -0,0 +1,86 @@
+package com.texthip.thip.ui.common.topappbar
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.material3.CenterAlignedTopAppBar
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.tooling.preview.Preview
+import com.texthip.thip.R
+import com.texthip.thip.ui.theme.ThipTheme.colors
+import com.texthip.thip.ui.theme.ThipTheme.typography
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun DefaultTopAppBar(
+ title: String = "νμ΄μ§λͺ
",
+ isTitleVisible: Boolean = true,
+ isRightIconVisible: Boolean = false,
+ onLeftClick: () -> Unit,
+ onRightClick: () -> Unit = {},
+) {
+ CenterAlignedTopAppBar(
+ navigationIcon = {
+ IconButton(onClick = {
+ onLeftClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_arrow_back),
+ contentDescription = "Back Button",
+ tint = Color.Unspecified
+ )
+ }
+ },
+ title = {
+ if (isTitleVisible) {
+ Text(
+ text = title,
+ color = colors.White,
+ style = typography.bigtitle_b700_s22_h24
+ )
+ }
+ },
+ actions = {
+ if (isRightIconVisible) {
+ IconButton(onClick = {
+ onRightClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_more),
+ contentDescription = "More Options",
+ tint = Color.Unspecified
+ )
+ }
+ }
+ },
+ colors = TopAppBarDefaults.topAppBarColors(
+ containerColor = Color.Transparent,
+ ),
+ )
+}
+
+@Preview
+@Composable
+private fun DefaultTopAppBarPreview() {
+ Column {
+ DefaultTopAppBar(
+ onLeftClick = {},
+ )
+ DefaultTopAppBar(
+ isRightIconVisible = true,
+ onLeftClick = {},
+ onRightClick = {},
+ )
+ DefaultTopAppBar(
+ isRightIconVisible = true,
+ isTitleVisible = false,
+ onLeftClick = {},
+ onRightClick = {},
+ )
+ }
+}
\ No newline at end of file
From 128ee8aa48e6c1e3f5f162960bbf8edf14ec4646 Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:11:25 +0900
Subject: [PATCH 3/9] =?UTF-8?q?[refactor]:=20header=20button=20=ED=99=9C?=
=?UTF-8?q?=EC=84=B1=ED=99=94=EB=90=A0=20=EB=95=8C=20=ED=81=B4=EB=A6=AD=20?=
=?UTF-8?q?=EA=B0=80=EB=8A=A5=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?=
=?UTF-8?q?=EC=A0=95=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../thip/ui/common/buttons/HeaderButton.kt | 23 +++++++++++--------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/app/src/main/java/com/texthip/thip/ui/common/buttons/HeaderButton.kt b/app/src/main/java/com/texthip/thip/ui/common/buttons/HeaderButton.kt
index cdff5839..a97ad7de 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/buttons/HeaderButton.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/buttons/HeaderButton.kt
@@ -10,10 +10,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateOf
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
@@ -27,19 +23,17 @@ import com.texthip.thip.ui.theme.ThipTheme.typography
fun HeaderButton(
modifier: Modifier = Modifier,
text: String,
+ enabled: Boolean = false,
onClick: () -> Unit = {},
) {
- var isClicked by remember { mutableStateOf(false) }
-
Box(
modifier = modifier
.background(
- color = if (isClicked) colors.Purple else colors.Grey02,
+ color = if (enabled) colors.Purple else colors.Grey02,
shape = RoundedCornerShape(20.dp)
)
- .clickable {
- isClicked = !isClicked
- onClick()
+ .let {
+ if (enabled) it.clickable(onClick = onClick) else it
}
.padding(vertical = 4.dp, horizontal = 12.dp),
contentAlignment = Alignment.Center,
@@ -60,8 +54,17 @@ private fun HeaderButtonPreview() {
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
+ // λΉνμ± μν
+ HeaderButton(
+ text = stringResource(R.string.finish),
+ enabled = false
+ )
+
+ // νμ± μν
HeaderButton(
text = stringResource(R.string.finish),
+ enabled = true,
+ onClick = { }
)
}
}
\ No newline at end of file
From de8b36720df13ef3dfc383d37eb0d3ba90283346 Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:12:00 +0900
Subject: [PATCH 4/9] =?UTF-8?q?[UI]:=20feed=20list=20top=20app=20bar=20?=
=?UTF-8?q?=EC=A0=9C=EC=9E=91=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ui/common/topappbar/FeedListTopAppBar.kt | 92 +++++++++++++++++++
app/src/main/res/values/strings.xml | 2 +
2 files changed, 94 insertions(+)
create mode 100644 app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt
new file mode 100644
index 00000000..7e8603b2
--- /dev/null
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt
@@ -0,0 +1,92 @@
+package com.texthip.thip.ui.common.topappbar
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.width
+import androidx.compose.material3.CenterAlignedTopAppBar
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.style.TextOverflow
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.texthip.thip.R
+import com.texthip.thip.ui.theme.ThipTheme.colors
+import com.texthip.thip.ui.theme.ThipTheme.typography
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun FeedListTopAppBar(
+ nickname: String = "ThipUser 01ThipUser 01",
+ isRightIconVisible: Boolean = false,
+ onLeftClick: () -> Unit,
+ onRightClick: () -> Unit = {},
+) {
+ CenterAlignedTopAppBar(
+ navigationIcon = {
+ IconButton(onClick = {
+ onLeftClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_arrow_back),
+ contentDescription = "Back Button",
+ tint = Color.Unspecified
+ )
+ }
+ },
+ title = {
+ Row(
+ horizontalArrangement = Arrangement.spacedBy(8.dp)
+ ) {
+ Text(
+ text = nickname,
+ color = colors.White,
+ style = typography.bigtitle_b700_s22_h24,
+ modifier = Modifier.width(100.dp),
+ maxLines = 1,
+ overflow = TextOverflow.Ellipsis,
+ )
+ Text(
+ text = stringResource(R.string.subscriber),
+ color = colors.White,
+ style = typography.bigtitle_b700_s22_h24,
+ modifier = Modifier.width(100.dp),
+ maxLines = 1
+ )
+ }
+ },
+ actions = {
+ if (isRightIconVisible) {
+ IconButton(onClick = {
+ onRightClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_more),
+ contentDescription = "More Options",
+ tint = Color.Unspecified
+ )
+ }
+ }
+ },
+ colors = TopAppBarDefaults.topAppBarColors(
+ containerColor = Color.Transparent,
+ ),
+ )
+}
+
+@Preview
+@Composable
+private fun FeedListTopAppBarPreview() {
+ FeedListTopAppBar(
+ isRightIconVisible = true,
+ onLeftClick = {},
+ onRightClick = {}
+ )
+}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8cfbc11b..857252c7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -44,4 +44,6 @@
ν΄λΉ λμλ %1$dpκΉμ§λ§ μμ΅λλ€.
+
+ λμ ꡬλ
μ
\ No newline at end of file
From 00272a216e5a090c788100e23ea75341ffddda0c Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:16:22 +0900
Subject: [PATCH 5/9] =?UTF-8?q?[UI]:=20input=20top=20app=20bar=20=EC=A0=9C?=
=?UTF-8?q?=EC=9E=91=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ui/common/topappbar/InputTopAppBar.kt | 75 +++++++++++++++++++
1 file changed, 75 insertions(+)
create mode 100644 app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
new file mode 100644
index 00000000..152daa81
--- /dev/null
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
@@ -0,0 +1,75 @@
+package com.texthip.thip.ui.common.topappbar
+
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.CenterAlignedTopAppBar
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.texthip.thip.R
+import com.texthip.thip.ui.common.buttons.HeaderButton
+import com.texthip.thip.ui.theme.ThipTheme.colors
+import com.texthip.thip.ui.theme.ThipTheme.typography
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun InputTopAppBar(
+ title: String = "νμ΄μ§λͺ
",
+ enabled: Boolean = false,
+ onLeftClick: () -> Unit,
+ onRightClick: () -> Unit = {},
+) {
+ CenterAlignedTopAppBar(
+ navigationIcon = {
+ IconButton(onClick = {
+ onLeftClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_arrow_back),
+ contentDescription = "Back Button",
+ tint = Color.Unspecified
+ )
+ }
+ },
+ title = {
+ Text(
+ text = title,
+ color = colors.White,
+ style = typography.bigtitle_b700_s22_h24
+ )
+ },
+ actions = {
+ HeaderButton(
+ text = stringResource(R.string.finish),
+ enabled = enabled,
+ onClick = {
+ onRightClick()
+ },
+ modifier = Modifier.padding(
+ end = 18.dp
+ )
+ )
+ },
+ colors = TopAppBarDefaults.topAppBarColors(
+ containerColor = Color.Transparent,
+ ),
+ )
+}
+
+@Preview
+@Composable
+private fun InputTopAppBarPreview() {
+ InputTopAppBar(
+ enabled = true,
+ onLeftClick = {},
+ onRightClick = {}
+ )
+}
\ No newline at end of file
From 59630fef64bf54e5ee6638e25250748b1191ee9b Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:21:03 +0900
Subject: [PATCH 6/9] =?UTF-8?q?[refactor]:=20input=20top=20app=20bar=20cus?=
=?UTF-8?q?tom=EB=90=98=EA=B2=8C=20=EC=88=98=EC=A0=95=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ui/common/topappbar/InputTopAppBar.kt | 49 ++++++++++++-------
app/src/main/res/values/strings.xml | 1 +
2 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
index 152daa81..bf81ef45 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
@@ -1,5 +1,6 @@
package com.texthip.thip.ui.common.topappbar
+import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -23,20 +24,24 @@ import com.texthip.thip.ui.theme.ThipTheme.typography
@Composable
fun InputTopAppBar(
title: String = "νμ΄μ§λͺ
",
- enabled: Boolean = false,
- onLeftClick: () -> Unit,
+ isRightButtonEnabled: Boolean = false,
+ rightButtonName: String = stringResource(R.string.finish),
+ isLeftIconVisible: Boolean = true,
+ onLeftClick: () -> Unit = {},
onRightClick: () -> Unit = {},
) {
CenterAlignedTopAppBar(
navigationIcon = {
- IconButton(onClick = {
- onLeftClick()
- }) {
- Icon(
- painter = painterResource(R.drawable.ic_arrow_back),
- contentDescription = "Back Button",
- tint = Color.Unspecified
- )
+ if (isLeftIconVisible) {
+ IconButton(onClick = {
+ onLeftClick()
+ }) {
+ Icon(
+ painter = painterResource(R.drawable.ic_arrow_back),
+ contentDescription = "Back Button",
+ tint = Color.Unspecified
+ )
+ }
}
},
title = {
@@ -48,8 +53,8 @@ fun InputTopAppBar(
},
actions = {
HeaderButton(
- text = stringResource(R.string.finish),
- enabled = enabled,
+ text = rightButtonName,
+ enabled = isRightButtonEnabled,
onClick = {
onRightClick()
},
@@ -67,9 +72,19 @@ fun InputTopAppBar(
@Preview
@Composable
private fun InputTopAppBarPreview() {
- InputTopAppBar(
- enabled = true,
- onLeftClick = {},
- onRightClick = {}
- )
+ Column {
+ InputTopAppBar(
+ isRightButtonEnabled = true,
+ onLeftClick = {},
+ onRightClick = {}
+ )
+ InputTopAppBar(
+ title = "μ€μ 1/2",
+ isRightButtonEnabled = false,
+ rightButtonName = stringResource(R.string.next),
+ isLeftIconVisible = false,
+ onLeftClick = {},
+ onRightClick = {}
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 857252c7..b7a4183c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -46,4 +46,5 @@
λμ ꡬλ
μ
+ λ€μ
\ No newline at end of file
From e5e34419f26ba55ce75471407a7cb3d24a921022 Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 02:22:27 +0900
Subject: [PATCH 7/9] =?UTF-8?q?[chore]:=20default=20top=20app=20bar=20prev?=
=?UTF-8?q?iew=20=EC=B6=94=EA=B0=80=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
index abd37546..1da73371 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
@@ -82,5 +82,10 @@ private fun DefaultTopAppBarPreview() {
onLeftClick = {},
onRightClick = {},
)
+ DefaultTopAppBar(
+ isRightIconVisible = false,
+ isTitleVisible = false,
+ onLeftClick = {},
+ )
}
}
\ No newline at end of file
From a57fafe1c21d572d81334130d4b8fffb498f6afc Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 03:07:05 +0900
Subject: [PATCH 8/9] =?UTF-8?q?[UI]:=20logo=20top=20app=20bar=20=EC=A0=9C?=
=?UTF-8?q?=EC=9E=91=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/deploymentTargetSelector.xml | 10 +++
.../thip/ui/common/topappbar/BookTopAppBar.kt | 8 +-
.../ui/common/topappbar/DefaultTopAppBar.kt | 8 +-
.../ui/common/topappbar/FeedListTopAppBar.kt | 4 +-
.../ui/common/topappbar/InputTopAppBar.kt | 4 +-
.../thip/ui/common/topappbar/LogoTopAppBar.kt | 79 +++++++++++++++++++
app/src/main/res/drawable/ic_logo.xml | 24 ++++++
7 files changed, 119 insertions(+), 18 deletions(-)
create mode 100644 .idea/deploymentTargetSelector.xml
create mode 100644 app/src/main/java/com/texthip/thip/ui/common/topappbar/LogoTopAppBar.kt
create mode 100644 app/src/main/res/drawable/ic_logo.xml
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
new file mode 100644
index 00000000..5a5e615c
--- /dev/null
+++ b/.idea/deploymentTargetSelector.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
index 31a0c65f..69e3e31f 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/BookTopAppBar.kt
@@ -22,9 +22,7 @@ fun BookTopAppBar(
) {
TopAppBar(
navigationIcon = {
- IconButton(onClick = {
- onLeftClick()
- }) {
+ IconButton(onClick = onLeftClick) {
Icon(
painter = painterResource(R.drawable.ic_arrow_back),
contentDescription = "Back Button",
@@ -38,9 +36,7 @@ fun BookTopAppBar(
)
},
actions = {
- IconButton(onClick = {
- onRightClick()
- }) {
+ IconButton(onClick = onRightClick) {
Icon(
painter = painterResource(R.drawable.ic_more),
contentDescription = "More Options",
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
index 1da73371..21bd2a50 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
@@ -26,9 +26,7 @@ fun DefaultTopAppBar(
) {
CenterAlignedTopAppBar(
navigationIcon = {
- IconButton(onClick = {
- onLeftClick()
- }) {
+ IconButton(onClick = onLeftClick) {
Icon(
painter = painterResource(R.drawable.ic_arrow_back),
contentDescription = "Back Button",
@@ -47,9 +45,7 @@ fun DefaultTopAppBar(
},
actions = {
if (isRightIconVisible) {
- IconButton(onClick = {
- onRightClick()
- }) {
+ IconButton(onClick = onRightClick) {
Icon(
painter = painterResource(R.drawable.ic_more),
contentDescription = "More Options",
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt
index 7e8603b2..aace1689 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/FeedListTopAppBar.kt
@@ -31,9 +31,7 @@ fun FeedListTopAppBar(
) {
CenterAlignedTopAppBar(
navigationIcon = {
- IconButton(onClick = {
- onLeftClick()
- }) {
+ IconButton(onClick = onLeftClick) {
Icon(
painter = painterResource(R.drawable.ic_arrow_back),
contentDescription = "Back Button",
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
index bf81ef45..4467012b 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
@@ -33,9 +33,7 @@ fun InputTopAppBar(
CenterAlignedTopAppBar(
navigationIcon = {
if (isLeftIconVisible) {
- IconButton(onClick = {
- onLeftClick()
- }) {
+ IconButton(onClick = onLeftClick) {
Icon(
painter = painterResource(R.drawable.ic_arrow_back),
contentDescription = "Back Button",
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/LogoTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/LogoTopAppBar.kt
new file mode 100644
index 00000000..31c5fe2b
--- /dev/null
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/LogoTopAppBar.kt
@@ -0,0 +1,79 @@
+package com.texthip.thip.ui.common.topappbar
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.TopAppBar
+import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.painter.Painter
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.texthip.thip.R
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun LogoTopAppBar(
+ leftIcon: Painter,
+ hasNotification: Boolean,
+ onLeftClick: () -> Unit = {},
+ onRightClick: () -> Unit = {}
+) {
+ val rightIcon = if (hasNotification) {
+ painterResource(R.drawable.ic_notice_yes)
+ } else {
+ painterResource(R.drawable.ic_notice)
+ }
+
+ TopAppBar(
+ navigationIcon = {
+ Image(
+ painter = painterResource(R.drawable.ic_logo),
+ contentDescription = "Logo",
+ modifier = Modifier
+ .height(24.dp)
+ .padding(start = 18.dp),
+ )
+ },
+ title = {
+ Spacer(modifier = Modifier)
+ },
+ actions = {
+ IconButton(onClick = onLeftClick) {
+ Icon(
+ painter = leftIcon,
+ contentDescription = "Left Icon",
+ tint = Color.Unspecified
+ )
+ }
+ IconButton(onClick = onRightClick) {
+ Icon(
+ painter = rightIcon,
+ contentDescription = "Right Icon",
+ tint = Color.Unspecified
+ )
+ }
+ },
+ colors = TopAppBarDefaults.topAppBarColors(
+ containerColor = Color.Transparent,
+ )
+ )
+}
+
+@Preview
+@Composable
+private fun LogoTopAppBarPreview() {
+ LogoTopAppBar(
+ leftIcon = painterResource(R.drawable.ic_search),
+ hasNotification = true,
+ onLeftClick = { },
+ onRightClick = { }
+ )
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_logo.xml b/app/src/main/res/drawable/ic_logo.xml
new file mode 100644
index 00000000..d6a7e2b4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_logo.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
From df2b16709949752a8d1dc217069cf28ea14e83d6 Mon Sep 17 00:00:00 2001
From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com>
Date: Fri, 27 Jun 2025 03:14:22 +0900
Subject: [PATCH 9/9] =?UTF-8?q?[UI]:=20left=20name=20top=20app=20bar=20?=
=?UTF-8?q?=EC=A0=9C=EC=9E=91=20(#27)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ui/common/topappbar/DefaultTopAppBar.kt | 3 +-
.../ui/common/topappbar/InputTopAppBar.kt | 2 +-
.../ui/common/topappbar/LeftNameTopAppBar.kt | 88 +++++++++++++++++++
app/src/main/res/values/strings.xml | 1 +
4 files changed, 92 insertions(+), 2 deletions(-)
create mode 100644 app/src/main/java/com/texthip/thip/ui/common/topappbar/LeftNameTopAppBar.kt
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
index 21bd2a50..8d51b534 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/DefaultTopAppBar.kt
@@ -10,6 +10,7 @@ import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import com.texthip.thip.R
import com.texthip.thip.ui.theme.ThipTheme.colors
@@ -18,7 +19,7 @@ import com.texthip.thip.ui.theme.ThipTheme.typography
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun DefaultTopAppBar(
- title: String = "νμ΄μ§λͺ
",
+ title: String = stringResource(R.string.page_name),
isTitleVisible: Boolean = true,
isRightIconVisible: Boolean = false,
onLeftClick: () -> Unit,
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
index 4467012b..8da648f4 100644
--- a/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/InputTopAppBar.kt
@@ -23,7 +23,7 @@ import com.texthip.thip.ui.theme.ThipTheme.typography
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun InputTopAppBar(
- title: String = "νμ΄μ§λͺ
",
+ title: String = stringResource(R.string.page_name),
isRightButtonEnabled: Boolean = false,
rightButtonName: String = stringResource(R.string.finish),
isLeftIconVisible: Boolean = true,
diff --git a/app/src/main/java/com/texthip/thip/ui/common/topappbar/LeftNameTopAppBar.kt b/app/src/main/java/com/texthip/thip/ui/common/topappbar/LeftNameTopAppBar.kt
new file mode 100644
index 00000000..fdfb0d63
--- /dev/null
+++ b/app/src/main/java/com/texthip/thip/ui/common/topappbar/LeftNameTopAppBar.kt
@@ -0,0 +1,88 @@
+package com.texthip.thip.ui.common.topappbar
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
+import androidx.compose.material3.TopAppBarDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.painter.Painter
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.texthip.thip.R
+import com.texthip.thip.ui.theme.ThipTheme.colors
+import com.texthip.thip.ui.theme.ThipTheme.typography
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+fun LeftNameTopAppBar(
+ title: String = stringResource(R.string.page_name),
+ isLeftIconVisible: Boolean = false,
+ isRightIconVisible: Boolean = false,
+ leftIcon: Painter,
+ rightIcon: Painter,
+ onLeftClick: () -> Unit = {},
+ onRightClick: () -> Unit = {}
+) {
+ TopAppBar(
+ navigationIcon = {
+ Text(
+ text = title,
+ color = colors.White,
+ style = typography.bigtitle_b700_s22_h24,
+ modifier = Modifier.padding(start = 18.dp)
+ )
+ },
+ title = {
+ Spacer(modifier = Modifier)
+ },
+ actions = {
+ if (isLeftIconVisible) {
+ IconButton(onClick = onLeftClick) {
+ Icon(
+ painter = leftIcon,
+ contentDescription = "Left Icon",
+ tint = Color.Unspecified
+ )
+ }
+ }
+ if (isRightIconVisible) {
+ IconButton(onClick = onRightClick) {
+ Icon(
+ painter = rightIcon,
+ contentDescription = "Right Icon",
+ tint = Color.Unspecified
+ )
+ }
+ }
+ },
+ colors = TopAppBarDefaults.topAppBarColors(
+ containerColor = Color.Transparent,
+ )
+ )
+}
+
+@Preview
+@Composable
+private fun LeftNameTopAppBarPreview() {
+ Column {
+ LeftNameTopAppBar(
+ leftIcon = painterResource(R.drawable.ic_search),
+ rightIcon = painterResource(R.drawable.ic_plus)
+ )
+ LeftNameTopAppBar(
+ leftIcon = painterResource(R.drawable.ic_search),
+ rightIcon = painterResource(R.drawable.ic_plus),
+ isLeftIconVisible = true,
+ isRightIconVisible = true
+ )
+ }
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b7a4183c..2e461e44 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -47,4 +47,5 @@
λμ ꡬλ
μ
λ€μ
+ νμ΄μ§λͺ
\ No newline at end of file