From eb867193c1377448718ce4945bf6013cc266c609 Mon Sep 17 00:00:00 2001
From: Paul Agron <>
Date: Wed, 10 Nov 2021 11:20:14 -0800
Subject: [PATCH 1/2] Adding Elmish.Toastr to demo css import
---
build.mjs | 3 +
package.json | 4 +-
public/index.html | 2 +
src/App.fs | 17 ++-
src/App.fsproj | 1 +
yarn.lock | 274 +++++++++++++++++++++++++++++++++++++++++++++-
6 files changed, 292 insertions(+), 9 deletions(-)
diff --git a/build.mjs b/build.mjs
index 2271876..bfed973 100644
--- a/build.mjs
+++ b/build.mjs
@@ -1,4 +1,6 @@
import {promises as fs} from 'fs';
+import {sassPlugin} from "esbuild-sass-plugin";
+
import esbuild from 'esbuild';
/**
@@ -34,6 +36,7 @@ const bundle = async (sourceDir, entryFile, destinationDir, productionMode = fal
sourcemap: !productionMode,
// Folder to put all generated files
outdir: destinationDir,
+ plugins: [sassPlugin()]
});
if (productionMode) {
diff --git a/package.json b/package.json
index b541d8b..ca622a5 100644
--- a/package.json
+++ b/package.json
@@ -9,8 +9,10 @@
"start": "dotnet fable watch src -s -o .build --run node build.mjs"
},
"dependencies": {
+ "esbuild-sass-plugin": "^1.7.0",
"react": "^17.0.2",
- "react-dom": "^17.0.2"
+ "react-dom": "^17.0.2",
+ "toastr": "^2.1.4"
},
"devDependencies": {
"esbuild": "^0.13.12",
diff --git a/public/index.html b/public/index.html
index 72e1142..2aa1ad0 100644
--- a/public/index.html
+++ b/public/index.html
@@ -3,6 +3,8 @@
Elmish App
+
+
diff --git a/src/App.fs b/src/App.fs
index 426496c..8cfaf7a 100644
--- a/src/App.fs
+++ b/src/App.fs
@@ -10,23 +10,32 @@ open Elmish.React
open Elmish.Debug
open Fable.React
open Fable.React.Props
+open Elmish
+open Elmish.Toastr
+Fable.Core.JsInterop.importSideEffects "../node_modules/toastr/toastr.scss"
// MODEL
+
type Model = int
type Msg =
| Increment
| Decrement
-let init () : Model = 0
+let init () = 0, Cmd.none
// UPDATE
let update (msg: Msg) (model: Model) =
+ let infoToast =
+ Toastr.message "You clicked previous toast"
+ |> Toastr.title "Clicked"
+ |> Toastr.info
+
match msg with
- | Increment -> model + 1
- | Decrement -> model - 1
+ | Increment -> model + 1, infoToast
+ | Decrement -> model - 1, Cmd.none
// VIEW (rendered with React)
@@ -43,7 +52,7 @@ let view (model: Model) dispatch =
]
// App
-Program.mkSimple init update view
+Program.mkProgram init update view
|> Program.withReactSynchronous "elmish-app"
|> Program.withConsoleTrace
|> Program.withDebugger
diff --git a/src/App.fsproj b/src/App.fsproj
index 262af8f..e2fde57 100644
--- a/src/App.fsproj
+++ b/src/App.fsproj
@@ -12,6 +12,7 @@
+
diff --git a/yarn.lock b/yarn.lock
index 0a6fb8c..1bc8114 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,14 @@
# yarn lockfile v1
+anymatch@~3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
async-limiter@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@@ -12,6 +20,33 @@ base-64@0.1.0:
resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs=
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+"chokidar@>=3.0.0 <4.0.0":
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
+ integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
clone@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
@@ -22,10 +57,190 @@ component-emitter@1.2.1:
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
-esbuild@^0.12.15:
- version "0.12.29"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.29.tgz#be602db7c4dc78944a9dbde0d1ea19d36c1f882d"
- integrity sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==
+esbuild-android-arm64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.13.tgz#da07b5fb2daf7d83dcd725f7cf58a6758e6e702a"
+ integrity sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ==
+
+esbuild-darwin-64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.13.tgz#e94e9fd3b4b5455a2e675cd084a19a71b6904bbf"
+ integrity sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA==
+
+esbuild-darwin-arm64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.13.tgz#8c320eafbb3ba2c70d8062128c5b71503e342471"
+ integrity sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g==
+
+esbuild-freebsd-64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.13.tgz#ce0ca5b8c4c274cfebc9326f9b316834bd9dd151"
+ integrity sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A==
+
+esbuild-freebsd-arm64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.13.tgz#463da17562fdcfdf03b3b94b28497d8d8dcc8f62"
+ integrity sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw==
+
+esbuild-linux-32@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.13.tgz#2035793160da2c4be48a929e5bafb14a31789acc"
+ integrity sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w==
+
+esbuild-linux-64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.13.tgz#fbe4802a8168c6d339d0749f977b099449b56f22"
+ integrity sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw==
+
+esbuild-linux-arm64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.13.tgz#f08d98df28d436ed4aad1529615822bb74d4d978"
+ integrity sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng==
+
+esbuild-linux-arm@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.13.tgz#6f968c3a98b64e30c80b212384192d0cfcb32e7f"
+ integrity sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ==
+
+esbuild-linux-mips64le@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.13.tgz#690c78dc4725efe7d06a1431287966fbf7774c7f"
+ integrity sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w==
+
+esbuild-linux-ppc64le@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.13.tgz#7ec9048502de46754567e734aae7aebd2df6df02"
+ integrity sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ==
+
+esbuild-netbsd-64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.13.tgz#439bdaefffa03a8fa84324f5d83d636f548a2de3"
+ integrity sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ==
+
+esbuild-openbsd-64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.13.tgz#c9958e5291a00a3090c1ec482d6bcdf2d5b5d107"
+ integrity sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w==
+
+esbuild-sass-plugin@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/esbuild-sass-plugin/-/esbuild-sass-plugin-1.7.0.tgz#4365df75fef9f8453c9c04133879c793ebd4262b"
+ integrity sha512-q8K1+jhmttlEIwF9WrjCLVHPh4eu6ETI/YqIxuFkCVGOFE3W3lFunXjjbkuHCaoxDs55NcpK7qv4sniPqsd5aQ==
+ dependencies:
+ esbuild "^0.13.3"
+ picomatch "^2.3.0"
+ resolve "^1.20.0"
+ sass "^1.42.1"
+
+esbuild-sunos-64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.13.tgz#ac9ead8287379cd2f6d00bd38c5997fda9c1179e"
+ integrity sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ==
+
+esbuild-windows-32@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.13.tgz#a3820fc86631ca594cb7b348514b5cc3f058cfd6"
+ integrity sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw==
+
+esbuild-windows-64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.13.tgz#1da748441f228d75dff474ddb7d584b81887323c"
+ integrity sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA==
+
+esbuild-windows-arm64@0.13.13:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.13.tgz#06dfa52a6b178a5932a9a6e2fdb240c09e6da30c"
+ integrity sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A==
+
+esbuild@^0.13.12, esbuild@^0.13.3:
+ version "0.13.13"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.13.tgz#0b5399c20f219f663c8c1048436fb0f59ab17a41"
+ integrity sha512-Z17A/R6D0b4s3MousytQ/5i7mTCbaF+Ua/yPfoe71vdTv4KBvVAvQ/6ytMngM2DwGJosl8WxaD75NOQl2QF26Q==
+ optionalDependencies:
+ esbuild-android-arm64 "0.13.13"
+ esbuild-darwin-64 "0.13.13"
+ esbuild-darwin-arm64 "0.13.13"
+ esbuild-freebsd-64 "0.13.13"
+ esbuild-freebsd-arm64 "0.13.13"
+ esbuild-linux-32 "0.13.13"
+ esbuild-linux-64 "0.13.13"
+ esbuild-linux-arm "0.13.13"
+ esbuild-linux-arm64 "0.13.13"
+ esbuild-linux-mips64le "0.13.13"
+ esbuild-linux-ppc64le "0.13.13"
+ esbuild-netbsd-64 "0.13.13"
+ esbuild-openbsd-64 "0.13.13"
+ esbuild-sunos-64 "0.13.13"
+ esbuild-windows-32 "0.13.13"
+ esbuild-windows-64 "0.13.13"
+ esbuild-windows-arm64 "0.13.13"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-core-module@^2.2.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548"
+ integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==
+ dependencies:
+ has "^1.0.3"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-glob@^4.0.1, is-glob@~4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+jquery@>=1.12.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
+ integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
"js-tokens@^3.0.0 || ^4.0.0":
version "4.0.0"
@@ -49,11 +264,26 @@ loose-envify@^1.1.0:
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+path-parse@^1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+ integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
+
querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
@@ -81,6 +311,13 @@ react@^17.0.2:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
remotedev@^0.2.9:
version "0.2.9"
resolved "https://registry.yarnpkg.com/remotedev/-/remotedev-0.2.9.tgz#a5f148704bc6bf6e46e93640cabb7b4ed3f7fc12"
@@ -91,11 +328,26 @@ remotedev@^0.2.9:
rn-host-detect "^1.0.1"
socketcluster-client "^13.0.0"
+resolve@^1.20.0:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+ integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
rn-host-detect@^1.0.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.2.0.tgz#8b0396fc05631ec60c1cb8789e5070cdb04d0da0"
integrity sha512-btNg5kzHcjZZ7t7mvvV/4wNJ9e3MPgrWivkRgWURzXL0JJ0pwWlU4zrbmdlz3HHzHOxhBhHB4D+/dbMFfu4/4A==
+sass@^1.42.1:
+ version "1.43.4"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.4.tgz#68c7d6a1b004bef49af0d9caf750e9b252105d1f"
+ integrity sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==
+ dependencies:
+ chokidar ">=3.0.0 <4.0.0"
+
sc-channel@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/sc-channel/-/sc-channel-1.2.0.tgz#d9209f3a91e3fa694c66b011ce55c4ad8c3087d9"
@@ -137,6 +389,20 @@ socketcluster-client@^13.0.0:
uuid "3.2.1"
ws "5.1.1"
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+toastr@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181"
+ integrity sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=
+ dependencies:
+ jquery ">=1.12.0"
+
uuid@3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
From a9957b59909e020dafa48bafac3a027fed2eed57 Mon Sep 17 00:00:00 2001
From: Paul Agron <>
Date: Wed, 10 Nov 2021 14:56:19 -0800
Subject: [PATCH 2/2] Succefful Bulma experiments with esbuild
---
.gitignore | 4 ++-
package.json | 1 +
src/App.fs | 93 +++++++++++++++++++++++++++++++++++++++++++++++---
src/App.fsproj | 1 +
yarn.lock | 5 +++
5 files changed, 99 insertions(+), 5 deletions(-)
diff --git a/.gitignore b/.gitignore
index b06fcd7..28735ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,4 +6,6 @@ node_modules
.build
bin
obj
-out
\ No newline at end of file
+out
+.fake
+.ionide
\ No newline at end of file
diff --git a/package.json b/package.json
index ca622a5..50949bb 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"start": "dotnet fable watch src -s -o .build --run node build.mjs"
},
"dependencies": {
+ "bulma": "^0.9.3",
"esbuild-sass-plugin": "^1.7.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
diff --git a/src/App.fs b/src/App.fs
index 8cfaf7a..0b69000 100644
--- a/src/App.fs
+++ b/src/App.fs
@@ -13,8 +13,12 @@ open Fable.React.Props
open Elmish
open Elmish.Toastr
+open Feliz
+open Feliz.Bulma
+
+
Fable.Core.JsInterop.importSideEffects "../node_modules/toastr/toastr.scss"
-// MODEL
+Fable.Core.JsInterop.importSideEffects "../node_modules/bulma/bulma.sass"
type Model = int
@@ -39,16 +43,97 @@ let update (msg: Msg) (model: Model) =
// VIEW (rendered with React)
-let view (model: Model) dispatch =
+let view (model: Model) dispatch =
+ let mydiv (clazz:string) (kids:seq) =
+ Html.div [
+ prop.className clazz
+ prop.children kids
+ ]
+
+ let mydiv' classes (kids:seq) =
+ Html.div [
+ prop.classes classes
+ prop.children kids
+ ]
+
div [] [
- button [ OnClick(fun _ -> dispatch Increment) ] [
+ Fable.React.Standard.button [ OnClick(fun _ -> dispatch Increment) ] [
str "+"
]
div [] [ str (string model) ]
- button [ OnClick(fun _ -> dispatch Decrement) ] [
+ Fable.React.Standard.button [ OnClick(fun _ -> dispatch Decrement) ] [
str "-"
]
+
+ hr []
+ Bulma.button.button [
+ Bulma.color.isPrimary
+ prop.text "Primary"
+ ]
+
+ hr []
+
+
+ Bulma.hero [
+ hero.isFullHeight
+ color.isLight
+ prop.children [
+ Bulma.heroBody [
+ Bulma.container [
+ Bulma.columns [
+ columns.isCentered
+ prop.children [
+ Bulma.column [
+ column.is5Tablet
+ column.is4Desktop
+ column.is3Widescreen
+ // mydiv' ["column"; "is-5-tablet"; "is-4-desktop"; "is-3-widescreen"]
+
+ prop.children [
+ Html.form [
+ Bulma.field.div [
+ Bulma.label "Username"
+ Bulma.control.div [
+ Bulma.input.text [
+ prop.placeholder "nickname"
+ ]
+ ]
+ ]
+ Bulma.field.div [
+ Bulma.label "Password"
+ Bulma.control.div [
+ Bulma.input.password [
+ prop.placeholder "*****"
+ ]
+ ]
+ ]
+ Bulma.field.div [
+ Bulma.field.isGrouped
+ Bulma.field.isGroupedCentered
+ prop.children [
+ Bulma.control.div [
+ Bulma.button.button [
+ Bulma.color.isLink
+ prop.text "Submit"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+
+
+
+ ]
+ ]
+
+
]
// App
diff --git a/src/App.fsproj b/src/App.fsproj
index e2fde57..6ee5ff3 100644
--- a/src/App.fsproj
+++ b/src/App.fsproj
@@ -16,5 +16,6 @@
+
diff --git a/yarn.lock b/yarn.lock
index 1bc8114..34969e2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -32,6 +32,11 @@ braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
+bulma@^0.9.3:
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.9.3.tgz#ddccb7436ebe3e21bf47afe01d3c43a296b70243"
+ integrity sha512-0d7GNW1PY4ud8TWxdNcP6Cc8Bu7MxcntD/RRLGWuiw/s0a9P+XlH/6QoOIrmbj6o8WWJzJYhytiu9nFjTszk1g==
+
"chokidar@>=3.0.0 <4.0.0":
version "3.5.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"