mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-02 23:57:42 +01:00
refactor: bottom sheet overhaul • part 4 (#57)
* remove PostLayoutBottomSheet * remove ReportListTypeSheet * remove LikedTypeSheet
This commit is contained in:
parent
b7d35d3a35
commit
e2b8a3342b
@ -1,106 +0,0 @@
|
||||
package com.livefast.eattrash.raccoonforlemmy.core.commonui.modals
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.navigationBars
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import cafe.adriel.voyager.core.screen.Screen
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.CornerSize
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.Spacing
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.components.BottomSheetHeader
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getNavigationCoordinator
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.NotificationCenterEvent
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.di.getNotificationCenter
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
||||
|
||||
class LikedTypeSheet : Screen {
|
||||
@Composable
|
||||
override fun Content() {
|
||||
val navigationCoordinator = remember { getNavigationCoordinator() }
|
||||
val notificationCenter = remember { getNotificationCenter() }
|
||||
|
||||
Surface {
|
||||
Column(
|
||||
modifier =
|
||||
Modifier
|
||||
.windowInsetsPadding(WindowInsets.navigationBars)
|
||||
.padding(
|
||||
top = Spacing.s,
|
||||
start = Spacing.s,
|
||||
end = Spacing.s,
|
||||
bottom = Spacing.m,
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
BottomSheetHeader(LocalStrings.current.filteredContentsType)
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState()),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xxs),
|
||||
) {
|
||||
Row(
|
||||
modifier =
|
||||
Modifier
|
||||
.clip(RoundedCornerShape(CornerSize.xxl))
|
||||
.onClick(
|
||||
onClick = {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangedLikedType(true),
|
||||
)
|
||||
navigationCoordinator.hideBottomSheet()
|
||||
},
|
||||
).padding(
|
||||
horizontal = Spacing.s,
|
||||
vertical = Spacing.s,
|
||||
).fillMaxWidth(),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Text(
|
||||
text = LocalStrings.current.actionUpvote,
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
Row(
|
||||
modifier =
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(
|
||||
horizontal = Spacing.s,
|
||||
vertical = Spacing.s,
|
||||
).onClick(
|
||||
onClick = {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangedLikedType(false),
|
||||
)
|
||||
navigationCoordinator.hideBottomSheet()
|
||||
},
|
||||
),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Text(
|
||||
text = LocalStrings.current.actionDownvote,
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,93 +0,0 @@
|
||||
package com.livefast.eattrash.raccoonforlemmy.core.commonui.modals
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.navigationBars
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import cafe.adriel.voyager.core.screen.Screen
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.data.PostLayout
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.data.toReadableName
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.CornerSize
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.Spacing
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.components.BottomSheetHeader
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getNavigationCoordinator
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.NotificationCenterEvent
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.di.getNotificationCenter
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
||||
|
||||
class PostLayoutBottomSheet : Screen {
|
||||
@Composable
|
||||
override fun Content() {
|
||||
val navigationCoordinator = remember { getNavigationCoordinator() }
|
||||
val notificationCenter = remember { getNotificationCenter() }
|
||||
|
||||
Surface {
|
||||
Column(
|
||||
modifier =
|
||||
Modifier
|
||||
.windowInsetsPadding(WindowInsets.navigationBars)
|
||||
.padding(
|
||||
top = Spacing.s,
|
||||
start = Spacing.s,
|
||||
end = Spacing.s,
|
||||
bottom = Spacing.m,
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
BottomSheetHeader(LocalStrings.current.settingsPostLayout)
|
||||
val values =
|
||||
listOf(
|
||||
PostLayout.Card,
|
||||
PostLayout.Compact,
|
||||
PostLayout.Full,
|
||||
)
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState()),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xxs),
|
||||
) {
|
||||
for (value in values) {
|
||||
Row(
|
||||
modifier =
|
||||
Modifier
|
||||
.clip(RoundedCornerShape(CornerSize.xxl))
|
||||
.onClick(
|
||||
onClick = {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangePostLayout(value),
|
||||
)
|
||||
navigationCoordinator.hideBottomSheet()
|
||||
},
|
||||
).padding(
|
||||
horizontal = Spacing.s,
|
||||
vertical = Spacing.s,
|
||||
).fillMaxWidth(),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Text(
|
||||
text = value.toReadableName(),
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,107 +0,0 @@
|
||||
package com.livefast.eattrash.raccoonforlemmy.core.commonui.modals
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.navigationBars
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import cafe.adriel.voyager.core.screen.Screen
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.CornerSize
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.Spacing
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.components.BottomSheetHeader
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getNavigationCoordinator
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.NotificationCenterEvent
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.di.getNotificationCenter
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
||||
|
||||
class ReportListTypeSheet : Screen {
|
||||
@Composable
|
||||
override fun Content() {
|
||||
val navigationCoordinator = remember { getNavigationCoordinator() }
|
||||
val notificationCenter = remember { getNotificationCenter() }
|
||||
|
||||
Surface {
|
||||
Column(
|
||||
modifier =
|
||||
Modifier
|
||||
.windowInsetsPadding(WindowInsets.navigationBars)
|
||||
.padding(
|
||||
top = Spacing.s,
|
||||
start = Spacing.s,
|
||||
end = Spacing.s,
|
||||
bottom = Spacing.m,
|
||||
),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.s),
|
||||
) {
|
||||
BottomSheetHeader(LocalStrings.current.reportListTypeTitle)
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState()),
|
||||
verticalArrangement = Arrangement.spacedBy(Spacing.xxs),
|
||||
) {
|
||||
Row(
|
||||
modifier =
|
||||
Modifier
|
||||
.padding(
|
||||
horizontal = Spacing.s,
|
||||
vertical = Spacing.s,
|
||||
).fillMaxWidth()
|
||||
.onClick(
|
||||
onClick = {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangeReportListType(true),
|
||||
)
|
||||
navigationCoordinator.hideBottomSheet()
|
||||
},
|
||||
),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Text(
|
||||
text = LocalStrings.current.reportListTypeUnresolved,
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
Row(
|
||||
modifier =
|
||||
Modifier
|
||||
.clip(RoundedCornerShape(CornerSize.xxl))
|
||||
.onClick(
|
||||
onClick = {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangeReportListType(false),
|
||||
)
|
||||
navigationCoordinator.hideBottomSheet()
|
||||
},
|
||||
).fillMaxWidth()
|
||||
.padding(
|
||||
horizontal = Spacing.s,
|
||||
vertical = Spacing.s,
|
||||
),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Text(
|
||||
text = LocalStrings.current.reportListTypeAll,
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.onBackground,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -46,7 +46,6 @@ import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.SettingsRow
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.SettingsSwitchRow
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.CustomModalBottomSheet
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.CustomModalBottomSheetItem
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.PostLayoutBottomSheet
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.SelectNumberBottomSheet
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.SelectNumberBottomSheetType
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
||||
@ -68,6 +67,7 @@ class ConfigureContentViewScreen : Screen {
|
||||
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarState)
|
||||
val scrollState = rememberScrollState()
|
||||
var voteFormatBottomSheetOpened by remember { mutableStateOf(false) }
|
||||
var postLayoutBottomSheetOpened by remember { mutableStateOf(false) }
|
||||
|
||||
Scaffold(
|
||||
modifier =
|
||||
@ -185,8 +185,7 @@ class ConfigureContentViewScreen : Screen {
|
||||
title = LocalStrings.current.settingsPostLayout,
|
||||
value = uiState.postLayout.toReadableName(),
|
||||
onTap = {
|
||||
val sheet = PostLayoutBottomSheet()
|
||||
navigationCoordinator.showBottomSheet(sheet)
|
||||
postLayoutBottomSheetOpened = true
|
||||
},
|
||||
)
|
||||
|
||||
@ -309,7 +308,7 @@ class ConfigureContentViewScreen : Screen {
|
||||
VoteFormat.Hidden,
|
||||
)
|
||||
CustomModalBottomSheet(
|
||||
title = LocalStrings.current.inboxListingTypeTitle,
|
||||
title = LocalStrings.current.settingsVoteFormat,
|
||||
items =
|
||||
values.map { value ->
|
||||
CustomModalBottomSheetItem(label = value.toReadableName())
|
||||
@ -324,5 +323,29 @@ class ConfigureContentViewScreen : Screen {
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
if (postLayoutBottomSheetOpened) {
|
||||
val values =
|
||||
listOf(
|
||||
PostLayout.Card,
|
||||
PostLayout.Compact,
|
||||
PostLayout.Full,
|
||||
)
|
||||
CustomModalBottomSheet(
|
||||
title = LocalStrings.current.settingsPostLayout,
|
||||
items =
|
||||
values.map { value ->
|
||||
CustomModalBottomSheetItem(label = value.toReadableName())
|
||||
},
|
||||
onSelected = { index ->
|
||||
postLayoutBottomSheetOpened = false
|
||||
if (index != null) {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangePostLayout(value = values[index]),
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -74,10 +74,13 @@ import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.OptionId
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.PostCard
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.PostCardPlaceholder
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.di.getFabNestedScrollConnection
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.LikedTypeSheet
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.CustomModalBottomSheet
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.CustomModalBottomSheetItem
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getDrawerCoordinator
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getNavigationCoordinator
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.NotificationCenterEvent
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.di.getNotificationCenter
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.persistence.data.ActionOnSwipe
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.persistence.di.getSettingsRepository
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
||||
@ -118,6 +121,7 @@ class FilteredContentsScreen(
|
||||
val settings by settingsRepository.currentSettings.collectAsState()
|
||||
val lazyListState = rememberLazyListState()
|
||||
val detailOpener = remember { getDetailOpener() }
|
||||
val notificationCenter = remember { getNotificationCenter() }
|
||||
var rawContent by remember { mutableStateOf<Any?>(null) }
|
||||
val themeRepository = remember { getThemeRepository() }
|
||||
val upVoteColor by themeRepository.upVoteColor.collectAsState()
|
||||
@ -142,6 +146,7 @@ class FilteredContentsScreen(
|
||||
with(LocalDensity.current) {
|
||||
WindowInsets.navigationBars.getBottom(this).toDp()
|
||||
}
|
||||
var likedTypeBottomSheetOpened by remember { mutableStateOf(false) }
|
||||
|
||||
LaunchedEffect(model) {
|
||||
model.effects
|
||||
@ -232,7 +237,7 @@ class FilteredContentsScreen(
|
||||
modifier =
|
||||
Modifier.onClick(
|
||||
onClick = {
|
||||
navigationCoordinator.showBottomSheet(LikedTypeSheet())
|
||||
likedTypeBottomSheetOpened = true
|
||||
},
|
||||
),
|
||||
text = text,
|
||||
@ -991,67 +996,90 @@ class FilteredContentsScreen(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (rawContent != null) {
|
||||
when (val content = rawContent) {
|
||||
is PostModel -> {
|
||||
RawContentDialog(
|
||||
title = content.title,
|
||||
publishDate = content.publishDate,
|
||||
updateDate = content.updateDate,
|
||||
url = content.originalUrl,
|
||||
text = content.text,
|
||||
upVotes = content.upvotes,
|
||||
downVotes = content.downvotes,
|
||||
onDismiss = {
|
||||
rawContent = null
|
||||
},
|
||||
onQuote = { quotation ->
|
||||
rawContent = null
|
||||
if (quotation != null) {
|
||||
detailOpener.openReply(
|
||||
originalPost = content,
|
||||
initialText =
|
||||
buildString {
|
||||
append("> ")
|
||||
append(quotation)
|
||||
append("\n\n")
|
||||
},
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
if (rawContent != null) {
|
||||
when (val content = rawContent) {
|
||||
is PostModel -> {
|
||||
RawContentDialog(
|
||||
title = content.title,
|
||||
publishDate = content.publishDate,
|
||||
updateDate = content.updateDate,
|
||||
url = content.originalUrl,
|
||||
text = content.text,
|
||||
upVotes = content.upvotes,
|
||||
downVotes = content.downvotes,
|
||||
onDismiss = {
|
||||
rawContent = null
|
||||
},
|
||||
onQuote = { quotation ->
|
||||
rawContent = null
|
||||
if (quotation != null) {
|
||||
detailOpener.openReply(
|
||||
originalPost = content,
|
||||
initialText =
|
||||
buildString {
|
||||
append("> ")
|
||||
append(quotation)
|
||||
append("\n\n")
|
||||
},
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
is CommentModel -> {
|
||||
RawContentDialog(
|
||||
publishDate = content.publishDate,
|
||||
updateDate = content.updateDate,
|
||||
text = content.text,
|
||||
upVotes = content.upvotes,
|
||||
downVotes = content.downvotes,
|
||||
onDismiss = {
|
||||
rawContent = null
|
||||
},
|
||||
onQuote = { quotation ->
|
||||
rawContent = null
|
||||
if (quotation != null) {
|
||||
detailOpener.openReply(
|
||||
originalPost = PostModel(id = content.postId),
|
||||
originalComment = content,
|
||||
initialText =
|
||||
buildString {
|
||||
append("> ")
|
||||
append(quotation)
|
||||
append("\n\n")
|
||||
},
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
is CommentModel -> {
|
||||
RawContentDialog(
|
||||
publishDate = content.publishDate,
|
||||
updateDate = content.updateDate,
|
||||
text = content.text,
|
||||
upVotes = content.upvotes,
|
||||
downVotes = content.downvotes,
|
||||
onDismiss = {
|
||||
rawContent = null
|
||||
},
|
||||
onQuote = { quotation ->
|
||||
rawContent = null
|
||||
if (quotation != null) {
|
||||
detailOpener.openReply(
|
||||
originalPost = PostModel(id = content.postId),
|
||||
originalComment = content,
|
||||
initialText =
|
||||
buildString {
|
||||
append("> ")
|
||||
append(quotation)
|
||||
append("\n\n")
|
||||
},
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (likedTypeBottomSheetOpened) {
|
||||
val values =
|
||||
listOf(
|
||||
LocalStrings.current.actionUpvote,
|
||||
LocalStrings.current.actionDownvote,
|
||||
)
|
||||
CustomModalBottomSheet(
|
||||
title = LocalStrings.current.inboxListingTypeTitle,
|
||||
items =
|
||||
values.map { value ->
|
||||
CustomModalBottomSheetItem(label = value)
|
||||
},
|
||||
onSelected = { index ->
|
||||
likedTypeBottomSheetOpened = false
|
||||
if (index != null) {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangedLikedType(value = index == 0),
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -54,9 +54,12 @@ import com.livefast.eattrash.raccoonforlemmy.core.commonui.components.SwipeActio
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.detailopener.api.getDetailOpener
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.Option
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.OptionId
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.ReportListTypeSheet
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.CustomModalBottomSheet
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.CustomModalBottomSheetItem
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getNavigationCoordinator
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.NotificationCenterEvent
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.notifications.di.getNotificationCenter
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.persistence.di.getSettingsRepository
|
||||
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
||||
import com.livefast.eattrash.raccoonforlemmy.domain.lemmy.data.CommentReportModel
|
||||
@ -81,12 +84,14 @@ class ReportListScreen(
|
||||
val topAppBarState = rememberTopAppBarState()
|
||||
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarState)
|
||||
val navigationCoordinator = remember { getNavigationCoordinator() }
|
||||
val notificationCenter = remember { getNotificationCenter() }
|
||||
var rawContent by remember { mutableStateOf<Any?>(null) }
|
||||
val settingsRepository = remember { getSettingsRepository() }
|
||||
val settings by settingsRepository.currentSettings.collectAsState()
|
||||
val lazyListState = rememberLazyListState()
|
||||
val detailOpener = remember { getDetailOpener() }
|
||||
val defaultResolveColor = MaterialTheme.colorScheme.secondary
|
||||
var reportTypeBottomSheetOpened by remember { mutableStateOf(false) }
|
||||
|
||||
LaunchedEffect(model) {
|
||||
model.effects
|
||||
@ -137,8 +142,7 @@ class ReportListScreen(
|
||||
modifier =
|
||||
Modifier.onClick(
|
||||
onClick = {
|
||||
val sheet = ReportListTypeSheet()
|
||||
navigationCoordinator.showBottomSheet(sheet)
|
||||
reportTypeBottomSheetOpened = true
|
||||
},
|
||||
),
|
||||
text = text,
|
||||
@ -489,5 +493,28 @@ class ReportListScreen(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (reportTypeBottomSheetOpened) {
|
||||
val values =
|
||||
listOf(
|
||||
LocalStrings.current.reportListTypeUnresolved,
|
||||
LocalStrings.current.reportListTypeAll,
|
||||
)
|
||||
CustomModalBottomSheet(
|
||||
title = LocalStrings.current.reportListTypeTitle,
|
||||
items =
|
||||
values.map { value ->
|
||||
CustomModalBottomSheetItem(label = value)
|
||||
},
|
||||
onSelected = { index ->
|
||||
reportTypeBottomSheetOpened = false
|
||||
if (index != null) {
|
||||
notificationCenter.send(
|
||||
NotificationCenterEvent.ChangeReportListType(unresolvedOnly = index == 0),
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user