@@ -3,26 +3,13 @@ import ReactDOM from "react-dom";
3
3
import { atom , useAtom , PrimitiveAtom } from "jotai" ;
4
4
import { useUpdateAtom } from "jotai/utils" ;
5
5
6
- import { Data , buildNextItem , buildDataAtoms } from "./utils" ;
6
+ import { Data , buildDataAtoms } from "./utils" ;
7
7
8
8
const dataAtom = atom < PrimitiveAtom < Data > [ ] > ( [ ] ) ;
9
9
const selectedAtom = atom < PrimitiveAtom < Data > | null > ( null ) ;
10
10
11
- const createRowsAtom = atom ( null , ( get , set , amount : number ) => {
12
- const prevData = get ( dataAtom ) ;
13
- const data = new Array ( amount ) ;
14
- for ( let i = 0 ; i < amount ; i ++ ) {
15
- const prev = prevData [ i ]
16
- if ( prev ) {
17
- data [ i ] = prev ;
18
- set ( prev , buildNextItem ( ) ) ;
19
- } else {
20
- data [ i ] = atom ( buildNextItem ( ) ) ;
21
- }
22
- }
23
- if ( prevData . length !== data . length ) {
24
- set ( dataAtom , data ) ;
25
- }
11
+ const createRowsAtom = atom ( null , ( _ , set , amount : number ) => {
12
+ set ( dataAtom , buildDataAtoms ( amount ) ) ;
26
13
set ( selectedAtom , null ) ;
27
14
} ) ;
28
15
@@ -57,9 +44,7 @@ const clearStateAtom = atom(null, (_, set) => {
57
44
const swapRowsAtom = atom ( null , ( get , set ) => {
58
45
const data = get ( dataAtom ) ;
59
46
if ( data . length > 998 ) {
60
- const tmp = get ( data [ 1 ] ) ;
61
- set ( data [ 1 ] , get ( data [ 998 ] ) ) ;
62
- set ( data [ 998 ] , tmp ) ;
47
+ set ( dataAtom , [ data [ 0 ] , data [ 998 ] , ...data . slice ( 2 , 998 ) , data [ 1 ] , data [ 999 ] ] )
63
48
}
64
49
} ) ;
65
50
0 commit comments