mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-09 09:48:45 +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.lemmyui.SettingsSwitchRow
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.CustomModalBottomSheet
|
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.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.SelectNumberBottomSheet
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.SelectNumberBottomSheetType
|
import com.livefast.eattrash.raccoonforlemmy.core.commonui.modals.SelectNumberBottomSheetType
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
import com.livefast.eattrash.raccoonforlemmy.core.l10n.messages.LocalStrings
|
||||||
@ -68,6 +67,7 @@ class ConfigureContentViewScreen : Screen {
|
|||||||
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarState)
|
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarState)
|
||||||
val scrollState = rememberScrollState()
|
val scrollState = rememberScrollState()
|
||||||
var voteFormatBottomSheetOpened by remember { mutableStateOf(false) }
|
var voteFormatBottomSheetOpened by remember { mutableStateOf(false) }
|
||||||
|
var postLayoutBottomSheetOpened by remember { mutableStateOf(false) }
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier =
|
modifier =
|
||||||
@ -185,8 +185,7 @@ class ConfigureContentViewScreen : Screen {
|
|||||||
title = LocalStrings.current.settingsPostLayout,
|
title = LocalStrings.current.settingsPostLayout,
|
||||||
value = uiState.postLayout.toReadableName(),
|
value = uiState.postLayout.toReadableName(),
|
||||||
onTap = {
|
onTap = {
|
||||||
val sheet = PostLayoutBottomSheet()
|
postLayoutBottomSheetOpened = true
|
||||||
navigationCoordinator.showBottomSheet(sheet)
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -309,7 +308,7 @@ class ConfigureContentViewScreen : Screen {
|
|||||||
VoteFormat.Hidden,
|
VoteFormat.Hidden,
|
||||||
)
|
)
|
||||||
CustomModalBottomSheet(
|
CustomModalBottomSheet(
|
||||||
title = LocalStrings.current.inboxListingTypeTitle,
|
title = LocalStrings.current.settingsVoteFormat,
|
||||||
items =
|
items =
|
||||||
values.map { value ->
|
values.map { value ->
|
||||||
CustomModalBottomSheetItem(label = value.toReadableName())
|
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.PostCard
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.PostCardPlaceholder
|
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.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.l10n.messages.LocalStrings
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getDrawerCoordinator
|
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getDrawerCoordinator
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getNavigationCoordinator
|
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.data.ActionOnSwipe
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.persistence.di.getSettingsRepository
|
import com.livefast.eattrash.raccoonforlemmy.core.persistence.di.getSettingsRepository
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
||||||
@ -118,6 +121,7 @@ class FilteredContentsScreen(
|
|||||||
val settings by settingsRepository.currentSettings.collectAsState()
|
val settings by settingsRepository.currentSettings.collectAsState()
|
||||||
val lazyListState = rememberLazyListState()
|
val lazyListState = rememberLazyListState()
|
||||||
val detailOpener = remember { getDetailOpener() }
|
val detailOpener = remember { getDetailOpener() }
|
||||||
|
val notificationCenter = remember { getNotificationCenter() }
|
||||||
var rawContent by remember { mutableStateOf<Any?>(null) }
|
var rawContent by remember { mutableStateOf<Any?>(null) }
|
||||||
val themeRepository = remember { getThemeRepository() }
|
val themeRepository = remember { getThemeRepository() }
|
||||||
val upVoteColor by themeRepository.upVoteColor.collectAsState()
|
val upVoteColor by themeRepository.upVoteColor.collectAsState()
|
||||||
@ -142,6 +146,7 @@ class FilteredContentsScreen(
|
|||||||
with(LocalDensity.current) {
|
with(LocalDensity.current) {
|
||||||
WindowInsets.navigationBars.getBottom(this).toDp()
|
WindowInsets.navigationBars.getBottom(this).toDp()
|
||||||
}
|
}
|
||||||
|
var likedTypeBottomSheetOpened by remember { mutableStateOf(false) }
|
||||||
|
|
||||||
LaunchedEffect(model) {
|
LaunchedEffect(model) {
|
||||||
model.effects
|
model.effects
|
||||||
@ -232,7 +237,7 @@ class FilteredContentsScreen(
|
|||||||
modifier =
|
modifier =
|
||||||
Modifier.onClick(
|
Modifier.onClick(
|
||||||
onClick = {
|
onClick = {
|
||||||
navigationCoordinator.showBottomSheet(LikedTypeSheet())
|
likedTypeBottomSheetOpened = true
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
text = text,
|
text = text,
|
||||||
@ -991,6 +996,7 @@ class FilteredContentsScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (rawContent != null) {
|
if (rawContent != null) {
|
||||||
when (val content = rawContent) {
|
when (val content = rawContent) {
|
||||||
@ -1052,6 +1058,28 @@ class FilteredContentsScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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.detailopener.api.getDetailOpener
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.Option
|
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.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.l10n.messages.LocalStrings
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.navigation.di.getNavigationCoordinator
|
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.persistence.di.getSettingsRepository
|
||||||
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick
|
||||||
import com.livefast.eattrash.raccoonforlemmy.domain.lemmy.data.CommentReportModel
|
import com.livefast.eattrash.raccoonforlemmy.domain.lemmy.data.CommentReportModel
|
||||||
@ -81,12 +84,14 @@ class ReportListScreen(
|
|||||||
val topAppBarState = rememberTopAppBarState()
|
val topAppBarState = rememberTopAppBarState()
|
||||||
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarState)
|
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarState)
|
||||||
val navigationCoordinator = remember { getNavigationCoordinator() }
|
val navigationCoordinator = remember { getNavigationCoordinator() }
|
||||||
|
val notificationCenter = remember { getNotificationCenter() }
|
||||||
var rawContent by remember { mutableStateOf<Any?>(null) }
|
var rawContent by remember { mutableStateOf<Any?>(null) }
|
||||||
val settingsRepository = remember { getSettingsRepository() }
|
val settingsRepository = remember { getSettingsRepository() }
|
||||||
val settings by settingsRepository.currentSettings.collectAsState()
|
val settings by settingsRepository.currentSettings.collectAsState()
|
||||||
val lazyListState = rememberLazyListState()
|
val lazyListState = rememberLazyListState()
|
||||||
val detailOpener = remember { getDetailOpener() }
|
val detailOpener = remember { getDetailOpener() }
|
||||||
val defaultResolveColor = MaterialTheme.colorScheme.secondary
|
val defaultResolveColor = MaterialTheme.colorScheme.secondary
|
||||||
|
var reportTypeBottomSheetOpened by remember { mutableStateOf(false) }
|
||||||
|
|
||||||
LaunchedEffect(model) {
|
LaunchedEffect(model) {
|
||||||
model.effects
|
model.effects
|
||||||
@ -137,8 +142,7 @@ class ReportListScreen(
|
|||||||
modifier =
|
modifier =
|
||||||
Modifier.onClick(
|
Modifier.onClick(
|
||||||
onClick = {
|
onClick = {
|
||||||
val sheet = ReportListTypeSheet()
|
reportTypeBottomSheetOpened = true
|
||||||
navigationCoordinator.showBottomSheet(sheet)
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
text = text,
|
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