- Backspace
- Enter
- Escape
- CapsLock
- Keyboard (simulates Keyboard Layout Switcher)
- Any Single Char Key
- Spacing (Blank spot)
- Numeric Keyboard
- AlphaNumeric Keyboard
- Keyboard key's size (Can be changed by passing numbers to
keyboardKeyWidth
,keyboardKeyHeight
&keyboardKeySymbolSize
props)
- react-material-ui-keyboard can be used in none material-ui based projects (peerDependencie of material-ui is required)
- Spacebar (Spacebar key width can be controlled by the number of spaces used for the key
- Extended Keyboard
- Can be used in TypeScript based projects: d.ts file is included (npm typings support)
- Add support for regular JavaScript users by including propTypes
- Numeric Keyboard now has
-
instead of blank space.
- adding new prop
type
of type'string' | 'number'
which adds support fortextField
which usesvalue
of typenumber
- prop
type
added in v1.4.0 is deprecated due to it's probably never to be used as'number'
TextFieldInput
from material-ui v16.0 usesvalue
of typestring
including for<TextFieldInput type="number" />
- fixing when inputs are
focus
ed andblur
ed.
Keyboard.id
- Switching from
id
s tored
s - exposing public methods
getTextField
&getKeyboardField
- using polyfilled
Object.assign
in from of'object-assign'
Example changes
- enusre Keyboard input field value is always in sync with
textField.props.value
- Fix bug where changing keyboard key size via passing
keyboardKey*
prop
changed currentmuiTheme
- No logner using
context
to size keyboard key instead properties are passed directly toKeyboardKey
- Fix bug where
KeyboardKey
would not re-render if any ofprop
s introduced inv3.0.0
changes due to using old version ofshouldComponentUpdate
- Droping inmplementation of
shouldComponentUpdate
forKeyboardKey
- When
open
changes totrue
Keyboard
will listen for'keydown'
events onwindow
and whenopen
changes tofalse
listener will be removed.
- Fix bug introduced with
v3.1.0
which wouldd call twice_onKeyDown
if keyboard input field is focused due to listening both ontextField
clone andwindow
- textField
clone no longer recives
onKeyDown` handler
- Fixing keyboard key caps locking which got broken in
v3.0.0
- Replacing
List
s with plain olddiv
s.List
is a wrapper container build fromdiv
and just adds more overheap torender
ing. It waas initially used in conjuction withListItem
, which is no longer used sincev2.0.0
- New prop
automatic
added. Which should remove the boilerplate of opening a keyboard whentextField.props.onFocus
is tiggered and closing it whenprops.onRequestClose
is fired - Props
open
andonRequestClose
are now optional due to adding of the newautomatic
prop
Example updates
- New prop
nativeVirtualKeyboard
added. Which controlls when to prevent the native vertual keyboard ontextField
by settingreadOnly
.
Note: readOnly
is always true
on the cloned textField
used for input when keyboard is opened
Note: readOnly
is setted to true
on textField
when active
is also true
- Fixing a bug which falsely synced keyboard input value with
textField.props.value
each time acomponentWillReciveProps
is called. Now values are synced only whentextField.props.value
did really changed. Bug was introduced withv2.0.3
Keyboard
now resizes on whenwindow
'resize'
sKeyboard
now fits on screen if calculated size based onkeyboardKeyWidth
,keyboardKeyHeight
&keyboardKeySymbolSize
props
s is less than calculatedKeyboard
now exposes newpublic
static
memberautomaitcOpenPredicate
which isfunction
with signature:function() => boolean
that is called whenautomatic
istrue
and the attachedonFocus
handler ontextField
gets fired to determinate should keyboardopen
and disable native virtual keyboard by assigningreadOnly
attextField
in therender
. DefaultautomaitcOpenPredicate
behaviour is to always returntrue
. You can override it to change when toautomatic
lly open keyboardonFocus
Chech for examples GALLERY
onInput
is now optional
readOnly
is assigned to the result of invokingKeyboard.automaitcOpenPredicate
ontextField
whenactive
istrue
- Fixing a bug which would set
Dialog
dialogContentStyle
prop withheight
:NaN
for customtextFields
which dose not supportrow
prop
- Fixing possible styling bugs due to wrapping
textFiled
andDialog
indiv
. Ifstyle
prop
is passed totextFiled
it will be also passed and to the wrappingdiv
- Fixing possible styling bugs when
textFiled
is passed astyle
prop
that would set any of['minWidth', 'width', 'maxWidth', 'minHeight', 'height', 'maxHeight']
, those styling props aredelete
d on the clonedtextField
, used for keyboard input, in favour of unified user experiance offullWidth
input
- Fixing possible styling bugs when other than
style
prop
s, such asinputStyle
,underlineStyle
or any other posible customprop
, is passed totextField
would make keyboard input "style boken".textField
style
prop
properties
['minHeight', 'height', 'maxHeight']
are no longerdelete
d - Fixing possible styling bugs when
style
prop
contains any of['minHeight', 'height', 'maxHeight']
would preventKeyboard
from calculating it's height correctly
correctionName
is astring
which is the name of the clonedtextField
prop
to which to bindcorrector
.corrector
is afunction
which is bound to the the clonedtextField
atcorrectorName
prop
.this
is bound to theKeyboard
,public
methodmakeCorrection
can be used to apply a correction to the keyboard input.
- Re-exporting
default
from'./Keboard'
- Using npm badge for README.md#Install
- Fixing bug:
Uncaught TypeError: Cannot read property 'minHeight' of undefined
when nostyle
s are passed totextField
- keyboard layouts are now moved to
react-material-ui-keyboard/layouts
, in adition their names are in lower camel case now - Code is completetly refactored, in addition code is now memory and performance optimizated
Keyboard
andKeyboardKey
can be used incall
toReact.createElement
- Fixing
[ts] Cannot find module 'react-material-ui-keyboard/layouts'
nativeVirtualKeyboard
is now deprecated.readOnly
is now computed based onautomatic
andopen
for the input. For keyboard input field it's alwaystrue
- Fixing keyboard width computaion. Bug was introduced with
v6.0.4
update
- Usage of
ref
s is deprecated: The need ofref
s was because of controlling wheninput
s getsfocus
ed andblur
ed, which is no more required, insteaddocument.activeElement.tagName.toLowerCase()
is checked is it'input'
whenopen
becomestrue
and if it is theactiveElement
isblur()
ed public
methods:getTextField
andgetKeyboardField
are both removed
- If any of the following
prop
s is passed totextField
it will be overwritten for the keyboard input
- Instad of doing twice
React.cloneElement(textField, someMergedProps)
React.cloneElement
is called for the input andReact.createElement(textField.type, keyboardFieldProps
) for the keyboard input field
'#'
is added toextendedKeyboard
layout- warning icon is used when given special key is not supported
- Code is now have a 100% code coverage
- Fixing how
keyboardKeySymbolSize
is calculated whenKeyboard
resizes
- Updating project dependencies
- Updating project to use
typescript
2.0.3
and@types
instead oftypings
disableEffects
is a new prop
supported by both Keyboard
and KeyboardKey
. When it is set to true
it dissables FocusRipple
, KeyboardFocus
, TouchRipple
and hover
effects on the underlinig button
/s
onInputValueChange
is a new optional prop
of Keyboard
which is a callback that is triggered once keyboard's input change it's value. (closes #45)
- Updating project dependencies