(address, route = undefined)
| 74 | |
| 75 | // Corrects a provided route too |
| 76 | export const moveAddressToBack = (address, route = undefined) => { |
| 77 | const { colour, number } = address; |
| 78 | const screen = colour.screens[number]; |
| 79 | removeScreenAddress(address); |
| 80 | const newNumber = addScreen(colour, screen); |
| 81 | const newAddress = makeAddress(colour, newNumber); |
| 82 | if (route === undefined) { |
| 83 | return newAddress; |
| 84 | } |
| 85 | |
| 86 | const { start, steps } = route; |
| 87 | let routeScreen = start; |
| 88 | |
| 89 | const newRoute = makeRoute(start); |
| 90 | |
| 91 | for (const step of steps) { |
| 92 | let stepNumber = step.item; |
| 93 | if (routeScreen.colour === colour) { |
| 94 | if (stepNumber === number) { |
| 95 | stepNumber = newNumber; |
| 96 | } else if (stepNumber > number) { |
| 97 | stepNumber--; |
| 98 | } |
| 99 | } |
| 100 | addStep(newRoute, stepNumber); |
| 101 | routeScreen = routeScreen.colour.screens[stepNumber]; |
| 102 | } |
| 103 | |
| 104 | return [newAddress, newRoute]; |
| 105 | }; |
| 106 | |
| 107 | // This could be cached if a performance boost is needed |
| 108 | export const getColourParents = (childColour, colours) => { |
no test coverage detected