mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
Editor | Refact | EditorMode as sealed class containing state (#1442)
This commit is contained in:
parent
052b01d9e0
commit
b5f5812f37
6 changed files with 91 additions and 87 deletions
|
@ -1,5 +0,0 @@
|
|||
package com.anytypeio.anytype.domain.page
|
||||
|
||||
enum class EditorMode {
|
||||
EDITING, MULTI_SELECT, SCROLL_AND_MOVE, ACTION_MODE, SEARCH
|
||||
}
|
|
@ -9,6 +9,14 @@ import com.anytypeio.anytype.presentation.page.selection.SelectionStateHolder
|
|||
|
||||
interface Editor {
|
||||
|
||||
sealed class Mode {
|
||||
object Edit : Mode()
|
||||
object Select : Mode()
|
||||
object SAM : Mode()
|
||||
object Action: Mode()
|
||||
object Search : Mode()
|
||||
}
|
||||
|
||||
class Storage {
|
||||
val views: Store<List<BlockView>> = Store.Screen()
|
||||
val focus: Store<Focus> = Store.Focus()
|
||||
|
|
|
@ -96,6 +96,7 @@ import kotlinx.coroutines.flow.*
|
|||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
import java.util.regex.Pattern
|
||||
import com.anytypeio.anytype.presentation.page.Editor.Mode as EditorMode
|
||||
|
||||
class PageViewModel(
|
||||
private val openPage: OpenPage,
|
||||
|
@ -141,7 +142,7 @@ class PageViewModel(
|
|||
|
||||
private val jobs = mutableListOf<Job>()
|
||||
|
||||
private var mode = EditorMode.EDITING
|
||||
private var mode : EditorMode = EditorMode.Edit
|
||||
|
||||
private val controlPanelInteractor = Interactor(viewModelScope)
|
||||
val controlPanelViewState = MutableLiveData<ControlPanelState>()
|
||||
|
@ -1456,7 +1457,7 @@ class PageViewModel(
|
|||
}
|
||||
}
|
||||
ActionItemType.SAM -> {
|
||||
mode = EditorMode.SCROLL_AND_MOVE
|
||||
mode = EditorMode.SAM
|
||||
viewModelScope.launch { orchestrator.stores.focus.update(Editor.Focus.empty()) }
|
||||
viewModelScope.launch { refresh() }
|
||||
proceedWithSAMQuickStartSelection(id)
|
||||
|
@ -1552,7 +1553,7 @@ class PageViewModel(
|
|||
}
|
||||
|
||||
fun onEnterSearchModeClicked() {
|
||||
mode = EditorMode.SEARCH
|
||||
mode = EditorMode.Search
|
||||
viewModelScope.launch { orchestrator.stores.views.update(views.toReadMode()) }
|
||||
viewModelScope.launch { renderCommand.send(Unit) }
|
||||
viewModelScope.launch { controlPanelInteractor.onEvent(ControlPanelMachine.Event.SearchToolbar.OnEnterSearchMode) }
|
||||
|
@ -1563,7 +1564,7 @@ class PageViewModel(
|
|||
}
|
||||
|
||||
fun onSearchToolbarEvent(event: SearchInDocEvent) {
|
||||
if (mode != EditorMode.SEARCH) return
|
||||
if (mode !is EditorMode.Search) return
|
||||
when (event) {
|
||||
is SearchInDocEvent.Query -> {
|
||||
val query = event.query.trim()
|
||||
|
@ -1606,7 +1607,7 @@ class PageViewModel(
|
|||
searchResultScrollPosition.value = pos
|
||||
}
|
||||
is SearchInDocEvent.Cancel -> {
|
||||
mode = EditorMode.EDITING
|
||||
mode = EditorMode.Edit
|
||||
val update = views.clearSearchHighlights().toEditMode()
|
||||
viewModelScope.launch { orchestrator.stores.views.update(update) }
|
||||
viewModelScope.launch { renderCommand.send(Unit) }
|
||||
|
@ -1952,7 +1953,7 @@ class PageViewModel(
|
|||
|
||||
fun onEnterMultiSelectModeClicked() {
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.MultiSelect.OnEnter)
|
||||
mode = EditorMode.MULTI_SELECT
|
||||
mode = EditorMode.Select
|
||||
viewModelScope.launch { orchestrator.stores.focus.update(Editor.Focus.empty()) }
|
||||
viewModelScope.launch {
|
||||
delay(DELAY_REFRESH_DOCUMENT_TO_ENTER_MULTI_SELECT_MODE)
|
||||
|
@ -1970,7 +1971,7 @@ class PageViewModel(
|
|||
|
||||
fun onExitMultiSelectModeClicked() {
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.MultiSelect.OnExit)
|
||||
mode = EditorMode.EDITING
|
||||
mode = EditorMode.Edit
|
||||
clearSelections()
|
||||
viewModelScope.launch {
|
||||
delay(DELAY_REFRESH_DOCUMENT_ON_EXIT_MULTI_SELECT_MODE)
|
||||
|
@ -1984,7 +1985,7 @@ class PageViewModel(
|
|||
}
|
||||
|
||||
fun onEnterScrollAndMoveClicked() {
|
||||
mode = EditorMode.SCROLL_AND_MOVE
|
||||
mode = EditorMode.SAM
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.SAM.OnEnter)
|
||||
viewModelScope.sendEvent(
|
||||
analytics = analytics,
|
||||
|
@ -1998,11 +1999,11 @@ class PageViewModel(
|
|||
eventName = EventsDictionary.BTN_SCROLL_MOVE_CANCEL
|
||||
)
|
||||
if (controlPanelViewState.value?.multiSelect?.isQuickScrollAndMoveMode == true) {
|
||||
mode = EditorMode.EDITING
|
||||
mode = EditorMode.Edit
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.SAM.OnExit)
|
||||
viewModelScope.launch { refresh() }
|
||||
} else {
|
||||
mode = EditorMode.MULTI_SELECT
|
||||
mode = EditorMode.Select
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.SAM.OnExit)
|
||||
}
|
||||
}
|
||||
|
@ -2015,7 +2016,7 @@ class PageViewModel(
|
|||
}
|
||||
|
||||
private fun onEnterActionMode() {
|
||||
mode = EditorMode.ACTION_MODE
|
||||
mode = EditorMode.Action
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.ReadMode.OnEnter)
|
||||
viewModelScope.launch {
|
||||
refresh()
|
||||
|
@ -2023,7 +2024,7 @@ class PageViewModel(
|
|||
}
|
||||
|
||||
private fun onExitActionMode() {
|
||||
mode = EditorMode.EDITING
|
||||
mode = EditorMode.Edit
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.ReadMode.OnExit)
|
||||
viewModelScope.launch { refresh() }
|
||||
}
|
||||
|
@ -2700,7 +2701,7 @@ class PageViewModel(
|
|||
|
||||
fun onTextInputClicked(target: Id) {
|
||||
Timber.d("onTextInputClicked: $target")
|
||||
if (mode == EditorMode.MULTI_SELECT) {
|
||||
if (mode is EditorMode.Select) {
|
||||
onBlockMultiSelectClicked(target)
|
||||
} else {
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.OnTextInputClicked)
|
||||
|
@ -2857,9 +2858,9 @@ class PageViewModel(
|
|||
clearSelections()
|
||||
|
||||
mode = if (controlPanelViewState.value?.multiSelect?.isQuickScrollAndMoveMode == true) {
|
||||
EditorMode.EDITING
|
||||
EditorMode.Edit
|
||||
} else {
|
||||
EditorMode.MULTI_SELECT
|
||||
EditorMode.Select
|
||||
}
|
||||
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.SAM.OnApply)
|
||||
|
@ -2891,9 +2892,9 @@ class PageViewModel(
|
|||
clearSelections()
|
||||
|
||||
mode = if (controlPanelViewState.value?.multiSelect?.isQuickScrollAndMoveMode == true) {
|
||||
EditorMode.EDITING
|
||||
EditorMode.Edit
|
||||
} else {
|
||||
EditorMode.MULTI_SELECT
|
||||
EditorMode.Select
|
||||
}
|
||||
|
||||
controlPanelInteractor.onEvent(ControlPanelMachine.Event.SAM.OnApply)
|
||||
|
@ -2929,56 +2930,56 @@ class PageViewModel(
|
|||
fun onClickListener(clicked: ListenerType) = when (clicked) {
|
||||
is ListenerType.Bookmark.View -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onBookmarkClicked(clicked.item)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.item.id)
|
||||
EditorMode.Edit -> onBookmarkClicked(clicked.item)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.item.id)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Bookmark.Placeholder -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onBookmarkPlaceholderClicked(clicked.target)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> onBookmarkPlaceholderClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Bookmark.Error -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onFailedBookmarkClicked(clicked.item)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.item.id)
|
||||
EditorMode.Edit -> onFailedBookmarkClicked(clicked.item)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.item.id)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.File.View -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onFileClicked(clicked.target)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> onFileClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.File.Placeholder -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onAddLocalFileClicked(clicked.target)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> onAddLocalFileClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.File.Error -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onAddLocalFileClicked(clicked.target)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> onAddLocalFileClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.File.Upload -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> Unit
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> Unit
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Picture.View -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> {
|
||||
EditorMode.Edit -> {
|
||||
val target = blocks.find { it.id == clicked.target }
|
||||
if (target != null) {
|
||||
val content = target.content
|
||||
|
@ -2993,76 +2994,76 @@ class PageViewModel(
|
|||
Timber.e("Could not find target for picture")
|
||||
}
|
||||
}
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Picture.Placeholder -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onAddLocalPictureClicked(clicked.target)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> onAddLocalPictureClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Picture.Error -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> Unit
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> Unit
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Picture.Upload -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> Unit
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> Unit
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Video.View -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> Unit
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> Unit
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Video.Placeholder -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onAddLocalVideoClicked(clicked.target)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> onAddLocalVideoClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Video.Error -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> Unit
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> Unit
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Video.Upload -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> Unit
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> Unit
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.LongClick -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onBlockLongPressedClicked(clicked.target, clicked.dimensions)
|
||||
EditorMode.MULTI_SELECT -> Unit
|
||||
EditorMode.Edit -> onBlockLongPressedClicked(clicked.target, clicked.dimensions)
|
||||
EditorMode.Select -> Unit
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Page -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onPageClicked(clicked.target)
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Edit -> onPageClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Mention -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> onMentionClicked(clicked.target)
|
||||
EditorMode.Edit -> onMentionClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
@ -3074,25 +3075,25 @@ class PageViewModel(
|
|||
}
|
||||
is ListenerType.DividerClick -> {
|
||||
when (mode) {
|
||||
EditorMode.MULTI_SELECT -> onBlockMultiSelectClicked(clicked.target)
|
||||
EditorMode.Select -> onBlockMultiSelectClicked(clicked.target)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Code.SelectLanguage -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> dispatch(Command.Dialog.SelectLanguage(clicked.target))
|
||||
EditorMode.Edit -> dispatch(Command.Dialog.SelectLanguage(clicked.target))
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
is ListenerType.Relation.Placeholder -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> dispatch(Command.OpenObjectRelationScreen.Add(ctx = context, target = clicked.target))
|
||||
EditorMode.Edit -> dispatch(Command.OpenObjectRelationScreen.Add(ctx = context, target = clicked.target))
|
||||
else -> onBlockMultiSelectClicked(clicked.target)
|
||||
}
|
||||
}
|
||||
is ListenerType.Relation.Related -> {
|
||||
when (mode) {
|
||||
EditorMode.EDITING -> {
|
||||
EditorMode.Edit -> {
|
||||
val relation = (clicked.value as BlockView.Relation.Related).view.relationId
|
||||
when (orchestrator.stores.relations.current().first { it.key == relation }.format) {
|
||||
Relation.Format.SHORT_TEXT,
|
||||
|
|
|
@ -22,7 +22,6 @@ import com.anytypeio.anytype.domain.error.Error
|
|||
import com.anytypeio.anytype.domain.event.interactor.InterceptEvents
|
||||
import com.anytypeio.anytype.domain.page.ArchiveDocument
|
||||
import com.anytypeio.anytype.domain.page.CloseBlock
|
||||
import com.anytypeio.anytype.domain.page.EditorMode
|
||||
import com.anytypeio.anytype.domain.page.OpenPage
|
||||
import com.anytypeio.anytype.presentation.common.StateReducer
|
||||
import com.anytypeio.anytype.presentation.common.SupportCommand
|
||||
|
@ -42,6 +41,7 @@ import kotlinx.coroutines.Job
|
|||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
import com.anytypeio.anytype.presentation.page.Editor.Mode as EditorMode
|
||||
|
||||
sealed class ArchiveViewState {
|
||||
object Loading : ArchiveViewState()
|
||||
|
@ -71,7 +71,7 @@ class ArchiveViewModel(
|
|||
|
||||
private var eventSubscription: Job? = null
|
||||
|
||||
private var mode = EditorMode.MULTI_SELECT
|
||||
private var mode = EditorMode.Select
|
||||
|
||||
private val renderCommand = Proxy.Subject<Unit>()
|
||||
private val renderizePipeline = Proxy.Subject<Document>()
|
||||
|
|
|
@ -4,8 +4,8 @@ import com.anytypeio.anytype.core_models.Block
|
|||
import com.anytypeio.anytype.core_models.Id
|
||||
import com.anytypeio.anytype.core_models.Relation
|
||||
import com.anytypeio.anytype.domain.editor.Editor
|
||||
import com.anytypeio.anytype.domain.page.EditorMode
|
||||
import com.anytypeio.anytype.presentation.page.editor.model.BlockView
|
||||
import com.anytypeio.anytype.presentation.page.Editor.Mode as EditorMode
|
||||
|
||||
/**
|
||||
* Converts business tree-like data structures to flattened view data structures.
|
||||
|
@ -20,7 +20,7 @@ interface BlockViewRenderer {
|
|||
* @param indent current indent at this rendering node.
|
||||
*/
|
||||
suspend fun Map<Id, List<Block>>.render(
|
||||
mode: EditorMode = EditorMode.EDITING,
|
||||
mode: EditorMode = EditorMode.Edit,
|
||||
root: Block,
|
||||
focus: Editor.Focus,
|
||||
anchor: Id,
|
||||
|
|
|
@ -7,7 +7,6 @@ import com.anytypeio.anytype.domain.cover.CoverType
|
|||
import com.anytypeio.anytype.domain.editor.Editor.Cursor
|
||||
import com.anytypeio.anytype.domain.editor.Editor.Focus
|
||||
import com.anytypeio.anytype.domain.misc.UrlBuilder
|
||||
import com.anytypeio.anytype.domain.page.EditorMode
|
||||
import com.anytypeio.anytype.domain.relations.Relations
|
||||
import com.anytypeio.anytype.presentation.mapper.*
|
||||
import com.anytypeio.anytype.presentation.page.cover.CoverColor
|
||||
|
@ -16,6 +15,7 @@ import com.anytypeio.anytype.presentation.page.editor.model.BlockView
|
|||
import com.anytypeio.anytype.presentation.page.toggle.ToggleStateHolder
|
||||
import com.anytypeio.anytype.presentation.relations.view
|
||||
import timber.log.Timber
|
||||
import com.anytypeio.anytype.presentation.page.Editor.Mode as EditorMode
|
||||
|
||||
class DefaultBlockViewRenderer(
|
||||
private val counter: Counter,
|
||||
|
@ -419,7 +419,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Paragraph = BlockView.Text.Paragraph(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
marks = content.marks(details = details, urlBuilder = urlBuilder),
|
||||
|
@ -438,7 +438,7 @@ class DefaultBlockViewRenderer(
|
|||
): BlockView.Description = BlockView.Description(
|
||||
id = block.id,
|
||||
description = content.text.ifEmpty { null },
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
|
||||
private fun headerThree(
|
||||
|
@ -449,7 +449,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Header.Three = BlockView.Text.Header.Three(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
color = content.color,
|
||||
|
@ -469,7 +469,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Header.Two = BlockView.Text.Header.Two(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
color = content.color,
|
||||
|
@ -489,7 +489,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Header.One = BlockView.Text.Header.One(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
color = content.color,
|
||||
|
@ -509,7 +509,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Checkbox = BlockView.Text.Checkbox(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
marks = content.marks(details = details, urlBuilder = urlBuilder),
|
||||
|
@ -529,7 +529,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Bulleted = BlockView.Text.Bulleted(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
indent = indent,
|
||||
|
@ -547,7 +547,7 @@ class DefaultBlockViewRenderer(
|
|||
focus: Focus,
|
||||
indent: Int
|
||||
): BlockView.Code = BlockView.Code(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
backgroundColor = content.backgroundColor,
|
||||
|
@ -565,7 +565,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Highlight = BlockView.Text.Highlight(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
isFocused = block.id == focus.id,
|
||||
text = content.text,
|
||||
|
@ -585,7 +585,7 @@ class DefaultBlockViewRenderer(
|
|||
isEmpty: Boolean,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Toggle = BlockView.Text.Toggle(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
marks = content.marks(details = details, urlBuilder = urlBuilder),
|
||||
|
@ -607,7 +607,7 @@ class DefaultBlockViewRenderer(
|
|||
indent: Int,
|
||||
details: Block.Details
|
||||
): BlockView.Text.Numbered = BlockView.Text.Numbered(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
number = number,
|
||||
|
@ -634,20 +634,20 @@ class DefaultBlockViewRenderer(
|
|||
imageUrl = content.image?.let { urlBuilder.image(it) },
|
||||
faviconUrl = content.favicon?.let { urlBuilder.image(it) },
|
||||
indent = indent,
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
} else {
|
||||
BlockView.Error.Bookmark(
|
||||
id = block.id,
|
||||
url = url,
|
||||
indent = indent,
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
}
|
||||
} ?: BlockView.MediaPlaceholder.Bookmark(
|
||||
id = block.id,
|
||||
indent = indent,
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
|
||||
private fun divider(
|
||||
|
@ -675,25 +675,25 @@ class DefaultBlockViewRenderer(
|
|||
id = block.id,
|
||||
urlBuilder = urlBuilder,
|
||||
indent = indent,
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
Content.File.Type.FILE -> content.toFileView(
|
||||
id = block.id,
|
||||
urlBuilder = urlBuilder,
|
||||
indent = indent,
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
Content.File.Type.VIDEO -> content.toVideoView(
|
||||
id = block.id,
|
||||
urlBuilder = urlBuilder,
|
||||
indent = indent,
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
Content.File.Type.NONE -> content.toFileView(
|
||||
id = block.id,
|
||||
urlBuilder = urlBuilder,
|
||||
indent = indent,
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ
|
||||
)
|
||||
else -> throw IllegalStateException("Unexpected file type: ${content.type}")
|
||||
}
|
||||
|
@ -768,7 +768,7 @@ class DefaultBlockViewRenderer(
|
|||
return when(layout) {
|
||||
Layout.BASIC -> {
|
||||
BlockView.Title.Basic(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
emoji = details.details[root.id]?.iconEmoji?.let { name ->
|
||||
|
@ -792,7 +792,7 @@ class DefaultBlockViewRenderer(
|
|||
}
|
||||
Layout.TODO -> {
|
||||
BlockView.Title.Todo(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
isFocused = block.id == focus.id,
|
||||
|
@ -805,7 +805,7 @@ class DefaultBlockViewRenderer(
|
|||
}
|
||||
Layout.PROFILE -> {
|
||||
BlockView.Title.Profile(
|
||||
mode = if (mode == EditorMode.EDITING) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
mode = if (mode == EditorMode.Edit) BlockView.Mode.EDIT else BlockView.Mode.READ,
|
||||
id = block.id,
|
||||
text = content.text,
|
||||
image = details.details[root.id]?.iconImage?.let { name ->
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue