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.
44 lines
2.0 KiB
JavaScript
44 lines
2.0 KiB
JavaScript
import Note from './Note.js';
|
|
import {new_note_handler, search_term_change_handler, sorting_change_handler, load_notes, new_bin_handler, bin_name_change_handler, bin_name_editing_toggle_button_handler, bin_name_commit_handler} from './handlers/App.js';
|
|
|
|
|
|
function App(vnode_init){
|
|
const {state, dispatch} = vnode_init.attrs;
|
|
const o = function(handler){ return handler.bind(null, state, dispatch); }
|
|
//load_notes(state, dispatch);
|
|
return {
|
|
view: function(vnode){
|
|
const s = vnode.attrs.state;
|
|
return m('.app', {key: 'app'}, [
|
|
m('.top', {key: 'top'}, [
|
|
m('.top-left', {key: 'top-left'}, [
|
|
m('button', {key: 'button', onclick: o(new_note_handler)}, 'New Note...'),
|
|
m('input.search', {key: 'search', value: s.search_term, onkeyup: o(search_term_change_handler)}),
|
|
m('select.sorting', {key: 'sorting', value: s.sorting, onchange: o(sorting_change_handler)}, [
|
|
m('option', {key: 'new->old', value: 'new->old'}, 'Newest -> Oldest'),
|
|
m('option', {key: 'old->new', value: 'old->new'}, 'Oldest -> Newest')
|
|
])
|
|
]),
|
|
m('.top-right', {key: 'top-right'}, [
|
|
(s.is_editing_bin_name
|
|
? m('input.bin-name-textbox', {key: 'bin-name-textbox', value: s.temp_bin_name, onchange: o(bin_name_change_handler)})
|
|
: m('.bin-name', {key: 'bin-name'}, s.bin.name)
|
|
),
|
|
m('button', {key: 'new-bin-button', onclick: o(new_bin_handler)}, 'New Bin...'),
|
|
(s.is_editing_bin_name
|
|
? m('button', {key:'save-bin-name-button', onclick: o(bin_name_commit_handler)}, 'Save')
|
|
: m('button', {key:'rename-bin-button', onclick: o(bin_name_editing_toggle_button_handler)}, 'Rename')
|
|
)
|
|
])
|
|
]),
|
|
m('.main', {key: 'main'}, [
|
|
m('.notes', s.notes.map(note_state =>
|
|
m(Note, {state, note_state, dispatch, key: note_state.note.id})
|
|
))
|
|
])
|
|
]);
|
|
}
|
|
};
|
|
}
|
|
|
|
export default App; |