Bug 1879372 - Add enabled/disabled nav button states

fenix/125.0
mike a 2 months ago committed by mergify[bot]
parent 0760ab5a58
commit a6820d760c

@ -17,6 +17,7 @@ import androidx.compose.material.IconButton
import androidx.compose.material.LocalContentColor
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
@ -28,6 +29,7 @@ import androidx.core.content.ContextCompat
import mozilla.components.browser.menu.view.MenuButton
import mozilla.components.browser.state.selector.normalTabs
import mozilla.components.browser.state.selector.privateTabs
import mozilla.components.browser.state.selector.selectedTab
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.lib.state.ext.observeAsState
import org.mozilla.fenix.R
@ -74,16 +76,22 @@ fun BrowserNavBar(
browserState.normalTabs.size
}
}.value
val canGoBack by browserStore.observeAsState(initialValue = false) { it.selectedTab?.content?.canGoBack ?: false }
val canGoForward by browserStore.observeAsState(initialValue = false) {
it.selectedTab?.content?.canGoForward ?: false
}
NavBar {
BackButton(
onBackButtonClick = onBackButtonClick,
onBackButtonLongPress = onBackButtonLongPress,
enabled = canGoBack,
)
ForwardButton(
onForwardButtonClick = onForwardButtonClick,
onForwardButtonLongPress = onForwardButtonLongPress,
enabled = canGoForward,
)
HomeButton(
@ -134,6 +142,8 @@ fun HomeNavBar(
onBackButtonLongPress = {
// no-op
},
// Nav buttons are disabled on the home screen
enabled = false,
)
ForwardButton(
@ -143,6 +153,8 @@ fun HomeNavBar(
onForwardButtonLongPress = {
// no-op
},
// Nav buttons are disabled on the home screen
enabled = false,
)
SearchWebButton(
@ -177,15 +189,17 @@ private fun NavBar(
private fun BackButton(
onBackButtonClick: () -> Unit,
onBackButtonLongPress: () -> Unit,
enabled: Boolean,
) {
LongPressIconButton(
onClick = onBackButtonClick,
onLongClick = onBackButtonLongPress,
enabled = enabled,
) {
Icon(
painter = painterResource(R.drawable.mozac_ic_back_24),
stringResource(id = R.string.browser_menu_back),
tint = FirefoxTheme.colors.iconPrimary,
tint = if (enabled) FirefoxTheme.colors.iconPrimary else FirefoxTheme.colors.iconDisabled,
)
}
}
@ -194,15 +208,17 @@ private fun BackButton(
private fun ForwardButton(
onForwardButtonClick: () -> Unit,
onForwardButtonLongPress: () -> Unit,
enabled: Boolean,
) {
LongPressIconButton(
onClick = onForwardButtonClick,
onLongClick = onForwardButtonLongPress,
enabled = enabled,
) {
Icon(
painter = painterResource(R.drawable.mozac_ic_forward_24),
stringResource(id = R.string.browser_menu_forward),
tint = FirefoxTheme.colors.iconPrimary,
tint = if (enabled) FirefoxTheme.colors.iconPrimary else FirefoxTheme.colors.iconDisabled,
)
}
}

Loading…
Cancel
Save