search.js
2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import {sendSearch} from '../lib/api'
import {Alert} from 'react-native'
import {readTest} from '../lib/readTest';
import sqlite from '../lib/sqlite';
const LOAD = 'search/LOAD';
const CHANGE = 'search/CHANGE';
const SUCCESS = 'search/SUCCESS';
const FAILURE = 'search/FAILURE';
const START = 'search/START';
export const change = (text) => ({
type: CHANGE,
text,
})
export const load = () => async (dispatch) =>{
let past = await sqlite.select();
past = await past.map( elem => elem.score );
dispatch({type:LOAD, past: past})
}
export const submit = (text) => async (dispatch) => {
dispatch( {type:START});
try{
const response = await readTest()
//const response = await sendSearch(text.nativeEvent.text);
let tempScore = scoring(response.return_data);
await sqlite.insert(tempScore.full);
let past = await sqlite.select();
past = past.map( elem => elem.score );
//dispatch( { type:SUCCESS, result:response }
dispatch( { type:SUCCESS, result:response, past: past, score:tempScore})
}
catch(err){
console.log(err);
/* Alert.alert(
'error',
[
{text: '확인', onPress: () => {}},
],
) */
dispatch({ type:FAILURE })
}
}
const initialState = {
query: '',
result: {
return_data: {
searchResults: []
}
},
score : {},
isLoading: false,
pastScore: [10,10,10,10,10,10],
};
export default ToggleLoading = (state = initialState, action) => {
switch (action.type) {
case CHANGE:
return {...state, query: action.text};
case SUCCESS:
return {...state, isLoading:false, score: action.score,
result: action.result, pastScore: action.past};
case FAILURE:
return {...state, isLoading:false};
case START:
return {...state, query:'',isLoading:true}
case LOAD:
return {...state,pastScore: action.past}
default:
return state;
}
}