كنت أفكر في إضافة طريقة لطيفة للربط بأحداث لوحة المفاتيح ، شيء مثل ما يلي سيكون رائعًا حقًا:
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 أصدر مشكلة حول colors
و fonts
عند 95 #
السيناريو 2.2 غير متسق مع بقية معالجات الأحداث لأنه يعني أنه يجب علينا أيضًا تنفيذ onClick(dispatch, Login)
وعلى الأرجح لن نقوم بذلك (التعليقات والمناقشة مرحب بها بالطبع)
بالنسبة للسيناريو 1 والسيناريو 2 ، يجب أن تقبل معالجات الأحداث هناك KeyboardEvent
كوسيطة لـ lambda (بجانب المفتاح). على سبيل المثال ، ستستغرق أحداث لوحة المفاتيح الأحمال الزائدة:
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)