Skip to content

Commit

Permalink
Fix #59: Update to .NET Core and Blazor 3.0 preview6
Browse files Browse the repository at this point in the history
  • Loading branch information
Tarmil authored Jul 6, 2019
2 parents b8b962e + 148500d commit b766cae
Show file tree
Hide file tree
Showing 8 changed files with 216 additions and 233 deletions.
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ branches:
skip_tags: true

init:
- cmd: choco install dotnetcore-sdk --version 3.0.100-preview5-011568
- cmd: choco install dotnetcore-sdk --version 3.0.100-preview6-012264
- git config --global core.autocrlf input

before_build:
Expand Down
12 changes: 6 additions & 6 deletions paket.dependencies
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ nuget FSharp.Core >= 4.5.0 lowest_matching: true
nuget HtmlAgilityPack >= 1.8.0 lowest_matching: true
nuget Elmish ~> 2.0 lowest_matching: true
nuget TaskBuilder.fs >= 2.1.0 lowest_matching: true
nuget Microsoft.AspNetCore.Blazor 3.0.0-preview5-19227-01
nuget Microsoft.AspNetCore.Blazor.Build 3.0.0-preview5-19227-01
nuget Microsoft.AspNetCore.Blazor.Server 3.0.0-preview5-19227-01
nuget Microsoft.AspNetCore.Blazor.DevServer 3.0.0-preview5-19227-01
nuget System.Runtime.CompilerServices.Unsafe 4.6.0-preview5.19224.8
nuget Microsoft.AspNetCore.Blazor 3.0.0-preview6.19307.2
nuget Microsoft.AspNetCore.Blazor.Build 3.0.0-preview6.19307.2
nuget Microsoft.AspNetCore.Blazor.Server 3.0.0-preview6.19307.2
nuget Microsoft.AspNetCore.Blazor.DevServer 3.0.0-preview6.19307.2
nuget System.Runtime.CompilerServices.Unsafe 4.6.0-preview6.19303.8

# Build and test references
nuget FsCheck.NUnit ~> 2.12
Expand Down Expand Up @@ -40,4 +40,4 @@ nuget Fake.IO.FileSystem
nuget Fake.DotNet.AssemblyInfoFile
nuget Fake.DotNet.Cli
nuget Fake.DotNet.Paket
nuget FSharp.Data ~> 3.0-beta
nuget FSharp.Data ~> 3.0-beta
394 changes: 176 additions & 218 deletions paket.lock

Large diffs are not rendered by default.

23 changes: 19 additions & 4 deletions src/Bolero/Components.fs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ namespace Bolero

open System
open System.Collections.Generic
open System.Threading.Tasks
open Microsoft.AspNetCore.Components
open Microsoft.AspNetCore.Components.Routing
open Microsoft.JSInterop
open Elmish
open Bolero.Render
Expand Down Expand Up @@ -83,13 +85,19 @@ type ProgramComponent<'model, 'msg>() =
inherit Component()

let mutable oldModel = Unchecked.defaultof<'model>
let mutable navigationInterceptionEnabled = false

[<Inject>]
member val UriHelper = Unchecked.defaultof<IUriHelper> with get, set
[<Inject>]
member val Services = Unchecked.defaultof<System.IServiceProvider> with get, set
[<Inject>]
member val JSRuntime = Unchecked.defaultof<IJSRuntime> with get, set
[<Inject>]
member val NavigationInterception = Unchecked.defaultof<INavigationInterception> with get, set
[<Inject>]
member val ComponentContext = Unchecked.defaultof<IComponentContext> with get, set

member val private View = Empty with get, set
member val private Dispatch = ignore with get, set
member val private BaseUri = "/" with get, set
Expand All @@ -101,9 +109,9 @@ type ProgramComponent<'model, 'msg>() =
interface IProgramComponent with
member this.Services = this.Services

member private this.OnLocationChanged (_: obj) (uri: string) =
member private this.OnLocationChanged (_: obj) (e: LocationChangedEventArgs) =
this.Router |> Option.iter (fun router ->
let uri = this.UriHelper.ToBaseRelativePath(this.BaseUri, uri)
let uri = this.UriHelper.ToBaseRelativePath(this.BaseUri, e.Location)
let route = router.SetRoute uri
Option.iter this.Dispatch route)

Expand Down Expand Up @@ -154,20 +162,27 @@ type ProgramComponent<'model, 'msg>() =
) =
this.Router <- Some r
this.BaseUri <- this.UriHelper.GetBaseUri()
System.EventHandler<string> this.OnLocationChanged
System.EventHandler<_> this.OnLocationChanged
|> this.UriHelper.OnLocationChanged.AddHandler
match r.SetRoute (this.GetCurrentUri()) with
| Some msg ->
program.update msg initModel
| None ->
initModel, []

override this.OnAfterRenderAsync() =
if this.Router.IsSome && not navigationInterceptionEnabled && this.ComponentContext.IsConnected then
navigationInterceptionEnabled <- true
this.NavigationInterception.EnableNavigationInterceptionAsync()
else
Task.CompletedTask

override this.Render() =
this.View

interface System.IDisposable with
member this.Dispose() =
System.EventHandler<string> this.OnLocationChanged
System.EventHandler<_> this.OnLocationChanged
|> this.UriHelper.OnLocationChanged.RemoveHandler

type ElementRefBinder() =
Expand Down
7 changes: 6 additions & 1 deletion tests/Remoting.Server/Program.fs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ type MyApiHandler(log: ILogger<MyApiHandler>) =
type Startup() =

member this.ConfigureServices(services: IServiceCollection) =
services.AddMvcCore() |> ignore
services
.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie()
Expand All @@ -82,7 +83,11 @@ type Startup() =
member this.Configure(app: IApplicationBuilder, env: IHostEnvironment) =
app.UseAuthentication()
.UseRemoting()
.UseBlazor<Client.Startup>()
.UseClientSideBlazorFiles<Client.Startup>()
.UseRouting()
.UseEndpoints(fun endpoints ->
endpoints.MapDefaultControllerRoute() |> ignore
endpoints.MapFallbackToClientSideBlazor<Client.Startup>("index.html") |> ignore)
|> ignore

module Main =
Expand Down
2 changes: 1 addition & 1 deletion tests/Server/Startup.fs
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ open Bolero.Test
type Startup() =

member this.ConfigureServices(services: IServiceCollection) =
services.AddMvcCore() |> ignore
services
.AddSingleton<HtmlEncoder>(HtmlEncoder.Default)
.AddServerSideBlazor()
|> ignore

member this.Configure(app: IApplicationBuilder) =

app
.UseStaticFiles()
.UseRouting()
Expand Down
7 changes: 6 additions & 1 deletion tests/Unit/Startup.fs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ type Startup() =
}

member this.ConfigureServices(services: IServiceCollection) =
services.AddMvcCore() |> ignore
services
.AddAuthorization()
.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
Expand All @@ -85,5 +86,9 @@ type Startup() =
endpoints.MapFallbackToFile("index.html") |> ignore
)
else
app .UseBlazor<Client.Startup>()
app .UseClientSideBlazorFiles<Client.Startup>()
.UseRouting()
.UseEndpoints(fun endpoints ->
endpoints.MapDefaultControllerRoute() |> ignore
endpoints.MapFallbackToClientSideBlazor<Client.Startup>("index.html") |> ignore)
|> ignore
2 changes: 1 addition & 1 deletion version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
"version": "0.5-preview1",
"version": "0.6-preview1",
"nugetPackageVersion": {
"semVer": 2
},
Expand Down

0 comments on commit b766cae

Please sign in to comment.