Comments (4)
Wow, actually... just discovered it was the dist/index.min.js
that wasn't sorting properly...
Somehow with the dist/index.js
its working.
from lrud.
I take this back... this is still very much a bug.
It MAY be an issue with certain browsers or something...
My app is deployed in FireTV and I put some console logs inside of Lrud.getNodeLastChild()
and it looks like this... I did a fresh build after adding console.logs to the index.ts's getNodeLastChild(); like so...
getNodeLastChild(node: Node): Node {
console.log("getNodeLastChild()");
if (!node.children) {
return undefined
}
console.log("node.children before sorting",JSON.parse(JSON.stringify(node.children)));
const orderedIndexes = Object.keys(node.children).map((childId) => {
const childIndex = node.children[childId].index;
console.log(`Mapping child ${childId} to ${childIndex}`);
return childIndex;
}).sort();
console.log("orderedIndexes after sorting",JSON.parse(JSON.stringify(orderedIndexes)));
console.log("lastIndex of orderedIndex:",orderedIndexes.length - 1);
return _findChildWithIndex(node, orderedIndexes[orderedIndexes.length - 1])
}
So what's happening is... since the last index returns 9... the wrapping nature of the response is always 9.
from lrud.
const orderedIndexes = Object.keys(node.children).map(childId => node.children[childId].index).sort()
to
const orderedIndexes = Object.keys(node.children).map(childId => node.children[childId].index)
Fixes the problem.
Having that seemingly innocent extra sort()
without the callback to tell it how to sort it...
from lrud.
Hi @jfrux ,
Thanks for your investigation, you're right. The sort
, without a proper callback, is not sorting the indexes correctly, it's treating number as string.
I'll open a PR to fix the issue.
from lrud.
Related Issues (20)
- Add a meta field for nodes to freely store data HOT 1
- Moving a node index under the same parent HOT 1
- Focused node becomes unfocused when separate part of tree removed
- LRUD gets confused when encountering empty nodes HOT 1
- Why is a node not considered "focusable" even if it has children that are and even though assignFocus works on said node? HOT 1
- Best way to restore default active child when entering / leaving a parent? HOT 1
- Having an issue in my app related to LRUD clearing `currentFocusNode`
- v5.0.6 not pushed to npm? HOT 1
- Can keyCode be made optional in KeyEvent interface?
- Any body out there know of something similar to this for the Roku platform? (lrud specificly (not javascript))
- failure when using setNodefocusable HOT 1
- Asyncronous adding items at higher index than total list count
- Uncaught RangeError: Maximum call stack size exceeded
- Focus can not jump over last node that is not focusable HOT 1
- Can not focus node that contains only non focusable nodes HOT 1
- Method insertTree incorrectly maintain index when replacing first child HOT 1
- Overrides of children are not cleaned up when unregistering parent node HOT 1
- Registering node with already occupied index makes the index out of sync
- Should I use insertTree or registerTree? HOT 2
- Active parents don't always deactivate when in a nested tree
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 lrud.