Created
August 12, 2015 20:58
-
-
Save dsyme/aa55ae9f838b7379884b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace TODOList | |
open WebSharper | |
open WebSharper.JavaScript | |
open WebSharper.JQuery | |
open WebSharper.UI.Next | |
open WebSharper.UI.Next.Client | |
[<JavaScript>] | |
module Code = | |
type IndexTemplate = Templating.Template<"index.html"> | |
type Task = { Name: string; Done: Var<bool> } | |
let Tasks = | |
ListModel.Create (fun task -> task.Name) | |
[ { Name = "Have breakfast"; Done = Var.Create true } | |
{ Name = "Have lunch"; 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), | |
Done = task.Done, | |
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" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment