Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace TryWebSharper
- open WebSharper
- open WebSharper.JavaScript
- open WebSharper.JQuery
- open WebSharper.UI
- open WebSharper.UI.Next
- open WebSharper.UI.Next.Client
- [<JavaScript>]
- module Code =
- type IndexTemplate = Templating.Template<"index.html">
- [<NoComparison>]
- type Task = {Name:string; Done:Var<bool>}
- let tasks =
- ListModel.Create(fun task -> task.Name)
- [ {Name = "Learn more F#"; Done = Var.Create true}
- {Name = "Drink more coffee"; Done = Var.Create true}
- {Name = "Refactor enterprise app for F# book"; Done = Var.Create false}
- ]
- let NewTaskName = Var.Create " "
- let main =
- IndexTemplate.Main.Doc(
- ListContainer =
- [ListModel.View tasks |> Doc.Convert (fun task ->
- IndexTemplate.ListItem.Doc (
- Task = task.Name,
- Clear = (fun _ _ -> tasks.RemoveByKey task.Name),
- ShowDone = Attr.DynamicClass "checked" task.Done.View id)
- )],
- NewTaskName = NewTaskName,
- Add = (fun _ _ ->
- tasks.Add { Name = NewTaskName.Value; Done = Var.Create false }
- Var.Set NewTaskName " "),
- ClearCompleted = (fun _ _ -> tasks.RemoveBy(fun task -> task.Done.Value))
- )
- |> Doc.RunById "tasks"
- (*[<EntryPoint>]
- let main argv =
- printfn "%A" argv
- 0 // return an integer exit code
- *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement