Attributes used by ElmBook.withStatefulOptions.
The attributes below are mostly used for Stateful Books. Take a look at the "Stateful Chapters" guide for more details.
Add subscriptions to your book.
import ElmBook.Actions exposing (updateState)
type alias SharedState =
{ value : String
, timestamp : Posix
}
updateAnimationState : Posix -> SharedState -> SharedState
updateAnimationState posix state =
{ state | timestamp = posix }
book : Book SharedState
book "MyApp"
|> withStatefulOptions [
subscriptions [
Browser.Events.onAnimationFrame
(updateStateWith updateAnimationState)
]
]Change your book's state based on the themes current mode.
This can be useful for showcasing your own dark themed components when using elm-book's dark mode.
type alias SharedState =
{ darkMode : Bool
}
initialState : SharedState
initialState =
{ darkMode = False
}
book : Book SharedState
book "MyApp"
|> withStatefulOptions
[ ElmBook.StatefulOptions.initialState
initialState
, ElmBook.StatefulOptions.onDarkModeChange
(\darkMode state ->
{ state | darkMode = darkMode }
)
]
Add an initial state to your book.