Browse Source

Refactored reactive store

master
Rohan Sircar 3 years ago
parent
commit
9155fdac96
  1. 6
      src/main/scala/nova/monadic_sfx/MainModule.scala
  2. 6
      src/main/scala/nova/monadic_sfx/ui/components/router/FXRouter.scala
  3. 2
      src/main/scala/nova/monadic_sfx/ui/components/todo/TodoListComponentOld.scala
  4. 6
      src/main/scala/nova/monadic_sfx/ui/components/todo/TodoListStore.scala
  5. 2
      src/main/scala/nova/monadic_sfx/ui/components/todo/TodoListView.scala
  6. 2
      src/main/scala/nova/monadic_sfx/util/reactive/store/Middlewares.scala
  7. 2
      src/main/scala/nova/monadic_sfx/util/reactive/store/MonixProSubject.scala
  8. 2
      src/main/scala/nova/monadic_sfx/util/reactive/store/Reducer.scala
  9. 2
      src/main/scala/nova/monadic_sfx/util/reactive/store/Store.scala
  10. 4
      src/main/scala/nova/monadic_sfx/util/reactive/store/package.scala

6
src/main/scala/nova/monadic_sfx/MainModule.scala

@ -10,13 +10,13 @@ import io.odin.syntax._
import nova.monadic_sfx.actors.ActorModule
import nova.monadic_sfx.http.HttpModule
import nova.monadic_sfx.ui.UiModule
import nova.monadic_sfx.util.reactive.Middlewares
import nova.monadic_sfx.util.reactive.store.Middlewares
trait MainModule extends ActorModule with UiModule with HttpModule {
def routerLogger(defaultLogger: Logger[Task], storeLogger: Logger[Task]) =
enclosureRouting[Task](
"nova.monadic_sfx.util.reactive.Middlewares" -> storeLogger,
"nova.monadic_sfx.util.reactive.Store" -> storeLogger
"nova.monadic_sfx.util.reactive.store.Middlewares" -> storeLogger,
"nova.monadic_sfx.util.reactive.store.Store" -> storeLogger
)
.withFallback(defaultLogger)
.withAsync(timeWindow = 1.millis)

6
src/main/scala/nova/monadic_sfx/ui/components/router/FXRouter.scala

@ -8,9 +8,9 @@ import io.circe.generic.semiauto._
import io.odin.Logger
import monix.bio.Task
import nova.monadic_sfx.util.IOUtils
import nova.monadic_sfx.util.reactive.Middlewares
import nova.monadic_sfx.util.reactive.Reducer
import nova.monadic_sfx.util.reactive.Store
import nova.monadic_sfx.util.reactive.store.Middlewares
import nova.monadic_sfx.util.reactive.store.Reducer
import nova.monadic_sfx.util.reactive.store.Store
import scalafx.scene.Parent
object FXRouter {

2
src/main/scala/nova/monadic_sfx/ui/components/todo/TodoListComponentOld.scala

@ -14,7 +14,7 @@ import nova.monadic_sfx.implicits.FontIcon
import nova.monadic_sfx.implicits.IconLiteral
import nova.monadic_sfx.implicits.JFXListView
import nova.monadic_sfx.implicits._
import nova.monadic_sfx.util.reactive._
import nova.monadic_sfx.util.reactive.store._
import scalafx.Includes._
import scalafx.beans.property.StringProperty
import scalafx.collections.ObservableBuffer

6
src/main/scala/nova/monadic_sfx/ui/components/todo/TodoListStore.scala

@ -4,9 +4,9 @@ import com.softwaremill.quicklens._
import io.circe.generic.JsonCodec
import io.odin.Logger
import monix.bio.Task
import nova.monadic_sfx.util.reactive.Middlewares.actionLoggerMiddleware
import nova.monadic_sfx.util.reactive.Reducer
import nova.monadic_sfx.util.reactive.Store
import nova.monadic_sfx.util.reactive.store.Middlewares.actionLoggerMiddleware
import nova.monadic_sfx.util.reactive.store.Reducer
import nova.monadic_sfx.util.reactive.store.Store
case class Todo(id: Int, content: String)

2
src/main/scala/nova/monadic_sfx/ui/components/todo/TodoListView.scala

@ -10,7 +10,7 @@ import nova.monadic_sfx.implicits.JFXListView
import nova.monadic_sfx.implicits.JFXTextField
import nova.monadic_sfx.implicits.MenuItem
import nova.monadic_sfx.implicits._
import nova.monadic_sfx.util.reactive._
import nova.monadic_sfx.util.reactive.store._
import org.gerweck.scalafx.util._
import scalafx.Includes._
import scalafx.beans.property.ObjectProperty

2
src/main/scala/nova/monadic_sfx/util/reactive/Middlewares.scala → src/main/scala/nova/monadic_sfx/util/reactive/store/Middlewares.scala

@ -1,4 +1,4 @@
package nova.monadic_sfx.util.reactive
package nova.monadic_sfx.util.reactive.store
import java.time.LocalDateTime

2
src/main/scala/nova/monadic_sfx/util/reactive/MonixProSubject.scala → src/main/scala/nova/monadic_sfx/util/reactive/store/MonixProSubject.scala

@ -1,4 +1,4 @@
package nova.monadic_sfx.util.reactive
package nova.monadic_sfx.util.reactive.store
import scala.concurrent.Future

2
src/main/scala/nova/monadic_sfx/util/reactive/Reducer.scala → src/main/scala/nova/monadic_sfx/util/reactive/store/Reducer.scala

@ -1,4 +1,4 @@
package nova.monadic_sfx.util.reactive
package nova.monadic_sfx.util.reactive.store
import cats.implicits._
import monix.reactive.Observable

2
src/main/scala/nova/monadic_sfx/util/reactive/Store.scala → src/main/scala/nova/monadic_sfx/util/reactive/store/Store.scala

@ -1,4 +1,4 @@
package nova.monadic_sfx.util.reactive
package nova.monadic_sfx.util.reactive.store
import java.time.LocalDateTime

4
src/main/scala/nova/monadic_sfx/util/reactive/package.scala → src/main/scala/nova/monadic_sfx/util/reactive/store/package.scala

@ -1,9 +1,9 @@
package nova.monadic_sfx.util
package nova.monadic_sfx.util.reactive
import monix.reactive.Observable
import monix.reactive.Observer
package object reactive {
package object store {
type MonixProSubject[-I, +O] = Observable[O] with Observer[I]
type Middleware[A, M] = Observable[(A, M)] => Observable[(A, M)]
type Store[A, M] = MonixProSubject[A, (A, M)]
Loading…
Cancel
Save