0.1.27 • Published 3 years ago
@iid/react-sort-ui v0.1.27
react-sort-ui
This project was bootstrapped with Create React App.
Quickstart
In the project directory, you can run:
npm i @iid/react-sort-ui
import { ReactSortUI, SortFn, NList } from '@iid/react-sort-ui'
<ReactSortUI list={[3,4,2,1]}Props
list
type Array
autoPlay
type boolean
width
type number
default 200
height
type number
default 200
sortFn
type SortFn = (l: NList, f: Show) => void;
The Show function pauses the sorting and updates the canvas. Put it in any position you like in any sort function!
const show: Show = async (n: number) => {
await Wait(n)
draw(context)
}NList
class NList {
constructor(list: Array<number>)
getList(): Array<number> {
setList(list: Array<number>) {
getEffect(n: number)
getSize(): number
getMaxSize(): number
getHilightPos()
//Change the color of the bar in the index of the set
setHilightPos(m: Set<number>)
getSerchPos()
//Arrow above the bar in the index of the set
setSerchPos(n: Set<number>)
shuffle() {
}For example.
import { ReactSortUI, SortFn} from '@iid/react-sort-ui'
...
const sort = async (list: NList, show: Show) => {
let isSwap = true
let last = list.getSize() - 1
while (isSwap) {
isSwap = false
for (let i = 0; i < last; i++) {
const m = new Set<number>()
m.add(i)
m.add(i + 1)
sList.setSerchPos(m)
await show(100)
if (list.getList()[i] > list.getList()[i + 1]) {
const s = new Set<number>()
s.add(i)
s.add(i + 1)
sList.setHilightPos(s)
[list.getList()[i], list.getList()[i + 1]] = [
list.getList()[i + 1],
list.getList()[i]
]
await show(100)
isSwap = true
} else {
await show(100)
}
}
last--
}
}
const sortRef: any = useRef()
return (<>
<ReactSortUI
list={[5,4,3,2,1]}
ref={sortRef}
autoPlay={autoPlay}
width={width}
height={height}
sortFn={sortFn}
/>
<Button onClick={() => sortRef.current.Start()}>
Start
</Button>
<Button onClick={() => sortRef.current.Reset()}>
Reset
</Button>
</>)0.1.27
3 years ago
0.1.26
3 years ago
0.1.25
3 years ago
0.1.24
3 years ago
0.1.23
3 years ago
0.1.22
3 years ago
0.1.21
3 years ago
0.1.20
3 years ago
0.1.19
3 years ago
0.1.18
3 years ago
0.1.17
3 years ago
0.1.16
3 years ago
0.1.15
3 years ago
0.1.14
3 years ago
0.1.13
3 years ago
0.1.12
3 years ago
0.1.11
3 years ago
0.1.10
3 years ago
0.1.9
3 years ago
0.1.8
3 years ago
0.1.7
3 years ago
0.1.6
3 years ago
0.1.5
3 years ago
0.1.4
3 years ago
0.1.3
3 years ago
0.1.2
3 years ago
0.1.1
3 years ago
0.1.0
3 years ago