open-index/open-npm huggingface dataset:
npm package: @mitod/mitod-redux
Description: 基于redux 集成了redux-saga的封装
Latest version: 0.0.23

# constraint

基于redux 集成了redux-saga的封装

## 目录
```ts
src
- models (写法详见Models)
- - index.ts
- - xxxx.ts
- pages
- - app.tsx
- - xxx.tsx
- services
- - auth.ts
```

## 使用
```tsx
import { Config, Root } from '@mitod/mitod-redux/src';

import Setup from './src/index';
import models from './src/model';

const store = Config({
  models,
  dev: __DEV__,
});

const App = () => {
  return (
    <Root store={store}>
      <Setup />
    </Root>
  );
};

export default App;
```

## Models
```ts
export default {
  namespace: 'app',
  state: {
    login: false,
    loading: true,
    fetching: false
  },
  reducers: {
    updateState(state, { payload }) {
      return { ...state, ...payload };
    }
  },
  effects: {
    *loadStorage(action, { ...redux-saga }) {
      yield 'test';
    }
  }
};
```

## dispatch

```js
// 1. reducer 
dispatch({
  type:'aaaa.reducers/bbbb'
})
// 2. effect
dispatch({
  type:'aaaa.effects/bbbb'
})
// 3. 取消task
dispatch({
  type:'aaaa.effects/bbbb@@cancel'
})
```
npm package: @mitod/react-native-ui
Description: 1. 组件依赖字体库 @ant-design/icons-react-native
Latest version: 0.0.19

# react-native通用组件库

1. 组件依赖字体库 @ant-design/icons-react-native

```
npm i @ant-design/icons-react-native
```

2. 学习react-hooks使用。参考了ant-mobile-rn的样式以及写法，在此感谢开源，感谢antd



## 颜色
```js
// https://codepen.io/chriscoyier/pen/XjbzAW
Alpha %	Hex	Num
100%	FF	255
99%	FC	252
98%	FA	250
97%	F7	247
96%	F5	245
95%	F2	242
94%	F0	240
93%	ED	237
92%	EB	235
91%	E8	232
90%	E6	230
89%	E3	227
88%	E0	224
87%	DE	222
86%	DB	219
85%	D9	217
84%	D6	214
83%	D4	212
82%	D1	209
81%	CF	207
80%	CC	204
79%	C9	201
78%	C7	199
77%	C4	196
76%	C2	194
75%	BF	191
74%	BD	189
73%	BA	186
72%	B8	184
71%	B5	181
70%	B3	179
69%	B0	176
68%	AD	173
67%	AB	171
66%	A8	168
65%	A6	166
64%	A3	163
63%	A1	161
62%	9E	158
61%	9C	156
60%	99	153
59%	96	150
58%	94	148
57%	91	145
56%	8F	143
55%	8C	140
54%	8A	138
53%	87	135
52%	85	133
51%	82	130
50%	80	128
49%	7D	125
48%	7A	122
47%	78	120
46%	75	117
45%	73	115
44%	70	112
43%	6E	110
42%	6B	107
41%	69	105
40%	66	102
39%	63	99
38%	61	97
37%	5E	94
36%	5C	92
35%	59	89
34%	57	87
33%	54	84
32%	52	82
31%	4F	79
30%	4D	77
29%	4A	74
28%	47	71
27%	45	69
26%	42	66
25%	40	64
24%	3D	61
23%	3B	59
22%	38	56
21%	36	54
20%	33	51
19%	30	48
18%	2E	46
17%	2B	43
16%	29	41
15%	26	38
14%	24	36
13%	21	33
12%	1F	31
11%	1C	28
10%	1A	26
9%	17	23
8%	14	20
7%	12	18
6%	0F	15
5%	0D	13
4%	0A	10
3%	08	8
2%	05	5
1%	03	3
0%	00	0
```

## TODO 

components  
- [] input-item 
- [] checkbox 
- [] keyboard
npm package: @mitod/redux
Description: 基于redux 集成了redux-saga的封装
Latest version: 0.0.4

# constraint

基于redux 集成了redux-saga的封装

## 目录
```ts
src
- models (写法详见Models)
- - index.ts
- - xxxx.ts
- pages
- - app.tsx
- - xxx.tsx
- services
- - auth.ts
```

## 使用
```tsx
import { Config, Root } from '@mitod/mitod-redux/src';

import Setup from './src/index';
import models from './src/model';

const store = Config({
  models,
  dev: __DEV__,
});

const App = () => {
  return (
    <Root store={store}>
      <Setup />
    </Root>
  );
};

export default App;
```

## Models
```ts
export default {
  namespace: 'app',
  state: {
    login: false,
    loading: true,
    fetching: false
  },
  reducers: {
    updateState(state, { payload }) {
      return { ...state, ...payload };
    }
  },
  effects: {
    *loadStorage(action, { ...redux-saga }) {
      yield 'test';
    }
  }
};
```

## dispatch

```js
// 1. reducer 
dispatch({
  type:'aaaa.reducers/bbbb'
})
// 2. effect
dispatch({
  type:'aaaa.effects/bbbb'
})
// 3. 取消task
dispatch({
  type:'aaaa.effects/bbbb@@cancel'
})
```

## helper
```ts
const [xxState, loading] = (fn?) => useEffectsHelper(fn, 'xxState', 'action');

```
npm package: @mitod/rh-forms
Description: ## 使用 ```js const initialValues = {   code: {     initValue: '',     rules: [       {         required: true,         pattern: CONST_REGEXS.str6,         message: '激活码不能为空',       },     ],   }, };
Latest version: 0.0.14

# 说明

## 使用
```js
const initialValues = {
  code: {
    initValue: '',
    rules: [
      {
        required: true,
        pattern: CONST_REGEXS.str6,
        message: '激活码不能为空',
      },
    ],
  },
};

const { getFieldProps, errors } = useForms(initialValues);

const onSubmit = ()=>{
  // some code
}
const options = {
  trigger:'onChangText' // default onChange
}

<Input {...getFieldProps('code')}></Input>

<Button {...getSubmitButtonProps(onSubmit, options)}/>
```

## initialValues
validate配置

## errors
异常错误

## getFieldProps
表单校验