Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,8 @@ fun DesktopApp(
val documentsGraphInjection =
DocumentsGraphInjection(repositoryInjection = SqlDelightDaoInjector.singleton())

val globalShellViewModel: GlobalShellViewModel = sideMenuInjector.provideSideMenuViewModel()
val globalShellViewModel: GlobalShellViewModel =
sideMenuInjector.provideSideMenuViewModel(keyboardEventFlow)
val colorTheme by colorThemeOption.collectAsState()
val navigationController: NavHostController = rememberNavController()
val searchViewModel = KmpSearchInjection.singleton().provideViewModel()
Expand Down
3 changes: 0 additions & 3 deletions application/features/account/config/ktlint/baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
<baseline version="1.0">
<file name="src/commonMain/kotlin/io/writeopia/account/ui/SettingsDialog.kt">
<error line="586" column="1" source="standard:no-consecutive-blank-lines" />
<error line="848" column="1" source="standard:no-consecutive-blank-lines" />
<error line="934" column="58" source="standard:wrapping" />
<error line="934" column="59" source="standard:argument-list-wrapping" />
</file>
<file name="src/commonMain/kotlin/io/writeopia/account/viewmodel/AccountMenuKmpViewModel.kt">
<error line="17" column="27" source="standard:class-signature" />
Expand Down
21 changes: 10 additions & 11 deletions application/features/global_shell/config/ktlint/baseline.xml
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<baseline version="1.0">
<file name="src/commonMain/kotlin/io/writeopia/global/shell/di/SideMenuKmpInjector.kt">
<error line="37" column="23" source="standard:class-signature" />
<error line="46" column="21" source="standard:function-expression-body" />
<error line="39" column="23" source="standard:class-signature" />
</file>
<file name="src/commonMain/kotlin/io/writeopia/global/shell/viewmodel/GlobalShellKmpViewModel.kt">
<error line="81" column="27" source="standard:class-signature" />
<error line="81" column="27" source="standard:class-signature" />
<error line="81" column="40" source="standard:class-signature" />
<error line="89" column="17" source="standard:backing-property-naming" />
<error line="91" column="17" source="standard:backing-property-naming" />
<error line="97" column="17" source="standard:backing-property-naming" />
<error line="99" column="17" source="standard:backing-property-naming" />
<error line="105" column="17" source="standard:backing-property-naming" />
<error line="198" column="17" source="standard:backing-property-naming" />
<error line="84" column="27" source="standard:class-signature" />
<error line="84" column="27" source="standard:class-signature" />
<error line="84" column="40" source="standard:class-signature" />
<error line="92" column="17" source="standard:backing-property-naming" />
<error line="94" column="17" source="standard:backing-property-naming" />
<error line="100" column="17" source="standard:backing-property-naming" />
<error line="102" column="17" source="standard:backing-property-naming" />
<error line="108" column="17" source="standard:backing-property-naming" />
<error line="201" column="17" source="standard:backing-property-naming" />
</file>
<file name="src/commonMain/kotlin/io/writeopia/global/shell/viewmodel/GlobalShellViewModel.kt">
<error line="14" column="34" source="standard:class-signature" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ package io.writeopia.global.shell.di

import androidx.compose.runtime.Composable
import io.writeopia.global.shell.viewmodel.GlobalShellViewModel
import io.writeopia.ui.keyboard.KeyboardEvent
import kotlinx.coroutines.flow.Flow

interface SideMenuInjector {

@Composable
fun provideSideMenuViewModel(): GlobalShellViewModel
fun provideSideMenuViewModel(keyboardEventFlow: Flow<KeyboardEvent>? = null): GlobalShellViewModel
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ import io.writeopia.sdk.network.injector.WriteopiaConnectionInjector
import io.writeopia.sdk.persistence.core.di.RepositoryInjector
import io.writeopia.sdk.repository.DocumentRepository
import io.writeopia.sqldelight.di.SqlDelightDaoInjector
import io.writeopia.ui.keyboard.KeyboardEvent
import kotlinx.coroutines.flow.Flow

class SideMenuKmpInjector(
private val appConfigurationInjector: AppConfigurationInjector =
Expand All @@ -43,14 +45,13 @@ class SideMenuKmpInjector(
configurationRepository: ConfigurationRepository =
appConfigurationInjector.provideNotesConfigurationRepository(),
folderRepository: FolderRepository = FoldersInjector.singleton().provideFoldersRepository(),
): NotesUseCase {
return NotesUseCase.singleton(
): NotesUseCase =
NotesUseCase.singleton(
documentRepository,
configurationRepository,
folderRepository,
authCoreInjection.provideAuthRepository()
)
}

private fun provideWorkspaceSync(): WorkspaceSync {
val documentRepo = repositoryInjection.provideDocumentRepository()
Expand All @@ -74,7 +75,7 @@ class SideMenuKmpInjector(
WorkspaceApi(appConnectionInjection.provideHttpClient(), connectionInjector.baseUrl())

@Composable
override fun provideSideMenuViewModel(): GlobalShellViewModel =
override fun provideSideMenuViewModel(keyboardEventFlow: Flow<KeyboardEvent>?): GlobalShellViewModel =
viewModel {
GlobalShellKmpViewModel(
notesUseCase = provideNotesUseCase(),
Expand All @@ -87,7 +88,8 @@ class SideMenuKmpInjector(
configRepository = appConfigurationInjector.provideNotesConfigurationRepository(),
authApi = authCoreInjection.provideAuthApi(),
workspaceSync = provideWorkspaceSync(),
workspaceApi = provideWorkspaceApi()
workspaceApi = provideWorkspaceApi(),
keyboardEventFlow = keyboardEventFlow
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,10 @@ import io.writeopia.sdk.serialization.data.DocumentApi
import io.writeopia.sdk.serialization.extensions.toModel
import io.writeopia.sdk.serialization.json.writeopiaJson
import io.writeopia.tutorials.Tutorials
import io.writeopia.ui.keyboard.KeyboardEvent
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
Expand Down Expand Up @@ -77,7 +79,8 @@ class GlobalShellKmpViewModel(
private val configRepository: ConfigurationRepository,
private val json: Json = writeopiaJson,
private val workspaceSync: WorkspaceSync,
private val workspaceApi: WorkspaceApi
private val workspaceApi: WorkspaceApi,
private val keyboardEventFlow: Flow<KeyboardEvent>?,
) : GlobalShellViewModel, ViewModel(), FolderController by folderStateController {

private var localUserId: String? = null
Expand Down Expand Up @@ -302,6 +305,20 @@ class GlobalShellKmpViewModel(
init {
folderStateController.initCoroutine(viewModelScope)

viewModelScope.launch {
keyboardEventFlow
?.onEach { delay(60) }
?.collect { event ->
when (event) {
KeyboardEvent.SEARCH -> {
showSearch()
}

else -> {}
}
}
}

viewModelScope.launch(Dispatchers.Default) {
val userId = getUserId()
val workspace = authRepository.getWorkspace() ?: Workspace.disconnectedWorkspace()
Expand Down