@@ -6,10 +6,13 @@ import androidx.compose.foundation.lazy.LazyColumn
66import androidx.compose.foundation.lazy.rememberLazyListState
77import androidx.compose.material3.ExperimentalMaterial3Api
88import androidx.compose.material3.HorizontalDivider
9+ import androidx.compose.material3.LocalContentColor
910import androidx.compose.material3.MaterialTheme
1011import androidx.compose.material3.ModalBottomSheet
1112import androidx.compose.material3.Text
13+ import androidx.compose.material3.contentColorFor
1214import androidx.compose.runtime.Composable
15+ import androidx.compose.runtime.CompositionLocalProvider
1316import androidx.compose.runtime.remember
1417import androidx.compose.runtime.rememberCoroutineScope
1518import androidx.compose.ui.Modifier
@@ -67,54 +70,64 @@ private fun CommentRepliesDialog(
6770 val state = rememberLazyListState()
6871
6972 ModalBottomSheet (onDismissRequest = onDismissRequest) {
70- LazyColumnScrollbar (
71- state = state,
72- settings = ScrollbarSettings .Default .copy(
73- thumbSelectedColor = md_theme_dark_primary,
74- thumbUnselectedColor = Color .Red
75- )
73+ CompositionLocalProvider (
74+ // contentColorFor(MaterialTheme.colorScheme.containerColor), i.e. ModalBottomSheet's
75+ // default background color, does not resolve correctly, so need to manually set the
76+ // content color for MaterialTheme.colorScheme.background instead
77+ LocalContentColor provides contentColorFor(MaterialTheme .colorScheme.background)
7678 ) {
77- LazyColumn (
78- modifier = Modifier .nestedScroll(nestedScrollInterop),
79- state = state
79+ LazyColumnScrollbar (
80+ state = state,
81+ settings = ScrollbarSettings .Default .copy(
82+ thumbSelectedColor = md_theme_dark_primary,
83+ thumbUnselectedColor = Color .Red
84+ )
8085 ) {
81- item {
82- CommentRepliesHeader (comment = parentComment)
83- HorizontalDivider (
84- thickness = 1 .dp,
85- modifier = Modifier .padding(start = 16 .dp, end = 16 .dp, bottom = 8 .dp)
86- )
87- }
88-
89- if (comments.itemCount == 0 ) {
86+ LazyColumn (
87+ modifier = Modifier .nestedScroll(nestedScrollInterop),
88+ state = state
89+ ) {
9090 item {
91- val refresh = comments.loadState.refresh
92- if (refresh is LoadState .Loading ) {
93- LoadingIndicator (modifier = Modifier .padding(top = 8 .dp))
94- } else {
95- val message = if (refresh is LoadState .Error ) {
96- R .string.error_unable_to_load_comments
91+ CommentRepliesHeader (comment = parentComment)
92+ HorizontalDivider (
93+ thickness = 1 .dp,
94+ modifier = Modifier .padding(start = 16 .dp, end = 16 .dp, bottom = 8 .dp)
95+ )
96+ }
97+
98+ if (comments.itemCount == 0 ) {
99+ item {
100+ val refresh = comments.loadState.refresh
101+ if (refresh is LoadState .Loading ) {
102+ LoadingIndicator (modifier = Modifier .padding(top = 8 .dp))
97103 } else {
98- R .string.no_comments
104+ val message = if (refresh is LoadState .Error ) {
105+ R .string.error_unable_to_load_comments
106+ } else {
107+ R .string.no_comments
108+ }
109+ NoItemsMessage (message)
99110 }
100- NoItemsMessage (message)
101111 }
102- }
103- } else {
104- if (comments.itemCount >= 0 ) {
105- item {
106- Text (
107- modifier = Modifier .padding(horizontal = 12 .dp, vertical = 4 .dp),
108- text = pluralStringResource(
109- R .plurals.replies, comments.itemCount, comments.itemCount
110- ),
111- maxLines = 1 ,
112- style = MaterialTheme .typography.titleMedium
113- )
112+ } else {
113+ if (comments.itemCount >= 0 ) {
114+ item {
115+ Text (
116+ modifier = Modifier .padding(
117+ horizontal = 12 .dp,
118+ vertical = 4 .dp
119+ ),
120+ text = pluralStringResource(
121+ R .plurals.replies, comments.itemCount, comments.itemCount
122+ ),
123+ maxLines = 1 ,
124+ style = MaterialTheme .typography.titleMedium
125+ )
126+ }
127+ }
128+ items(comments.itemCount) {
129+ Comment (comment = comments[it]!! )
114130 }
115- }
116- items(comments.itemCount) {
117- Comment (comment = comments[it]!! )
118131 }
119132 }
120133 }
0 commit comments