* Fixup JS

* Avoid monkey patching
This commit is contained in:
Pranav K 2020-05-18 13:21:31 -07:00 committed by GitHub
parent 8efeefb3d1
commit 9949ab46c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 13 additions and 8 deletions

View File

@ -10,9 +10,9 @@ namespace Microsoft.AspNetCore.Components.Web
public static readonly string EnableNavigationInterception = Prefix + "enableNavigationInterception"; public static readonly string EnableNavigationInterception = Prefix + "enableNavigationInterception";
public static readonly string GetLocationHref = Prefix + "getLocationHref"; public static readonly string GetLocationHref = Prefix + "getUnmarshalledLocationHref";
public static readonly string GetBaseUri = Prefix + "getBaseURI"; public static readonly string GetBaseUri = Prefix + "getUnmarshalledBaseURI";
public static readonly string NavigateTo = Prefix + "navigateTo"; public static readonly string NavigateTo = Prefix + "navigateTo";
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -31,6 +31,11 @@ async function boot(options?: Partial<WebAssemblyStartOptions>): Promise<void> {
}; };
// Configure navigation via JS Interop // Configure navigation via JS Interop
const getBaseUri = window['Blazor']._internal.navigationManager.getBaseURI;
const getLocationHref = window['Blazor']._internal.navigationManager.getLocationHref;
window['Blazor']._internal.navigationManager.getUnmarshalledBaseURI = () => BINDING.js_string_to_mono_string(getBaseUri());
window['Blazor']._internal.navigationManager.getUnmarshalledLocationHref = () => BINDING.js_string_to_mono_string(getLocationHref());
window['Blazor']._internal.navigationManager.listenForNavigationEvents(async (uri: string, intercepted: boolean): Promise<void> => { window['Blazor']._internal.navigationManager.listenForNavigationEvents(async (uri: string, intercepted: boolean): Promise<void> => {
await DotNet.invokeMethodAsync( await DotNet.invokeMethodAsync(
'Microsoft.AspNetCore.Components.WebAssembly', 'Microsoft.AspNetCore.Components.WebAssembly',

View File

@ -13,8 +13,8 @@ export const internalFunctions = {
listenForNavigationEvents, listenForNavigationEvents,
enableNavigationInterception, enableNavigationInterception,
navigateTo, navigateTo,
getBaseURI: () => BINDING.js_string_to_mono_string(document.baseURI), getBaseURI: () => document.baseURI,
getLocationHref: () => BINDING.js_string_to_mono_string(location.href), getLocationHref: () => location.href,
}; };
function listenForNavigationEvents(callback: (uri: string, intercepted: boolean) => Promise<void>) { function listenForNavigationEvents(callback: (uri: string, intercepted: boolean) => Promise<void>) {

View File

@ -2,7 +2,7 @@ import '../src/GlobalExports';
import { UserSpecifiedDisplay } from '../src/Platform/Circuits/UserSpecifiedDisplay'; import { UserSpecifiedDisplay } from '../src/Platform/Circuits/UserSpecifiedDisplay';
import { DefaultReconnectionHandler } from '../src/Platform/Circuits/DefaultReconnectionHandler'; import { DefaultReconnectionHandler } from '../src/Platform/Circuits/DefaultReconnectionHandler';
import { NullLogger} from '../src/Platform/Logging/Loggers'; import { NullLogger} from '../src/Platform/Logging/Loggers';
import { resolveOptions, ReconnectionOptions } from "../src/Platform/Circuits/BlazorOptions"; import { resolveOptions, ReconnectionOptions } from "../src/Platform/Circuits/CircuitStartOptions";
import { ReconnectDisplay } from '../src/Platform/Circuits/ReconnectDisplay'; import { ReconnectDisplay } from '../src/Platform/Circuits/ReconnectDisplay';
const defaultReconnectionOptions = resolveOptions().reconnectionOptions; const defaultReconnectionOptions = resolveOptions().reconnectionOptions;