package eu.kanade.presentation.reader import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Photo import androidx.compose.material.icons.outlined.Save import androidx.compose.material.icons.outlined.Share import androidx.compose.material3.AlertDialog import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TextButton 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.Modifier import androidx.compose.ui.unit.dp import eu.kanade.presentation.components.AdaptiveSheet import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.ActionButton import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.i18n.localize @Composable fun ReaderPageActionsDialog( onDismissRequest: () -> Unit, onSetAsCover: () -> Unit, onShare: () -> Unit, onSave: () -> Unit, ) { var showSetCoverDialog by remember { mutableStateOf(false) } AdaptiveSheet( onDismissRequest = onDismissRequest, ) { Row( modifier = Modifier.padding(vertical = 16.dp), horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small), ) { ActionButton( modifier = Modifier.weight(1f), title = localize(MR.strings.set_as_cover), icon = Icons.Outlined.Photo, onClick = { showSetCoverDialog = true }, ) ActionButton( modifier = Modifier.weight(1f), title = localize(MR.strings.action_share), icon = Icons.Outlined.Share, onClick = { onShare() onDismissRequest() }, ) ActionButton( modifier = Modifier.weight(1f), title = localize(MR.strings.action_save), icon = Icons.Outlined.Save, onClick = { onSave() onDismissRequest() }, ) } } if (showSetCoverDialog) { SetCoverDialog( onConfirm = { onSetAsCover() showSetCoverDialog = false }, onDismiss = { showSetCoverDialog = false }, ) } } @Composable private fun SetCoverDialog( onConfirm: () -> Unit, onDismiss: () -> Unit, ) { AlertDialog( text = { Text(localize(MR.strings.confirm_set_image_as_cover)) }, confirmButton = { TextButton(onClick = onConfirm) { Text(localize(MR.strings.action_ok)) } }, dismissButton = { TextButton(onClick = onDismiss) { Text(localize(MR.strings.action_cancel)) } }, onDismissRequest = onDismiss, ) }