diff --git a/build.fsx b/build.fsx index 1bda6cb..1aad149 100644 --- a/build.fsx +++ b/build.fsx @@ -25,7 +25,11 @@ Target.create "Clean" (fun _ -> Target.create "DotnetRestore" (fun _ -> DotNet.restore - (DotNet.Options.withWorkingDirectory __SOURCE_DIRECTORY__) + (DotNet.Options.withWorkingDirectory __SOURCE_DIRECTORY__ + >> fun args -> { + args with + MSBuildParams = { args.MSBuildParams with DisableInternalBinLog = true } + }) "fable-elmish-electron-demo.sln" ) diff --git a/global.json b/global.json new file mode 100644 index 0000000..eaeb84d --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "6.0.428" + } +} \ No newline at end of file diff --git a/package.json b/package.json index 7b50f83..5000df8 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.41", "autosuggest-highlight": "^3.1", + "electron-extension-installer": "^1.2.0", "match-sorter": "^4.0", "mdi-material-ui": "^6.11.0", "react": "^16.12.0", @@ -35,18 +36,19 @@ "devDependencies": { "@babel/core": "^7.8.4", "bufferutil": "^4.0", - "devtron": "^1.4", "electron": "^22.3.25", "electron-builder": "^24.13.3", - "electron-devtools-installer": "^2.2", "electron-webpack": "^2.8", "electron-window-state": "^5.0", "fable-compiler": "^2.4.13", "fable-loader": "^2.1", + "html-webpack-plugin": "^4.3.0", "node-sass": "^9.0.0", "remotedev": "^0.2", - "sass-loader": "^8.0.2", + "sass-loader": "^10", "utf-8-validate": "^5.0", - "webpack": "^5.94.0" + "webpack": "^4", + "webpack-cli": "^3", + "webpack-dev-server": "^3" } } diff --git a/src/Main/DevTools.fs b/src/Main/DevTools.fs index 74a0bcc..69b0671 100644 --- a/src/Main/DevTools.fs +++ b/src/Main/DevTools.fs @@ -5,13 +5,13 @@ open Fable.Core.JsInterop open Electron let private installDevTools (extensionRef: obj) (forceDownload: bool) : JS.Promise = - importDefault "electron-devtools-installer" + importDefault "electron-extension-installer" let private REACT_DEVELOPER_TOOLS : obj = - import "REACT_DEVELOPER_TOOLS" "electron-devtools-installer" + import "REACT_DEVELOPER_TOOLS" "electron-extension-installer" let private REDUX_DEVTOOLS : obj = - import "REDUX_DEVTOOLS" "electron-devtools-installer" + import "REDUX_DEVTOOLS" "electron-extension-installer" let private installDevTool extensionRef = promise { @@ -24,7 +24,6 @@ let private installDevTool extensionRef = let installAllDevTools (win: BrowserWindow) = installDevTool REACT_DEVELOPER_TOOLS installDevTool REDUX_DEVTOOLS - win.webContents.executeJavaScript("require('devtron').install()") let uninstallAllDevTools (win: BrowserWindow) = main.BrowserWindow.removeDevToolsExtension("React Developer Tools") diff --git a/src/Main/Main.fs b/src/Main/Main.fs index 7282285..ad82041 100644 --- a/src/Main/Main.fs +++ b/src/Main/Main.fs @@ -26,6 +26,7 @@ let createMainWindow () = o.autoHideMenuBar <- true o.webPreferences <- jsOptions(fun w -> w.nodeIntegration <- true + w.contextIsolation <- false ) o.show <- false )) diff --git a/src/Renderer/App.fs b/src/Renderer/App.fs index 7b2a245..e85c7db 100644 --- a/src/Renderer/App.fs +++ b/src/Renderer/App.fs @@ -306,12 +306,13 @@ let RootView = FunctionComponent.Of((fun (model, dispatch) -> ), "RootView", memoEqualsButFunctions) let updateSystemTheme dispatch = - let dispatchCurrentMode () = - if renderer.remote.nativeTheme.shouldUseDarkColors - then dispatch (SetSystemThemeMode Dark) - else dispatch (SetSystemThemeMode Light) - renderer.remote.nativeTheme.onUpdated(fun _ -> dispatchCurrentMode ()) |> ignore - dispatchCurrentMode () + dispatch (SetSystemThemeMode Light) + // let dispatchCurrentMode () = + // if renderer.remote.nativeTheme.shouldUseDarkColors + // then dispatch (SetSystemThemeMode Dark) + // else dispatch (SetSystemThemeMode Light) + // renderer.remote.nativeTheme.onUpdated(fun _ -> dispatchCurrentMode ()) |> ignore + // dispatchCurrentMode () let init () = let m = diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..4fb1d81 --- /dev/null +++ b/static/index.html @@ -0,0 +1,9 @@ + + + + + + +
+ + diff --git a/webpack.additions.renderer.js b/webpack.additions.renderer.js index 1b41b38..914da1d 100644 --- a/webpack.additions.renderer.js +++ b/webpack.additions.renderer.js @@ -1,14 +1,20 @@ var path = require("path"); +var HtmlWebpackPlugin = require('html-webpack-plugin'); function resolve(filePath) { return path.join(__dirname, filePath) } module.exports = { - entry: [resolve("src/Renderer/Renderer.fsproj"), resolve("src/Renderer/scss/main.scss")], + entry: [resolve("src/Renderer/Renderer.fsproj"), resolve("src/Renderer/scss/main.scss"), resolve('static/index.html')], output: { filename: "renderer.js" }, + plugins: [ + new HtmlWebpackPlugin({ + template: path.resolve(__dirname, 'static/index.html') + }) + ], module: { rules: [ {