The BasicPattern component is really just an example of how to relate views, editors, and lists.
Whether extending these regularly is a good idea remains to be seen.
Pattern:
constructor:
editor = new BasicEditor
list = new BasicList
attributes:
fields: set editor.fields
fields: set list.fields
getters & setters:
.data = array of objects
.data = [] ➡️ List.data = []
listeners:
objectcreated: List.add(object)
add(objects):
List:
constructor:
this.view = new BasicView
attributes:
fields: set editor.fields
fields: set list.fields
getters & setters:
set data(objects){ this.objects = objects }
get data { return this.objects }
methods:
add(object) => data.push(object)
render:
this.data.forEach(object => {
let view = new this.view
view.data = object
view.render()
this.querySelector('main').append(view)
})
View:
construct:
Editor:
get data ➡️ object
onsubmit
dispatch objectcreated