import nanoid from '../nanoid.min.js'; //import api from '../api.js'; import api from '../api-stub.js'; const load_notes = function(state, dispatch){ api.post('/load-notes', {bin_id: state.bin.id}) .then(res=>{ dispatch({type: 'notes-loaded', payload: res.notes}); }); }; const runSearch = function(state, dispatch){ api.post('/search', {search_term: state.search_term, sorting: state.sorting, bin_id: state.bin.id}) .then(res=>{ dispatch({type:'update-search-results', payload: res.notes}); }); }; const new_note_handler = function(state, dispatch){ dispatch({type:'add-note', payload:{id: nanoid(), date: Date.now()}}); }; const search_term_change_handler = function(state, dispatch, e){ if(e.code === 'Enter'){ runSearch(state, dispatch); } else{ dispatch({type:'update-search-term', payload: e.target.value}); } }; const sorting_change_handler = function(state, dispatch, e){ runSearch(state, dispatch); dispatch({type:'update-sorting', payload: e.target.value}); }; const new_bin_handler = function(state, dispatch){ const id = nanoid(); // TODO: consolidate: this will cause two redraws: dispatch({type: 'new-bin', payload:{id}}); dispatch({type: 'notes-loaded', payload: []}); }; export {new_note_handler, search_term_change_handler, sorting_change_handler, load_notes, new_bin_handler};