MCPcopy Create free account
hub / github.com/TodePond/ScreenPond / moveAddressToBack

Function moveAddressToBack

source/colour.js:76–105  ·  view source on GitHub ↗
(address, route = undefined)

Source from the content-addressed store, hash-verified

74
75// Corrects a provided route too
76export 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
108export const getColourParents = (childColour, colours) => {

Callers 1

hand.jsFile · 0.90

Calls 5

makeAddressFunction · 0.90
makeRouteFunction · 0.90
addStepFunction · 0.90
removeScreenAddressFunction · 0.85
addScreenFunction · 0.85

Tested by

no test coverage detected