Skip to content

Commit c6a013a

Browse files
leandroBorgesFerreiraLeandro Ferreira
andauthored
Improving sdk (#487)
* Improving SDK * Simplifying initialization * Removing imports and fixing build of tests --------- Co-authored-by: Leandro Ferreira <[email protected]>
1 parent 4a1c94a commit c6a013a

File tree

7 files changed

+19
-37
lines changed

7 files changed

+19
-37
lines changed

application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/ui/TextEditor.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@ package io.writeopia.editor.features.editor.ui
33
import androidx.compose.foundation.gestures.animateScrollBy
44
import androidx.compose.foundation.lazy.LazyListState
55
import androidx.compose.foundation.lazy.rememberLazyListState
6-
import androidx.compose.material3.MaterialTheme
76
import androidx.compose.runtime.Composable
87
import androidx.compose.runtime.LaunchedEffect
98
import androidx.compose.runtime.collectAsState
109
import androidx.compose.runtime.derivedStateOf
1110
import androidx.compose.runtime.getValue
1211
import androidx.compose.runtime.remember
1312
import androidx.compose.ui.Modifier
14-
import androidx.compose.ui.graphics.Color
1513
import androidx.compose.ui.text.font.FontFamily
1614
import io.writeopia.editor.configuration.ui.DrawConfigFactory
1715
import io.writeopia.editor.features.editor.viewmodel.NoteEditorViewModel
@@ -57,8 +55,6 @@ internal fun TextEditor(
5755
}
5856
}
5957
}
60-
61-
val clipShape = MaterialTheme.shapes.medium
6258
val isEditable by noteEditorViewModel.isEditable.collectAsState()
6359

6460
WriteopiaEditor(
@@ -68,12 +64,10 @@ internal fun TextEditor(
6864
keyFn = keyFn,
6965
drawers = drawersFactory.create(
7066
noteEditorViewModel.writeopiaManager,
71-
defaultBorder = clipShape,
7267
onHeaderClick = noteEditorViewModel::onHeaderClick,
7368
editable = isEditable,
7469
aiExplanation = WrStrings.aiExplanation(),
7570
isDarkTheme = isDarkTheme,
76-
groupsBackgroundColor = Color.Transparent,
7771
drawConfig = DrawConfigFactory.getDrawConfig(),
7872
fontFamily = fontFamily,
7973
generateSection = noteEditorViewModel::aiSection,

documentation/writeopia_docs/docs/sdk/tutorial-basics/basics.mdx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ Add the project in your gradle file:
66

77
```kotlin
88
implementation("io.writeopia:writeopia-models:[version]")
9-
implementation("io.writeopia:writeopia-core:[version]"
9+
// Add the core functionality
10+
implementation("io.writeopia:writeopia-core:[version]")
11+
// Add the UI for the editor
12+
implementation("io.writeopia:writeopia-ui:[version]")
1013
```
1114

1215
Check releases for [latest](https://github.com/leandroBorgesFerreira/writeopia/releases) version.

writeopia_ui/src/androidMain/kotlin/io/writeopia/ui/drawer/factory/DefaultDrawersAndroid.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import androidx.compose.material3.MaterialTheme
99
import androidx.compose.runtime.Composable
1010
import androidx.compose.ui.Modifier
1111
import androidx.compose.ui.draw.clip
12-
import androidx.compose.ui.graphics.Color
13-
import androidx.compose.ui.graphics.Shape
1412
import androidx.compose.ui.text.font.FontFamily
1513
import androidx.compose.ui.text.input.TextFieldValue
1614
import androidx.compose.ui.unit.dp
@@ -28,11 +26,9 @@ object DefaultDrawersAndroid : DrawersFactory {
2826
@Composable
2927
override fun create(
3028
manager: WriteopiaStateManager,
31-
defaultBorder: Shape,
3229
editable: Boolean,
3330
aiExplanation: String,
3431
isDarkTheme: Boolean,
35-
groupsBackgroundColor: Color,
3632
onHeaderClick: () -> Unit,
3733
drawConfig: DrawConfig,
3834
fontFamily: FontFamily?,
Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.writeopia.ui.drawer.factory
22

33
import androidx.compose.runtime.Composable
4-
import androidx.compose.ui.graphics.Color
5-
import androidx.compose.ui.graphics.Shape
64
import androidx.compose.ui.text.font.FontFamily
75
import io.writeopia.sdk.models.files.ExternalFile
86
import io.writeopia.ui.drawer.StoryStepDrawer
@@ -14,16 +12,14 @@ interface DrawersFactory {
1412
@Composable
1513
fun create(
1614
manager: WriteopiaStateManager,
17-
defaultBorder: Shape,
18-
editable: Boolean,
19-
aiExplanation: String,
20-
isDarkTheme: Boolean,
21-
groupsBackgroundColor: Color,
22-
onHeaderClick: () -> Unit,
23-
drawConfig: DrawConfig,
24-
fontFamily: FontFamily?,
25-
generateSection: (Int) -> Unit,
26-
receiveExternalFile: (List<ExternalFile>, Int) -> Unit,
27-
onDocumentLinkClick: (String) -> Unit,
15+
editable: Boolean = true,
16+
aiExplanation: String = "AI Generated",
17+
isDarkTheme: Boolean = false,
18+
onHeaderClick: () -> Unit = {},
19+
drawConfig: DrawConfig = DrawConfig(),
20+
fontFamily: FontFamily? = null,
21+
generateSection: (Int) -> Unit = {},
22+
receiveExternalFile: (List<ExternalFile>, Int) -> Unit = { _, _ -> },
23+
onDocumentLinkClick: (String) -> Unit = {},
2824
): Map<Int, StoryStepDrawer>
2925
}

writeopia_ui/src/commonMain/kotlin/io/writeopia/ui/manager/WriteopiaStateManager.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import io.writeopia.sdk.models.story.StoryStep
2222
import io.writeopia.sdk.models.story.StoryTypes
2323
import io.writeopia.sdk.models.story.Tag
2424
import io.writeopia.sdk.models.story.TagInfo
25+
import io.writeopia.sdk.models.user.WriteopiaUser
2526
import io.writeopia.sdk.normalization.builder.StepsMapNormalizationBuilder
2627
import io.writeopia.sdk.repository.DocumentRepository
2728
import io.writeopia.sdk.repository.UserRepository
@@ -40,6 +41,7 @@ import io.writeopia.ui.model.TextInput
4041
import io.writeopia.ui.modifiers.StepsModifier
4142
import kotlinx.coroutines.CoroutineDispatcher
4243
import kotlinx.coroutines.CoroutineScope
44+
import kotlinx.coroutines.Dispatchers
4345
import kotlinx.coroutines.cancel
4446
import kotlinx.coroutines.delay
4547
import kotlinx.coroutines.flow.Flow
@@ -70,7 +72,7 @@ class WriteopiaStateManager(
7072
private val dispatcher: CoroutineDispatcher,
7173
private val coroutineScope: CoroutineScope = CoroutineScope(EmptyCoroutineContext),
7274
private val backStackManager: SnapshotBackstackManager,
73-
private val userRepository: UserRepository,
75+
private val userRepository: UserRepository?,
7476
private val writeopiaManager: WriteopiaManager,
7577
val selectionState: StateFlow<Boolean>,
7678
private val keyboardEventFlow: Flow<KeyboardEvent>,
@@ -1061,7 +1063,8 @@ class WriteopiaStateManager(
10611063
}
10621064
}
10631065

1064-
private suspend fun getUserId(): String = userRepository.getUser().id
1066+
private suspend fun getUserId(): String =
1067+
userRepository?.getUser()?.id ?: WriteopiaUser.disconnectedUser().id
10651068

10661069
/**
10671070
* Moves the focus to the next available [StoryStep] if it can't find a step to focus, it
@@ -1271,7 +1274,7 @@ class WriteopiaStateManager(
12711274
companion object {
12721275
fun create(
12731276
writeopiaManager: WriteopiaManager,
1274-
dispatcher: CoroutineDispatcher,
1277+
dispatcher: CoroutineDispatcher = Dispatchers.Unconfined,
12751278
documentRepository: DocumentRepository? = null,
12761279
selectionState: StateFlow<Boolean> = MutableStateFlow(false),
12771280
keyboardEventFlow: Flow<KeyboardEvent?> = MutableStateFlow(null),

writeopia_ui/src/jsMain/kotlin/io/writeopia/ui/drawer/factory/DefaultDrawersJs.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import androidx.compose.ui.ExperimentalComposeUiApi
1515
import androidx.compose.ui.Modifier
1616
import androidx.compose.ui.draw.clip
1717
import androidx.compose.ui.graphics.Color
18-
import androidx.compose.ui.graphics.Shape
1918
import androidx.compose.ui.input.pointer.PointerEventType
2019
import androidx.compose.ui.input.pointer.onPointerEvent
2120
import androidx.compose.ui.text.font.FontFamily
@@ -27,21 +26,15 @@ import io.writeopia.ui.icons.WrSdkIcons
2726
import io.writeopia.ui.manager.WriteopiaStateManager
2827
import io.writeopia.ui.model.DrawConfig
2928

30-
private const val LARGE_START_PADDING = 26
31-
private const val MEDIUM_START_PADDING = 12
32-
private const val SMALL_START_PADDING = 4
33-
3429
object DefaultDrawersJs : DrawersFactory {
3530

3631
@OptIn(ExperimentalComposeUiApi::class)
3732
@Composable
3833
override fun create(
3934
manager: WriteopiaStateManager,
40-
defaultBorder: Shape,
4135
editable: Boolean,
4236
aiExplanation: String,
4337
isDarkTheme: Boolean,
44-
groupsBackgroundColor: Color,
4538
onHeaderClick: () -> Unit,
4639
drawConfig: DrawConfig,
4740
fontFamily: FontFamily?,

writeopia_ui/src/jvmMain/kotlin/io/writeopia/ui/drawer/factory/DefaultDrawersDesktop.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import androidx.compose.ui.ExperimentalComposeUiApi
1818
import androidx.compose.ui.Modifier
1919
import androidx.compose.ui.draw.clip
2020
import androidx.compose.ui.graphics.Color
21-
import androidx.compose.ui.graphics.Shape
2221
import androidx.compose.ui.input.pointer.PointerEventType
2322
import androidx.compose.ui.input.pointer.onPointerEvent
2423
import androidx.compose.ui.text.font.FontFamily
@@ -36,11 +35,9 @@ object DefaultDrawersDesktop : DrawersFactory {
3635
@Composable
3736
override fun create(
3837
manager: WriteopiaStateManager,
39-
defaultBorder: Shape,
4038
editable: Boolean,
4139
aiExplanation: String,
4240
isDarkTheme: Boolean,
43-
groupsBackgroundColor: Color,
4441
onHeaderClick: () -> Unit,
4542
drawConfig: DrawConfig,
4643
fontFamily: FontFamily?,

0 commit comments

Comments
 (0)