normalize button/keyCodes for events using which hook
remove space separated props from setter, improve tests coverage