feat(ui): добавлены новые состояния и компоненты для отображения статуса работы

This commit is contained in:
2026-05-13 17:22:31 +03:00
parent 6c18a1d741
commit f551efe4a6
40 changed files with 1787 additions and 542 deletions

View File

@@ -10,6 +10,10 @@ import kotlinx.coroutines.flow.StateFlow
*/
interface IVault : IVaultInfo {
val storages: StateFlow<List<IStorage>>
/**
* Идёт загрузка/пересканирование списка storages (например, листинг удалённого vault и init каждого storage).
*/
val storagesScanInProgress: StateFlow<Boolean>
val isAvailable: StateFlow<Boolean>
val totalSpace: StateFlow<Long?>
val availableSpace: StateFlow<Long?>

View File

@@ -2,6 +2,7 @@ package com.github.nullptroma.wallenc.domain.tasks
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.CoroutineDispatcher
import java.util.UUID
interface ITaskOrchestrator {
val pipelineState: StateFlow<PipelineState>
@@ -12,6 +13,8 @@ interface ITaskOrchestrator {
title: String,
dispatcher: CoroutineDispatcher,
work: PipelineWork,
busyStorageUuid: UUID? = null,
locksVaultStorageList: Boolean = false,
): TaskId
fun cancel(taskId: TaskId): Boolean

View File

@@ -1,10 +1,15 @@
package com.github.nullptroma.wallenc.domain.tasks
import kotlinx.coroutines.CoroutineDispatcher
import java.util.UUID
data class PipelineTask(
val id: TaskId,
val title: String,
val dispatcher: CoroutineDispatcher,
val state: TaskRunState,
/** UUID storage, для которого идёт задача (кнопки только этой строки в UI). */
val busyStorageUuid: UUID? = null,
/** Задача меняет список storages в vault (например создание) — блокируем FAB «+». */
val locksVaultStorageList: Boolean = false,
)