Skip to content

Commit

Permalink
fix #1469
Browse files Browse the repository at this point in the history
  • Loading branch information
krausest committed Oct 31, 2023
1 parent 0746982 commit a2eebbb
Show file tree
Hide file tree
Showing 11 changed files with 79 additions and 35 deletions.
9 changes: 8 additions & 1 deletion frameworks/keyed/react-hooks-use-transition/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,14 @@ const listReducer = (state, action) => {
case 'CLEAR':
return { data: [], selected: 0 };
case 'SWAP_ROWS':
return data.length > 998 ? { data: [data[0], data[998], ...data.slice(2, 998), data[1], data[999]], selected } : state;
const newdata = [...data];
if (data.length > 998) {
const d1 = newdata[1];
const d998 = newdata[998];
newdata[1] = d998;
newdata[998] = d1;
}
return { data: newdata, selected };
case 'REMOVE': {
const idx = data.findIndex((d) => d.id === action.id);

Expand Down
9 changes: 8 additions & 1 deletion frameworks/keyed/react-hooks/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,14 @@ const listReducer = (state, action) => {
case 'CLEAR':
return { data: [], selected: 0 };
case 'SWAP_ROWS':
return data.length > 998 ? { data: [data[0], data[998], ...data.slice(2, 998), data[1], data[999]], selected } : state;
const newdata = [...data];
if (data.length > 998) {
const d1 = newdata[1];
const d998 = newdata[998];
newdata[1] = d998;
newdata[998] = d1;
}
return { data: newdata, selected };
case 'REMOVE': {
const idx = data.findIndex((d) => d.id === action.id);

Expand Down
23 changes: 10 additions & 13 deletions frameworks/keyed/react-recoil/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,19 +134,16 @@ const Jumbotron = memo(
]);

const swapRows = useCallback(() => {
setAppState(({ data, selected }) =>
data.length > 998
? {
data: [
data[0],
data[998],
...data.slice(2, 998),
data[1],
data[999],
],
selected,
}
: state
setAppState(({ data, selected }) => {
const newdata = [...data];
if (data.length > 998) {
const d1 = newdata[1];
const d998 = newdata[998];
newdata[1] = d998;
newdata[998] = d1;
}
return { data: newdata, selected };
}
);
}, [setAppState]);

Expand Down
8 changes: 6 additions & 2 deletions frameworks/keyed/react-redux-hooks-immutable/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,12 @@ const store = createStore((state = initialState, action) => {
return initialState;
case 'SWAP_ROWS': {
return state.updateIn(['data'], data => {
const tmp = data.get(1);
return data.set(1, data.get(998)).set(998, tmp);
if (data.size>998) {
const tmp = data.get(1);
return data.set(1, data.get(998)).set(998, tmp);
} else {
return data;
}
});
}
}
Expand Down
8 changes: 5 additions & 3 deletions frameworks/keyed/react-redux-hooks/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,11 @@ const store = createStore((state = { data: [], selected: 0 }, action) => {
return { data: [], selected: 0 };
case "SWAP_ROWS": {
const newData = data.slice();
const tmp = newData[1];
newData[1] = newData[998];
newData[998] = tmp;
if (data.length>998) {
const tmp = newData[1];
newData[1] = newData[998];
newData[998] = tmp;
}
return { data: newData, selected };
}
}
Expand Down
12 changes: 8 additions & 4 deletions frameworks/keyed/react-redux-rematch/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,14 @@ const mainModel = {
SELECT: ({ data }, id) => ({ data, selected: id }),
CLEAR: () => ({ data: [], selected: 0 }),
SWAP_ROWS: ({ data, selected }) => {
return {
data: [data[0], data[998], ...data.slice(2, 998), data[1], data[999]],
selected
};
const newdata = [...data];
if (data.length > 998) {
const d1 = newdata[1];
const d998 = newdata[998];
newdata[1] = d998;
newdata[998] = d1;
}
return { data: newdata, selected };
}
}
};
Expand Down
11 changes: 9 additions & 2 deletions frameworks/keyed/react-redux/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,15 @@ const store = createStore((state = { data: [], selected: 0 }, action) => {
case 'CLEAR':
return { data: [], selected: 0 };
case 'SWAP_ROWS':
return { data: [data[0], data[998], ...data.slice(2, 998), data[1], data[999]], selected };
}
const newdata = [...data];
if (data.length > 998) {
const d1 = newdata[1];
const d998 = newdata[998];
newdata[1] = d998;
newdata[998] = d1;
}
return { data: newdata, selected };
}
return state;
});

Expand Down
8 changes: 5 additions & 3 deletions frameworks/keyed/react-rxjs/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,11 @@ const items$ = state(
return init;
case "swap": {
const newData = data.slice();
const tmp = newData[1];
newData[1] = newData[998];
newData[998] = tmp;
if (data.length>998) {
const tmp = newData[1];
newData[1] = newData[998];
newData[998] = tmp;
}
return newData;
}
}
Expand Down
10 changes: 9 additions & 1 deletion frameworks/keyed/react-tagged-state/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,15 @@ const Main = () => (
selected(0);
}}/>
<Button id="swaprows" title="Swap Rows"
cb={() => data((curr) => curr.length > 998 ? [curr[0], curr[998], ...curr.slice(2, 998), curr[1], curr[999]] : curr)}/>
cb={() => data((cur) => {
const newData = cur.slice();
if (cur.length>998) {
const tmp = newData[1];
newData[1] = newData[998];
newData[998] = tmp;
}
return newData;
})}/>
</div>
</div>
</div>
Expand Down
8 changes: 5 additions & 3 deletions frameworks/keyed/react-tracked/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,11 @@ const reducer = (state, action) => {
return { data: [], selected: 0 };
case "SWAP_ROWS": {
const newData = data.slice();
const tmp = newData[1];
newData[1] = newData[998];
newData[998] = tmp;
if (data.length>998) {
const tmp = newData[1];
newData[1] = newData[998];
newData[998] = tmp;
}
return { data: newData, selected };
}
}
Expand Down
8 changes: 6 additions & 2 deletions frameworks/keyed/react/src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,13 @@ class Main extends Component {
return this.setState({ data: [], selected: 0 });
case 'SWAP_ROWS': {
if (data.length > 998) {
return this.setState({ data: [data[0], data[998], ...data.slice(2, 998), data[1], data[999]] });
const newdata = [...data];
const d1 = newdata[1];
const d998 = newdata[998];
newdata[1] = d998;
newdata[998] = d1;
return this.setState({ data: newdata });
}

return;
}
case 'REMOVE': {
Expand Down

0 comments on commit a2eebbb

Please sign in to comment.