Fix bug with switches not correctly handling input.
This commit is contained in:
Generated
+2886
-3595
File diff suppressed because it is too large
Load Diff
+20
-20
@@ -21,27 +21,27 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.15.1",
|
||||
"@material/card": "^12.0.0",
|
||||
"@material/mwc-button": "^0.23.0",
|
||||
"@material/mwc-fab": "^0.23.0",
|
||||
"@material/mwc-icon-button": "^0.23.0",
|
||||
"@material/mwc-linear-progress": "^0.23.0",
|
||||
"@material/mwc-menu": "^0.23.0",
|
||||
"@material/mwc-select": "^0.23.0",
|
||||
"@material/mwc-slider": "^0.23.0",
|
||||
"@material/mwc-switch": "^0.23.0",
|
||||
"@material/mwc-tab": "^0.23.0",
|
||||
"@material/mwc-tab-bar": "^0.23.0",
|
||||
"@material/mwc-textarea": "^0.23.0",
|
||||
"@material/mwc-textfield": "^0.23.0",
|
||||
"@material/card": "^13.0.0",
|
||||
"@material/mwc-button": "^0.25.1",
|
||||
"@material/mwc-fab": "^0.25.1",
|
||||
"@material/mwc-icon-button": "^0.25.1",
|
||||
"@material/mwc-linear-progress": "^0.25.1",
|
||||
"@material/mwc-menu": "^0.25.1",
|
||||
"@material/mwc-select": "^0.25.1",
|
||||
"@material/mwc-slider": "^0.25.1",
|
||||
"@material/mwc-switch": "^0.25.1",
|
||||
"@material/mwc-tab": "^0.25.1",
|
||||
"@material/mwc-tab-bar": "^0.25.1",
|
||||
"@material/mwc-textarea": "^0.25.1",
|
||||
"@material/mwc-textfield": "^0.25.1",
|
||||
"@polymer/paper-tooltip": "^3.0.1",
|
||||
"@webcomponents/webcomponentsjs": "^2.5.0",
|
||||
"canvas-confetti": "^1.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/canvas-confetti": "^1.3.0",
|
||||
"@types/chrome": "^0.0.157",
|
||||
"@types/chromecast-caf-receiver": "^6.0.5",
|
||||
"@types/chrome": "^0.0.158",
|
||||
"@types/chromecast-caf-receiver": "^6.0.6",
|
||||
"@types/chromecast-caf-sender": "^1.0.3",
|
||||
"app-manifest-loader": "^2.4.1",
|
||||
"chromecast-device-emulator": "^1.2.7",
|
||||
@@ -64,15 +64,15 @@
|
||||
"prettier": "2.4.1",
|
||||
"prettier-plugin-elm": "^0.8.0",
|
||||
"resolve-url-loader": "^4.0.0",
|
||||
"sass": "^1.32.0",
|
||||
"sass": "^1.42.1",
|
||||
"sass-loader": "^12.1.0",
|
||||
"style-loader": "^3.2.1",
|
||||
"style-loader": "^3.3.0",
|
||||
"terser-webpack-plugin": "^5.0.3",
|
||||
"ts-loader": "^9.2.2",
|
||||
"ts-loader": "^9.2.6",
|
||||
"tsickle-loader": "^0.5.0",
|
||||
"typescript": "^4.1.3",
|
||||
"webpack": "^5.11.1",
|
||||
"webpack": "^5.56.1",
|
||||
"webpack-cli": "^4.3.1",
|
||||
"webpack-dev-server": "^4.2.1"
|
||||
"webpack-dev-server": "^4.3.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ maybe default base noOp update model value args =
|
||||
{ shared, readOnly } =
|
||||
args
|
||||
|
||||
( checked, disabled ) =
|
||||
( selected, disabled ) =
|
||||
case value of
|
||||
Just v ->
|
||||
( v /= Nothing, False )
|
||||
@@ -57,12 +57,20 @@ maybe default base noOp update model value args =
|
||||
( False, True )
|
||||
in
|
||||
Switch.view
|
||||
[ checked |> HtmlA.selected
|
||||
[ selected |> HtmlA.selected
|
||||
, if readOnly || disabled then
|
||||
HtmlA.disabled True
|
||||
|
||||
else
|
||||
HtmlE.onCheck (\c -> default |> Maybe.justIf c |> update)
|
||||
let
|
||||
newValue =
|
||||
if selected then
|
||||
Nothing
|
||||
else
|
||||
Just default
|
||||
in
|
||||
newValue |> update |> HtmlE.onClick
|
||||
|
||||
]
|
||||
:: base noOp (Just >> update) model (value |> Maybe.andThen identity) args
|
||||
|
||||
@@ -75,6 +83,9 @@ bool label _ update _ value { shared, readOnly } =
|
||||
|
||||
labelClick =
|
||||
value |> Maybe.andThen (Maybe.justIf (not disabled)) |> Maybe.map (not >> update >> HtmlE.onClick)
|
||||
|
||||
selected =
|
||||
value |> Maybe.withDefault False
|
||||
in
|
||||
[ Html.label
|
||||
(List.filterMap identity
|
||||
@@ -83,12 +94,12 @@ bool label _ update _ value { shared, readOnly } =
|
||||
]
|
||||
)
|
||||
[ Switch.view
|
||||
[ value |> Maybe.withDefault False |> HtmlA.selected
|
||||
[ selected |> HtmlA.selected
|
||||
, if disabled then
|
||||
HtmlA.disabled True
|
||||
|
||||
else
|
||||
HtmlE.onCheckNoPropagation update
|
||||
selected |> not |> update |> HtmlE.onClickNoPropagation
|
||||
]
|
||||
, label |> Lang.html shared
|
||||
]
|
||||
|
||||
@@ -324,14 +324,16 @@ autoAdvanceRound wrap shared =
|
||||
let
|
||||
settings =
|
||||
shared.settings.settings
|
||||
|
||||
currentValue = settings.autoAdvance |> Maybe.withDefault False
|
||||
in
|
||||
Form.section shared
|
||||
"auto-advance"
|
||||
(Html.div
|
||||
[ HtmlA.class "multipart" ]
|
||||
[ Switch.view
|
||||
[ HtmlE.onCheck (ToggleAutoAdvance >> wrap)
|
||||
, HtmlA.selected (settings.autoAdvance |> Maybe.withDefault False)
|
||||
[ HtmlE.onClick (currentValue |> not |> ToggleAutoAdvance >> wrap)
|
||||
, HtmlA.selected (currentValue)
|
||||
, HtmlA.id "auto-advance-enable"
|
||||
]
|
||||
, Html.label [ HtmlA.for "auto-advance-enable" ]
|
||||
@@ -379,7 +381,7 @@ speechVoiceSelector wrap shared =
|
||||
[ Html.div
|
||||
[ HtmlA.class "multipart" ]
|
||||
[ Switch.view
|
||||
[ HtmlE.onCheck (ToggleSpeech >> wrap)
|
||||
[ HtmlE.onClick (enabled |> not |> ToggleSpeech >> wrap)
|
||||
, HtmlA.disabled isDisabled
|
||||
, HtmlA.selected enabled
|
||||
, HtmlA.id "speech-enable"
|
||||
@@ -481,7 +483,7 @@ notificationsSwitch wrap shared =
|
||||
[ Html.div
|
||||
[ HtmlA.class "multipart" ]
|
||||
[ Switch.view
|
||||
[ HtmlE.onCheck (ToggleNotifications >> wrap)
|
||||
[ HtmlE.onClick (enabled |> not |> ToggleNotifications >> wrap)
|
||||
, HtmlA.disabled unsupported
|
||||
, HtmlA.selected enabled
|
||||
, HtmlA.id "notifications-enable"
|
||||
@@ -499,7 +501,7 @@ notificationsSwitch wrap shared =
|
||||
(Html.div
|
||||
[ HtmlA.class "multipart" ]
|
||||
[ Switch.view
|
||||
[ HtmlE.onCheck (ToggleOnlyWhenHidden >> wrap)
|
||||
[ HtmlE.onClick (settings.requireNotVisible |> not |> ToggleOnlyWhenHidden >> wrap)
|
||||
, HtmlA.disabled visibilityDisabled
|
||||
, HtmlA.selected settings.requireNotVisible
|
||||
, HtmlA.id "only-when-hidden-toggle"
|
||||
|
||||
@@ -5,6 +5,7 @@ module MassiveDecks.Util.Maybe exposing
|
||||
, isNothing
|
||||
, justIf
|
||||
, toList
|
||||
, flip
|
||||
, transformWith
|
||||
, validate
|
||||
)
|
||||
@@ -98,3 +99,15 @@ isNothing =
|
||||
isJust : Maybe a -> Bool
|
||||
isJust =
|
||||
(/=) Nothing
|
||||
|
||||
|
||||
{-| If the given maybe holds a value, return nothing, otherwise return Just the default value.
|
||||
-}
|
||||
flip : a -> Maybe a -> Maybe a
|
||||
flip default value =
|
||||
case value of
|
||||
Just _ ->
|
||||
Nothing
|
||||
|
||||
Nothing ->
|
||||
Just default
|
||||
|
||||
+11
-2
@@ -3,7 +3,11 @@ variable "VERSION" {
|
||||
}
|
||||
|
||||
variable "VCS_REF" {
|
||||
default = "dev"
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "BUILD_DATE" {
|
||||
default = ""
|
||||
}
|
||||
|
||||
function "splitSemVer" {
|
||||
@@ -37,7 +41,7 @@ function "repos" {
|
||||
function "generateTags" {
|
||||
params = [repos, versionTags, commitHash, component]
|
||||
result = flatten([
|
||||
for repo in repos: [ for tag in flatten([commitHash, versionTags, "latest"]) : "${repo}${component}:${tag}" ]
|
||||
for repo in repos: [ for tag in flatten(["${commitHash}-dev", versionTags, "latest"]) : "${repo}${component}:${tag}" ]
|
||||
])
|
||||
}
|
||||
|
||||
@@ -46,6 +50,11 @@ target "build" {
|
||||
platforms = ["linux/amd64", "linux/arm64"]
|
||||
output = ["type=registry"]
|
||||
pull = true
|
||||
args = {
|
||||
VERSION = VERSION != "" ? VERSION : "${VCS_REF}-dev"
|
||||
VCS_REF = VCS_REF
|
||||
BUILD_DATE = BUILD_DATE
|
||||
}
|
||||
}
|
||||
|
||||
target "server" {
|
||||
|
||||
Generated
+356
-468
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -28,7 +28,7 @@
|
||||
"dependencies": {
|
||||
"ajv": "^8.6.3",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"axios": "^0.21.1",
|
||||
"axios": "^0.22.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"express": "^4.17.1",
|
||||
"express-async-errors": "^3.1.1",
|
||||
|
||||
Reference in New Issue
Block a user