diff --git a/kmp/src/commonMain/kotlin/dev/stapler/stelekit/db/RestrictedDatabaseQueries.kt b/kmp/src/commonMain/kotlin/dev/stapler/stelekit/db/RestrictedDatabaseQueries.kt index 8f7061b..08d7426 100644 --- a/kmp/src/commonMain/kotlin/dev/stapler/stelekit/db/RestrictedDatabaseQueries.kt +++ b/kmp/src/commonMain/kotlin/dev/stapler/stelekit/db/RestrictedDatabaseQueries.kt @@ -101,6 +101,10 @@ class RestrictedDatabaseQueries(private val queries: SteleDatabaseQueries) { fun deleteBlocksByPageUuid(page_uuid: String): QueryResult = queries.deleteBlocksByPageUuid(page_uuid) + @DirectSqlWrite + fun deleteBlocksByPageUuids(page_uuids: Collection): QueryResult = + queries.deleteBlocksByPageUuids(page_uuids) + @DirectSqlWrite fun deleteAllBlocks(): QueryResult = queries.deleteAllBlocks() diff --git a/kmp/src/commonMain/kotlin/dev/stapler/stelekit/repository/SqlDelightBlockRepository.kt b/kmp/src/commonMain/kotlin/dev/stapler/stelekit/repository/SqlDelightBlockRepository.kt index 0c0b558..e886a07 100644 --- a/kmp/src/commonMain/kotlin/dev/stapler/stelekit/repository/SqlDelightBlockRepository.kt +++ b/kmp/src/commonMain/kotlin/dev/stapler/stelekit/repository/SqlDelightBlockRepository.kt @@ -871,9 +871,7 @@ class SqlDelightBlockRepository( override suspend fun deleteBlocksForPages(pageUuids: List): Result = withContext(PlatformDispatcher.DB) { if (pageUuids.isEmpty()) return@withContext success(Unit) try { - queries.transaction { - pageUuids.forEach { queries.deleteBlocksByPageUuid(it) } - } + queries.deleteBlocksByPageUuids(pageUuids) success(Unit) } catch (e: Exception) { Result.failure(e) diff --git a/kmp/src/commonMain/kotlin/dev/stapler/stelekit/ui/AppState.kt b/kmp/src/commonMain/kotlin/dev/stapler/stelekit/ui/AppState.kt index bc1e3fc..e415561 100644 --- a/kmp/src/commonMain/kotlin/dev/stapler/stelekit/ui/AppState.kt +++ b/kmp/src/commonMain/kotlin/dev/stapler/stelekit/ui/AppState.kt @@ -35,7 +35,7 @@ data class AppState( val rightSidebarExpanded: Boolean = false, val settingsVisible: Boolean = false, val isLoading: Boolean = false, - val isFullyLoaded: Boolean = true, // True when all background loading is complete + val isFullyLoaded: Boolean = false, // True when all background loading is complete val themeMode: StelekitThemeMode = StelekitThemeMode.SYSTEM, val language: Language = Language.ENGLISH, val onboardingCompleted: Boolean = false, diff --git a/kmp/src/commonMain/sqldelight/dev/stapler/stelekit/db/SteleDatabase.sq b/kmp/src/commonMain/sqldelight/dev/stapler/stelekit/db/SteleDatabase.sq index a8ec4c5..60880f8 100644 --- a/kmp/src/commonMain/sqldelight/dev/stapler/stelekit/db/SteleDatabase.sq +++ b/kmp/src/commonMain/sqldelight/dev/stapler/stelekit/db/SteleDatabase.sq @@ -255,6 +255,9 @@ DELETE FROM blocks; deleteBlocksByPageUuid: DELETE FROM blocks WHERE page_uuid = ?; +deleteBlocksByPageUuids: +DELETE FROM blocks WHERE page_uuid IN ?; + insertBlock: INSERT OR REPLACE INTO blocks (uuid, page_uuid, parent_uuid, left_uuid, content, level, position, created_at, updated_at, properties, version, content_hash, block_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); diff --git a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/BottomNavScreenshotTest.kt b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/BottomNavScreenshotTest.kt index 4df7170..2395649 100644 --- a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/BottomNavScreenshotTest.kt +++ b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/BottomNavScreenshotTest.kt @@ -1,4 +1,6 @@ package dev.stapler.stelekit.ui +import androidx.compose.ui.test.* +import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -16,10 +18,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clipToBounds -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.onRoot import dev.stapler.stelekit.ui.theme.StelekitTheme import dev.stapler.stelekit.ui.theme.StelekitThemeMode import io.github.takahirom.roborazzi.captureRoboImage diff --git a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/MigrationReadyLoadingTest.kt b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/MigrationReadyLoadingTest.kt index 97c1179..fee1fc9 100644 --- a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/MigrationReadyLoadingTest.kt +++ b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/MigrationReadyLoadingTest.kt @@ -1,4 +1,6 @@ package dev.stapler.stelekit.ui +import androidx.compose.ui.test.* +import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -7,10 +9,6 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onAllNodesWithText -import androidx.compose.ui.test.onNodeWithText import kotlinx.coroutines.delay import org.junit.Rule import org.junit.Test diff --git a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SearchDialogTest.kt b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SearchDialogTest.kt index ac9727e..56519e9 100644 --- a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SearchDialogTest.kt +++ b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SearchDialogTest.kt @@ -1,10 +1,8 @@ package dev.stapler.stelekit.ui.components +import androidx.compose.ui.test.* +import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.material3.MaterialTheme -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.performTextInput import dev.stapler.stelekit.repository.InMemorySearchRepository import dev.stapler.stelekit.ui.fixtures.PopulatedFakePageRepository import dev.stapler.stelekit.ui.fixtures.PopulatedFakeBlockRepository diff --git a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionContextMenuTest.kt b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionContextMenuTest.kt index a2ab552..6aa8311 100644 --- a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionContextMenuTest.kt +++ b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionContextMenuTest.kt @@ -1,10 +1,8 @@ package dev.stapler.stelekit.ui.components +import androidx.compose.ui.test.* +import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.material3.MaterialTheme -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test import kotlin.test.assertTrue diff --git a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionNavigatorPanelTest.kt b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionNavigatorPanelTest.kt index ab77fd2..ee2637f 100644 --- a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionNavigatorPanelTest.kt +++ b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/components/SuggestionNavigatorPanelTest.kt @@ -1,12 +1,8 @@ package dev.stapler.stelekit.ui.components +import androidx.compose.ui.test.* +import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.material3.MaterialTheme -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.assertIsEnabled -import androidx.compose.ui.test.assertIsNotEnabled -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test import kotlin.test.assertEquals diff --git a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/MobileLayoutTest.kt b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/MobileLayoutTest.kt index 39eb1e5..49b59b0 100644 --- a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/MobileLayoutTest.kt +++ b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/MobileLayoutTest.kt @@ -1,12 +1,11 @@ package dev.stapler.stelekit.ui.layout +import androidx.compose.ui.test.* +import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.foundation.layout.Box import androidx.compose.material3.MaterialTheme import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clipToBounds -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.unit.dp import dev.stapler.stelekit.ui.components.LeftSidebar import dev.stapler.stelekit.ui.AppState diff --git a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/SidebarLoadingStateTest.kt b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/SidebarLoadingStateTest.kt index 5d81c84..cde19c3 100644 --- a/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/SidebarLoadingStateTest.kt +++ b/kmp/src/jvmTest/kotlin/dev/stapler/stelekit/ui/layout/SidebarLoadingStateTest.kt @@ -1,11 +1,8 @@ package dev.stapler.stelekit.ui.layout +import androidx.compose.ui.test.* +import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.material3.MaterialTheme -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.assertIsNotDisplayed -import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.performClick import dev.stapler.stelekit.model.Page import dev.stapler.stelekit.ui.Screen import dev.stapler.stelekit.ui.components.LeftSidebar