You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pastebin/nginx/public_html/handlers/App.js

82 lines
2.5 KiB
JavaScript

import nanoid from '../nanoid.min.js';
import api from '../api.js';
const load_notes = function(state, dispatch){
api.post('/load-notes', {bin_id: state.bin.id})
.then(res=>{
dispatch('notes-loaded', 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('update-search-results', res.notes);
});
};
const new_note_handler = function(state, dispatch){
dispatch('add-note', {id: nanoid(), date: Date.now()});
};
const search_term_change_handler = function(state, dispatch, e){
if(e.code === 'Enter'){
runSearch(state, dispatch);
}
else{
dispatch('update-search-term', e.target.value);
}
};
const sorting_change_handler = function(state, dispatch, e){
runSearch(state, dispatch);
dispatch('update-sorting', e.target.value);
};
const new_bin_handler = function(state, dispatch){
const id = nanoid();
// change browser location in address bar:
window.history.pushState(null,'','#'+id);
dispatch('new-bin', {id});
};
const username_change_handler = function(state, dispatch, e){
dispatch('update-username', e.target.value);
};
const password_change_handler = function(state, dispatch, e){
dispatch('update-password', e.target.value);
};
const login_request_handler = function(state, dispatch, e){
dispatch('login-requested');
api.post('/login', {username: state.login.username, password: state.login.password})
.then(res=>{
if(res.success===true){
dispatch('login-succeeded', res.user, res.session_id);
}
else{
dispatch('login-failed');
}
})
.catch(e=>{ dispatch('login-failed'); });
};
const logout_request_handler = function(state, dispatch, e){
dispatch('logout-requested');
api.post('/logout', {session_id: state.login.session_id});
};
const bin_name_editing_toggle_button_handler = function(state, dispatch){
dispatch('update-bin-name-editing', !state.is_editing_bin_name);
};
const bin_name_change_handler = function(state, dispatch, e){
dispatch('update-bin-name', e.target.value);
};
const bin_name_commit_handler = function(state, dispatch){
dispatch('commit-bin-name');
};
export {new_note_handler,
search_term_change_handler,
sorting_change_handler,
load_notes,
new_bin_handler,
username_change_handler,
password_change_handler,
login_request_handler,
logout_request_handler,
bin_name_editing_toggle_button_handler,
bin_name_change_handler,
bin_name_commit_handler
};