Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit e5dbc568 authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

Change drawer folder selection to depend on id only

parent feb33417
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -72,7 +72,28 @@ internal fun DrawerContentWithSelectedFolderPreview() {
                    UNIFIED_FOLDER,
                    DISPLAY_FOLDER,
                ),
                selectedFolder = DISPLAY_FOLDER,
                selectedFolderId = DISPLAY_FOLDER.id,
            ),
            onEvent = {},
        )
    }
}

@Composable
@Preview(showBackground = true)
internal fun DrawerContentWithSelectedUnifiedFolderPreview() {
    PreviewWithTheme {
        DrawerContent(
            state = DrawerContract.State(
                accounts = persistentListOf(
                    DISPLAY_ACCOUNT,
                ),
                selectedAccountUuid = DISPLAY_ACCOUNT.uuid,
                folders = persistentListOf(
                    UNIFIED_FOLDER,
                    DISPLAY_FOLDER,
                ),
                selectedFolderId = UNIFIED_FOLDER.id,
            ),
            onEvent = {},
        )
+1 −1
Original line number Diff line number Diff line
@@ -9,5 +9,5 @@ internal data class DisplayAccountFolder(
    override val unreadMessageCount: Int,
    override val starredMessageCount: Int,
) : DisplayFolder {
    override val id: String = accountUuid + folder.id
    override val id: String = "${accountUuid}_${folder.id}"
}
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ internal fun DrawerContent(
                ) {
                    FolderList(
                        folders = state.folders,
                        selectedFolder = state.selectedFolder,
                        selectedFolder = state.folders.firstOrNull { it.id == state.selectedFolderId },
                        onFolderClick = { folder ->
                            onEvent(Event.OnFolderClick(folder))
                        },
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ internal interface DrawerContract {
        val accounts: ImmutableList<DisplayAccount> = persistentListOf(),
        val selectedAccountUuid: String? = null,
        val folders: ImmutableList<DisplayFolder> = persistentListOf(),
        val selectedFolder: DisplayFolder? = null,
        val selectedFolderId: String? = null,
        val showAccountSelector: Boolean = false,
        val isLoading: Boolean = false,
    )
+3 −3
Original line number Diff line number Diff line
@@ -89,13 +89,13 @@ internal class DrawerViewModel(

    private fun updateFolders(displayFolders: List<DisplayFolder>) {
        val selectedFolder = displayFolders.find {
            it.id == state.value.selectedFolder?.id
            it.id == state.value.selectedFolderId
        } ?: displayFolders.firstOrNull()

        updateState {
            it.copy(
                folders = displayFolders.toImmutableList(),
                selectedFolder = selectedFolder,
                selectedFolderId = selectedFolder?.id,
            )
        }
    }
@@ -145,7 +145,7 @@ internal class DrawerViewModel(

    private fun selectFolder(folder: DisplayFolder) {
        updateState {
            it.copy(selectedFolder = folder)
            it.copy(selectedFolderId = folder.id)
        }

        if (folder is DisplayAccountFolder) {
Loading