рдореИрдВ рдХреБрдВрдЬреАрдкрдЯрд▓ рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рдирд┐рдореНрди рдХреА рддрд░рд╣ рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛:
Html.input [
prop.onKeyUp(key.enter, fun _ -> dispatch Login)
prop.onChange (UsernameChanged >> dispatch)
prop.valueOrDefault state.Username
]
Html.input [
prop.onKeyUp [ key.enter, fun _ -> dispatch Login ]
prop.onChange (UsernameChanged >> dispatch)
prop.valueOrDefault state.Username
]
Html.input [
prop.onKeyUp(dispatch, [ key.enter, Login; key.esc, Reset ])
prop.onChange (UsernameChanged >> dispatch)
prop.valueOrDefault state.Username
]
рдпрд╣ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ! рдкреАрдЖрд░ рдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдореБрдЭреЗ рдФрд░ рдЕрдиреНрдп рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдУрд╣, рдЕрдЪреНрдЫрд╛, рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдЖрдк рдХреИрд╕рд╛ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ!
IMHO Key
Keys
, рдпрд╛рдиреА Key.Enter
рдмрдирд╛рдо Keys.Enter
рд╕реЗ рдмреЗрд╣рддрд░ рдкрдврд╝рддрд╛ рд╣реИред
@cmeeren рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЗрд╕реЗ рд╕реБрд╕рдВрдЧрдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд▓рдХреНрд╖рдг рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ prop
, style
рдФрд░ key
(рд▓реЛрдЕрд░-рдХреЗрд╕) рдПрдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдЬреЛрдбрд╝ рд╣реЛрдЧрд╛ рдореИрдВ
рд╣рд╛рдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ colors
рдФрд░ рдЕрдм fonts
... рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИред :)
@cmeeren рдиреЗ #95 . рдкрд░ colors
рдФрд░ fonts
рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛
рдкрд░рд┐рджреГрд╢реНрдп 2.2 рдмрд╛рдХреА рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ onClick(dispatch, Login)
рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ (рдлреАрдбрдмреИрдХ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ)
рдкрд░рд┐рджреГрд╢реНрдп 1 рдФрд░ рдкрд░рд┐рджреГрд╢реНрдп 2 рдХреЗ рд▓рд┐рдП, рд╡рд╣рд╛рдВ рдХреЗ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЛ KeyboardEvent
рдХреЛ рд▓реИрдореНрдмреНрдбрд╛ (рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде) рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛рдиреА рдХреАрдмреЛрд░реНрдб рдИрд╡реЗрдВрдЯ рдУрд╡рд░рд▓реЛрдб рд▓реЗ рд▓реЗрдВрдЧреЗ:
KeyboardEvent -> unit // default
IKeyboardKey * (KeyboardEvent -> unit) // scenario 1
(IKeyboardKey * (KeyboardEvent -> unit)) list // scenario 2
рдореБрдЭреЗ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред рд╕рдмреВрдд рд╣рд▓рд╡рд╛ рдореЗрдВ рд╣реИ, рдпрджреНрдпрдкрд┐ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред :)
рдХреАрдмреЛрд░реНрдб рдЕрдЪреНрдЫрд╛рдИ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:
// Enter only
prop.onKeyUp (key.enter, fun _ -> dispatch Login)
// Enter + CTRL
prop.onKeyUp (key.ctrl(key.enter), fun _ -> dispatch Login)
// Enter + SHIFT
prop.onKeyUp (key.shift(key.enter), fun _ -> dispatch Login)
// Enter + CTRL + SHIFT
prop.onKeyUp (key.ctrlAndShift(key.enter), fun _ -> dispatch Login)