Skip to content

Commit 170aeca

Browse files
leandroBorgesFerreiraLeandro Ferreira
andauthored
Editing folders in android (#526)
Co-authored-by: Leandro Ferreira <[email protected]>
1 parent b2ede63 commit 170aeca

4 files changed

Lines changed: 31 additions & 1 deletion

File tree

application/features/note_menu/src/commonMain/kotlin/io/writeopia/notemenu/ui/screen/menu/MobileChooseNoteScreen.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,18 @@ internal fun MobileChooseNoteScreen(
130130
onCancel = chooseNoteViewModel::cancelDeletion,
131131
)
132132
}
133+
134+
val folderEdit =
135+
chooseNoteViewModel.editFolderState.collectAsState().value
136+
137+
if (folderEdit != null) {
138+
EditFileScreen(
139+
folderEdit = folderEdit,
140+
onDismissRequest = chooseNoteViewModel::stopEditingFolder,
141+
deleteFolder = chooseNoteViewModel::deleteFolder,
142+
editFolder = chooseNoteViewModel::updateFolder
143+
)
144+
}
133145
}
134146
}
135147

application/features/note_menu/src/commonMain/kotlin/io/writeopia/notemenu/viewmodel/ChooseNoteKmpViewModel.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,22 @@ internal class ChooseNoteKmpViewModel(
207207
private val _showAddMenuState = MutableStateFlow(false)
208208
override val showAddMenuState: StateFlow<Boolean> = _showAddMenuState
209209

210+
override val editFolderState: StateFlow<Folder?> by lazy {
211+
combine(
212+
folderController.editingFolderState,
213+
menuItemsPerFolderId,
214+
) { selectedFolder, menuItems ->
215+
if (selectedFolder != null) {
216+
menuItems[selectedFolder.parentId]
217+
?.find { menuItem ->
218+
menuItem.id == selectedFolder.id
219+
} as? Folder
220+
} else {
221+
null
222+
}
223+
}.stateIn(viewModelScope, SharingStarted.Lazily, null)
224+
}
225+
210226
init {
211227
folderController.initCoroutine(viewModelScope)
212228

application/features/note_menu/src/commonMain/kotlin/io/writeopia/notemenu/viewmodel/ChooseNoteViewModel.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package io.writeopia.notemenu.viewmodel
33
import io.writeopia.core.configuration.models.NotesArrangement
44
import io.writeopia.notemenu.ui.dto.NotesUi
55
import io.writeopia.onboarding.OnboardingState
6+
import io.writeopia.sdk.models.document.Folder
67
import io.writeopia.sdk.models.document.MenuItem
78
import io.writeopia.sdk.models.files.ExternalFile
89
import io.writeopia.sdk.models.sorting.OrderBy
@@ -39,6 +40,8 @@ interface ChooseNoteViewModel : FolderController {
3940

4041
val showAddMenuState: StateFlow<Boolean>
4142

43+
val editFolderState: StateFlow<Folder?>
44+
4245
// fun requestDocuments(force: Boolean)
4346
fun handleMenuItemTap(id: String): Boolean
4447

application/features/note_menu/src/commonMain/kotlin/io/writeopia/notemenu/viewmodel/FolderStateController.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ class FolderStateController private constructor(
4343
}
4444

4545
override fun editFolder(folder: MenuItemUi.FolderUi) {
46-
println("editing folder: $folder. this: $this")
4746
_editingFolder.value = folder
4847
}
4948

0 commit comments

Comments
 (0)