Skip to content

Commit 6cb3edc

Browse files
committed
feature: minor bottom sheet improves
1 parent 321ae1f commit 6cb3edc

1 file changed

Lines changed: 22 additions & 23 deletions

File tree

panel-core/src/main/kotlin/com/redmadrobot/debug/core/inapp/compose/DebugBottomSheet.kt

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@
33
package com.redmadrobot.debug.core.inapp.compose
44

55
import androidx.compose.foundation.ExperimentalFoundationApi
6-
import androidx.compose.foundation.background
7-
import androidx.compose.foundation.layout.Box
86
import androidx.compose.foundation.layout.Column
9-
import androidx.compose.foundation.layout.Spacer
107
import androidx.compose.foundation.layout.fillMaxSize
11-
import androidx.compose.foundation.layout.height
8+
import androidx.compose.foundation.layout.padding
9+
import androidx.compose.foundation.layout.statusBarsPadding
1210
import androidx.compose.foundation.layout.width
1311
import androidx.compose.foundation.pager.HorizontalPager
1412
import androidx.compose.foundation.pager.PagerState
1513
import androidx.compose.foundation.pager.rememberPagerState
16-
import androidx.compose.foundation.shape.CircleShape
14+
import androidx.compose.foundation.shape.RoundedCornerShape
15+
import androidx.compose.material.Divider
1716
import androidx.compose.material.MaterialTheme
1817
import androidx.compose.material.ModalBottomSheetLayout
1918
import androidx.compose.material.ModalBottomSheetValue
@@ -28,7 +27,6 @@ import androidx.compose.runtime.remember
2827
import androidx.compose.runtime.rememberCoroutineScope
2928
import androidx.compose.ui.Alignment
3029
import androidx.compose.ui.Modifier
31-
import androidx.compose.ui.draw.clip
3230
import androidx.compose.ui.graphics.Color
3331
import androidx.compose.ui.unit.dp
3432
import com.redmadrobot.debug.core.extension.getAllPlugins
@@ -38,7 +36,7 @@ import kotlinx.coroutines.launch
3836
@Composable
3937
public fun DebugBottomSheet(onClose: () -> Unit) {
4038
val state = rememberModalBottomSheetState(
41-
initialValue = ModalBottomSheetValue.HalfExpanded,
39+
initialValue = ModalBottomSheetValue.Expanded,
4240
confirmValueChange = { sheetState ->
4341
if (sheetState == ModalBottomSheetValue.Hidden) onClose()
4442
true
@@ -47,9 +45,11 @@ public fun DebugBottomSheet(onClose: () -> Unit) {
4745
)
4846

4947
ModalBottomSheetLayout(
48+
modifier = Modifier.statusBarsPadding(),
5049
sheetContent = { BottomSheetContent() },
5150
sheetState = state,
5251
scrimColor = Color.Transparent,
52+
sheetShape = RoundedCornerShape(size = 16.dp),
5353
content = {},
5454
)
5555
}
@@ -59,43 +59,42 @@ private fun BottomSheetContent() {
5959
val plugins = remember { getAllPlugins() }
6060
val pluginsName = remember { plugins.map { it.getName() } }
6161
val pagerState = rememberPagerState(initialPage = 0, pageCount = { plugins.size })
62-
Column(modifier = Modifier.fillMaxSize()) {
63-
Spacer(modifier = Modifier.height(8.dp))
6462

65-
Box(
63+
Column(modifier = Modifier.fillMaxSize()) {
64+
Divider(
6665
modifier = Modifier
67-
.height(4.dp)
68-
.width(50.dp)
69-
.clip(CircleShape)
70-
.background(Color.Gray)
71-
.align(Alignment.CenterHorizontally)
66+
.width(width = 50.dp)
67+
.padding(vertical = 8.dp)
68+
.align(alignment = Alignment.CenterHorizontally),
69+
color = Color.Gray,
70+
thickness = 4.dp
7271
)
73-
74-
Spacer(modifier = Modifier.height(8.dp))
75-
76-
PluginsTabLayout(pluginsName, pagerState = pagerState)
77-
78-
PluginsPager(plugins, pagerState = pagerState)
72+
PluginsTabLayout(pluginsName = pluginsName, pagerState = pagerState)
73+
PluginsPager(plugins = plugins, pagerState = pagerState)
7974
}
8075
}
8176

8277
@Composable
8378
private fun PluginsTabLayout(pluginsName: List<String>, pagerState: PagerState) {
8479
val scope = rememberCoroutineScope()
80+
8581
ScrollableTabRow(
8682
selectedTabIndex = pagerState.currentPage,
8783
backgroundColor = MaterialTheme.colors.background,
84+
edgePadding = 16.dp,
8885
indicator = { tabPositions ->
8986
TabRowDefaults.Indicator(
90-
modifier = Modifier.tabIndicatorOffset(tabPositions[pagerState.currentPage]),
87+
modifier = Modifier.tabIndicatorOffset(
88+
currentTabPosition = tabPositions[pagerState.currentPage]
89+
),
9190
height = 2.dp,
9291
color = MaterialTheme.colors.secondary
9392
)
9493
}
9594
) {
9695
pluginsName.forEachIndexed { index, _ ->
9796
Tab(
98-
text = { Text(pluginsName[index]) },
97+
text = { Text(text = pluginsName[index]) },
9998
selected = pagerState.currentPage == index,
10099
onClick = {
101100
scope.launch { pagerState.animateScrollToPage(index) }

0 commit comments

Comments
 (0)