From 1d713b6ab4cd3e34ff0a90e03705e5f5e57ba850 Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Wed, 11 Sep 2024 08:28:26 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Add=20.noRippleClickabl?= =?UTF-8?q?e()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added new ".noRippleClickable()" Modifier extension --- .../core/util/{Functions.kt => Extensions.kt} | 20 +++++++++++++++++++ .../components/BookInfoDescriptionSection.kt | 9 ++------- .../components/BookInfoInfoSection.kt | 17 ++++------------ .../layout/grid/BrowseGridDirectoryItem.kt | 8 ++------ .../components/layout/list/BrowseListItem.kt | 8 ++------ .../top_bar/BrowseTopBarDirectoryPath.kt | 8 +++----- .../help/components/HelpClickableNote.kt | 4 ++-- .../screens/help/components/HelpItem.kt | 4 ++-- .../screens/history/components/HistoryItem.kt | 5 ++--- .../screens/reader/ReaderScreen.kt | 6 ++---- .../reader/components/ReaderTextParagraph.kt | 8 ++------ .../components/app_bar/ReaderBottomBar.kt | 8 ++------ .../reader/components/app_bar/ReaderTopBar.kt | 6 ++---- 13 files changed, 47 insertions(+), 64 deletions(-) rename app/src/main/java/ua/acclorite/book_story/presentation/core/util/{Functions.kt => Extensions.kt} (64%) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Functions.kt b/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Extensions.kt similarity index 64% rename from app/src/main/java/ua/acclorite/book_story/presentation/core/util/Functions.kt rename to app/src/main/java/ua/acclorite/book_story/presentation/core/util/Extensions.kt index 6f12d22d..74a6f04a 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Functions.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Extensions.kt @@ -2,6 +2,9 @@ package ua.acclorite.book_story.presentation.core.util import android.content.Intent import androidx.activity.ComponentActivity +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.combinedClickable +import androidx.compose.ui.Modifier fun String.removeTrailingZero(): String { if (!this.contains('.')) @@ -41,4 +44,21 @@ fun Float.calculateProgress(digits: Int): String { .removeDigits(digits) .removeTrailingZero() .dropWhile { it == '-' } +} + +@OptIn(ExperimentalFoundationApi::class) +fun Modifier.noRippleClickable( + enabled: Boolean = true, + onLongClick: (() -> Unit)? = null, + onDoubleClick: (() -> Unit)? = null, + onClick: () -> Unit +): Modifier { + return this.combinedClickable( + indication = null, + interactionSource = null, + enabled = enabled, + onLongClick = onLongClick, + onDoubleClick = onDoubleClick, + onClick = onClick + ) } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoDescriptionSection.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoDescriptionSection.kt index fe6d23d3..c540dd88 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoDescriptionSection.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoDescriptionSection.kt @@ -1,8 +1,5 @@ package ua.acclorite.book_story.presentation.screens.book_info.components -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.combinedClickable -import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth @@ -26,12 +23,12 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R import ua.acclorite.book_story.presentation.core.components.LocalBookInfoViewModel +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.screens.book_info.data.BookInfoEvent /** * Description section. */ -@OptIn(ExperimentalFoundationApi::class) @Composable fun BookInfoDescriptionSection() { val state = LocalBookInfoViewModel.current.state @@ -48,9 +45,7 @@ fun BookInfoDescriptionSection() { textAlign = TextAlign.Start, modifier = Modifier .padding(horizontal = 24.dp) - .combinedClickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null, + .noRippleClickable( onClick = {}, onLongClick = { onEvent(BookInfoEvent.OnShowHideEditDescription) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoInfoSection.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoInfoSection.kt index ec88e03c..91ff63af 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoInfoSection.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/book_info/components/BookInfoInfoSection.kt @@ -1,9 +1,6 @@ package ua.acclorite.book_story.presentation.screens.book_info.components -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background -import androidx.compose.foundation.combinedClickable -import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -40,12 +37,12 @@ import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R import ua.acclorite.book_story.presentation.core.components.CustomCoverImage import ua.acclorite.book_story.presentation.core.components.LocalBookInfoViewModel +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.screens.book_info.data.BookInfoEvent /** * BookInfo's Info section. */ -@OptIn(ExperimentalFoundationApi::class) @Composable fun BookInfoInfoSection() { val state = LocalBookInfoViewModel.current.state @@ -68,9 +65,7 @@ fun BookInfoInfoSection() { MaterialTheme.colorScheme.surfaceContainerLow, MaterialTheme.shapes.medium ) - .combinedClickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null, + .noRippleClickable( onClick = {}, onLongClick = { onEvent(BookInfoEvent.OnShowHideChangeCoverBottomSheet) @@ -107,9 +102,7 @@ fun BookInfoInfoSection() { style = MaterialTheme.typography.headlineSmall, modifier = Modifier .fillMaxWidth() - .combinedClickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null, + .noRippleClickable( onClick = {}, onLongClick = { onEvent(BookInfoEvent.OnShowHideEditTitle) @@ -164,9 +157,7 @@ fun BookInfoInfoSection() { style = MaterialTheme.typography.bodyLarge, modifier = Modifier .fillMaxWidth() - .combinedClickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null, + .noRippleClickable( onClick = {}, onLongClick = { onEvent(BookInfoEvent.OnShowHideEditAuthor) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/grid/BrowseGridDirectoryItem.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/grid/BrowseGridDirectoryItem.kt index af6cd5a2..91c91129 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/grid/BrowseGridDirectoryItem.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/grid/BrowseGridDirectoryItem.kt @@ -1,7 +1,6 @@ package ua.acclorite.book_story.presentation.screens.browse.components.layout.grid import androidx.compose.foundation.border -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -29,6 +28,7 @@ import androidx.compose.ui.unit.sp import ua.acclorite.book_story.R import ua.acclorite.book_story.domain.model.SelectableFile import ua.acclorite.book_story.presentation.core.components.CustomCheckbox +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.ui.DefaultTransition import java.text.SimpleDateFormat import java.util.Date @@ -93,11 +93,7 @@ fun BrowseGridDirectoryItem( ), modifier = Modifier .size(24.dp) - .clickable( - enabled = !hasSelectedFiles, - interactionSource = null, - indication = null - ) { + .noRippleClickable(enabled = !hasSelectedFiles) { onFavoriteClick() }, tint = if (file.isFavorite) MaterialTheme.colorScheme.primary diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/list/BrowseListItem.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/list/BrowseListItem.kt index 06cb80b4..a8facd4f 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/list/BrowseListItem.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/layout/list/BrowseListItem.kt @@ -3,7 +3,6 @@ package ua.acclorite.book_story.presentation.screens.browse.components.layout.li import androidx.compose.animation.core.tween import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row @@ -28,6 +27,7 @@ import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R import ua.acclorite.book_story.domain.model.SelectableFile import ua.acclorite.book_story.presentation.core.components.CustomCheckbox +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.ui.FadeTransitionPreservingSpace @OptIn(ExperimentalFoundationApi::class) @@ -112,11 +112,7 @@ fun BrowseListItem( ), modifier = Modifier .size(24.dp) - .clickable( - enabled = !hasSelectedFiles, - interactionSource = null, - indication = null - ) { + .noRippleClickable(enabled = !hasSelectedFiles) { onFavoriteClick() }, tint = if (file.isFavorite) MaterialTheme.colorScheme.primary diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/top_bar/BrowseTopBarDirectoryPath.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/top_bar/BrowseTopBarDirectoryPath.kt index eee47093..c532120b 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/top_bar/BrowseTopBarDirectoryPath.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/top_bar/BrowseTopBarDirectoryPath.kt @@ -4,7 +4,6 @@ import android.os.Environment import androidx.compose.animation.animateColorAsState import androidx.compose.animation.expandVertically import androidx.compose.animation.shrinkVertically -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -30,6 +29,7 @@ import ua.acclorite.book_story.presentation.core.components.CustomAnimatedVisibi import ua.acclorite.book_story.presentation.core.components.LocalBrowseViewModel import ua.acclorite.book_story.presentation.core.components.LocalMainViewModel import ua.acclorite.book_story.presentation.core.components.customItemsIndexed +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.screens.browse.data.BrowseEvent import ua.acclorite.book_story.presentation.screens.settings.nested.browse.data.BrowseFilesStructure import java.io.File @@ -112,10 +112,8 @@ fun BrowseTopBarDirectoryPath() { label = "" ).value, style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.clickable( - enabled = state.value.selectedDirectory != directory.second, - indication = null, - interactionSource = null + modifier = Modifier.noRippleClickable( + enabled = state.value.selectedDirectory != directory.second ) { onEvent( BrowseEvent.OnChangeDirectory( diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt index b64eac73..a13db8ee 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt @@ -1,6 +1,5 @@ package ua.acclorite.book_story.presentation.screens.help.components -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height @@ -20,6 +19,7 @@ import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R import ua.acclorite.book_story.presentation.core.components.CustomTooltip +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.ui.ExpandingTransition /** @@ -38,7 +38,7 @@ fun HelpClickableNote(text: AnnotatedString) { imageVector = Icons.Outlined.Info, modifier = Modifier .size(20.dp) - .clickable(interactionSource = null, indication = null) { + .noRippleClickable { showNote.value = !showNote.value }, contentDescription = stringResource(R.string.note_content_desc), diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt index bb1b7407..73497025 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt @@ -4,7 +4,6 @@ import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -32,6 +31,7 @@ import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R import ua.acclorite.book_story.domain.model.HelpTip import ua.acclorite.book_story.presentation.core.navigation.LocalOnNavigate +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.ui.ExpandingTransition /** @@ -83,7 +83,7 @@ fun HelpItem( Row( modifier = Modifier .fillMaxWidth() - .clickable(interactionSource = null, indication = null) { + .noRippleClickable { showDescription.value = !showDescription.value }, verticalAlignment = Alignment.CenterVertically diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/components/HistoryItem.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/components/HistoryItem.kt index ac88361c..fefe6e3a 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/components/HistoryItem.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/components/HistoryItem.kt @@ -34,6 +34,7 @@ import ua.acclorite.book_story.R import ua.acclorite.book_story.domain.model.History import ua.acclorite.book_story.presentation.core.components.CustomCoverImage import ua.acclorite.book_story.presentation.core.components.CustomIconButton +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import java.text.SimpleDateFormat import java.util.Date import java.util.Locale @@ -121,9 +122,7 @@ fun HistoryItem( lineHeight = 21.sp, modifier = Modifier .fillMaxWidth() - .clickable( - interactionSource = null, - indication = null, + .noRippleClickable( enabled = isOnClickEnabled, onClick = onTitleClick ), diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt index 9b284676..55d27656 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt @@ -9,7 +9,6 @@ import androidx.compose.animation.animateColorAsState import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi @@ -73,6 +72,7 @@ import ua.acclorite.book_story.presentation.core.components.is_messages.IsError import ua.acclorite.book_story.presentation.core.constants.Constants import ua.acclorite.book_story.presentation.core.navigation.LocalOnNavigate import ua.acclorite.book_story.presentation.core.navigation.Screen +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.core.util.showToast import ua.acclorite.book_story.presentation.screens.history.data.HistoryEvent import ua.acclorite.book_story.presentation.screens.library.data.LibraryEvent @@ -416,9 +416,7 @@ private fun ReaderScreen(lazyListState: LazyListState) { .then( if (!state.value.loading && toolbarHidden) { Modifier - .clickable( - interactionSource = null, - indication = null, + .noRippleClickable( onClick = { onEvent( ReaderEvent.OnShowHideMenu( diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt index e99a085b..7f8aa09d 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/ReaderTextParagraph.kt @@ -2,8 +2,6 @@ package ua.acclorite.book_story.presentation.screens.reader.components import android.content.Context import androidx.activity.ComponentActivity -import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth @@ -24,6 +22,7 @@ import androidx.compose.ui.unit.TextUnit import ua.acclorite.book_story.R import ua.acclorite.book_story.domain.model.FontWithName import ua.acclorite.book_story.presentation.core.components.LocalReaderViewModel +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.core.util.showToast import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent import ua.acclorite.book_story.presentation.screens.settings.nested.reader.data.ReaderTextAlignment @@ -46,7 +45,6 @@ import ua.acclorite.book_story.presentation.screens.settings.nested.reader.data. * @param doubleClickTranslationEnabled Whether Double Click Translation is enabled. * @param toolbarHidden Whether selection toolBar is hidden. */ -@OptIn(ExperimentalFoundationApi::class) @Composable fun LazyItemScope.ReaderTextParagraph( line: String, @@ -87,9 +85,7 @@ fun LazyItemScope.ReaderTextParagraph( doubleClickTranslationEnabled && toolbarHidden ) { - Modifier.combinedClickable( - interactionSource = null, - indication = null, + Modifier.noRippleClickable( onDoubleClick = { onEvent( ReaderEvent.OnOpenTranslator( diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt index 9d86e90c..07db82c8 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt @@ -7,7 +7,6 @@ import androidx.compose.animation.shrinkHorizontally import androidx.compose.animation.slideInHorizontally import androidx.compose.animation.slideOutHorizontally import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -43,6 +42,7 @@ import ua.acclorite.book_story.presentation.core.components.LocalHistoryViewMode import ua.acclorite.book_story.presentation.core.components.LocalLibraryViewModel import ua.acclorite.book_story.presentation.core.components.LocalReaderViewModel import ua.acclorite.book_story.presentation.core.util.calculateProgress +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.screens.history.data.HistoryEvent import ua.acclorite.book_story.presentation.screens.library.data.LibraryEvent import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent @@ -86,11 +86,7 @@ fun ReaderBottomBar() { Modifier .fillMaxWidth() .background(Colors.readerSystemBarsColor) - .clickable( - interactionSource = null, - indication = null, - onClick = {} - ) + .noRippleClickable(onClick = {}) .navigationBarsPadding() .padding(horizontal = 18.dp) .padding(top = 16.dp), diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt index f977e2d4..7e844276 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt @@ -2,7 +2,6 @@ package ua.acclorite.book_story.presentation.screens.reader.components.app_bar import androidx.activity.ComponentActivity import androidx.compose.foundation.basicMarquee -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.material.icons.Icons @@ -27,6 +26,7 @@ import ua.acclorite.book_story.presentation.core.components.LocalLibraryViewMode import ua.acclorite.book_story.presentation.core.components.LocalReaderViewModel import ua.acclorite.book_story.presentation.core.navigation.LocalOnNavigate import ua.acclorite.book_story.presentation.core.navigation.Screen +import ua.acclorite.book_story.presentation.core.util.noRippleClickable import ua.acclorite.book_story.presentation.screens.history.data.HistoryEvent import ua.acclorite.book_story.presentation.screens.library.data.LibraryEvent import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent @@ -79,10 +79,8 @@ fun ReaderTopBar() { color = MaterialTheme.colorScheme.onSurface, maxLines = 1, modifier = Modifier - .clickable( + .noRippleClickable( enabled = !state.value.lockMenu, - interactionSource = null, - indication = null, onClick = { onEvent( ReaderEvent.OnGoBack(