Skip to content

Commit

Permalink
Add SyncAction
Browse files Browse the repository at this point in the history
  • Loading branch information
edgarfgp committed Jan 30, 2024
1 parent 679c22a commit 785ec97
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/Fabulous.Tests/APISketchTests/TestUI.Widgets.fs
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,8 @@ module TestUI_Widgets =
{ Log = fun _ -> ()
MinLogLevel = LogLevel.Fatal }
Dispatch = fun msg -> unbox<'msg> msg |> x.ProcessMessage
GetComponent = Component.getComponent }
GetComponent = Component.getComponent
SyncAction = fun fn -> fn() }

member x.ProcessMessage(msg: 'msg) =
match state with
Expand Down
5 changes: 4 additions & 1 deletion src/Fabulous/Component.fs
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ type Component(treeContext: ViewTreeContext, body: ComponentBody, context: Compo

node

member this.Render() =
member private this.RenderInternal() =
let prevRootWidget = _widget
let prevContext = _context
let struct (context, currRootWidget) = _body.Invoke(_context)
Expand All @@ -322,6 +322,9 @@ type Component(treeContext: ViewTreeContext, body: ComponentBody, context: Compo

Reconciler.update treeContext.CanReuseView (ValueSome prevRootWidget) currRootWidget viewNode

member this.Render() =
treeContext.SyncAction(this.RenderInternal)

module Component =
let WidgetKey =
let key = WidgetDefinitionStore.getNextKey()
Expand Down
1 change: 1 addition & 0 deletions src/Fabulous/IViewNode.fs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ type ViewTreeContext =
GetViewNode: obj -> IViewNode
Logger: Logger
Dispatch: obj -> unit
SyncAction: (unit -> unit) -> unit
GetComponent: obj -> obj }

and IViewNode =
Expand Down

0 comments on commit 785ec97

Please sign in to comment.