Comments (4)
Hi, you need to set initial focus somewhere. You can check how it is done in the example app in App.js. Basically your app component also has to be a focusable container, and you need to call "setFocus()" after mount with no params in order to "focus" your app. Then it will find the first child component to pass the focus to.
from react-spatial-navigation.
Hi!
This package has no hard dependencies on react-native(-web). It only uses react-native-web for the sandbox example project that is in the "App.js". So you can use it with ReactJS by simply wrapping your components in "withFocusable()"
from react-spatial-navigation.
oh good to know, thanks for the quick reply!
I've made a test component like this:
import {withFocusable} from '@noriginmedia/react-spatial-navigation';
const styles = {
defaultStyle: {
backgroundColor: 'pink'
},
focusedStyle: {
backgroundColor: 'black'
},
};
const Button = ({title, focused, setFocus}) => {
console.log(`>>>>>>>>>>>>> ${title} is focused: ${focused}`);
return (
<div>
<button style={focused ? styles.focusedStyle : styles.defaultStyle}
onClick={() => {
console.log(`button click`);
}}
>{title}</button>
</div>
);
}
const FocusableButton = withFocusable()(Button);
export default FocusableButton;
and my App.js looks like this:
import {initNavigation, setKeyMap} from '@noriginmedia/react-spatial-navigation';
import FocusableButton from './components/Button';
initNavigation({
debug: true,
visualDebug: true
})
function App() {
return (
<div>
<FocusableButton title={'Bt1'} />
<FocusableButton title={'Bt2'} />
</div>
);
}
export default App;
but I don't see a change on the focused
property when navigating with the keyboard arrow keys...am I missing something?
Let me know if you'd prefer to see this in a codesandbox for example.
thanks again, have a great day
from react-spatial-navigation.
You're absolutely right, making the root component focusable and calling setFocus()
inside useEffect
works! Thank you so much
from react-spatial-navigation.
Related Issues (20)
- CSS gap:0 breaks navigation HOT 1
- Focus lost when Item Removed HOT 4
- Sometimes navigation doesn't work after go back to previous screen HOT 1
- a vulnerability CVE-2020-15168 is introduced in @noriginmedia/react-spatial-navigation HOT 2
- Focuses the second item in the list, after navigating from the fixed menu HOT 2
- Performance/Crash issue when load multiple rails and hold arrow keys to navigate HOT 1
- Focusable items hidden are able to be accessed. HOT 19
- withFocusable usage with forwardRef HOT 9
- Understanding of roadmap for library HOT 5
- more than 100 UI elements in funcational component taking too long to navigate. HOT 1
- 2-Directional Grid-type Items HOT 1
- display none control HOT 2
- Focus gets lost in case of collision HOT 3
- Track Child not recognizing children
- RTL is not supported
- Loss of focus when a component is rendered HOT 2
- Error when Server Side Rendering HOT 1
- Focusable elements not recognised when layout is position absolute HOT 5
- How should I handle focus when opening/closing a pop-up? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-spatial-navigation.