36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
import gridListScreen from "./gridListScreen"
|
|
import gridDetailsScreen from "./gridDetailsScreen"
|
|
import createFromScratchScreen from "./createFromScratchScreen"
|
|
import formScreen from "./formScreen"
|
|
|
|
const allTemplates = datasources => [
|
|
...gridListScreen(datasources),
|
|
...gridDetailsScreen(datasources),
|
|
...formScreen(datasources),
|
|
]
|
|
|
|
// Allows us to apply common behaviour to all create() functions
|
|
const createTemplateOverride = template => () => {
|
|
const screen = template.create()
|
|
screen.name = screen.props._id
|
|
screen.routing.route = screen.routing.route.toLowerCase()
|
|
screen.template = template.id
|
|
return screen
|
|
}
|
|
|
|
export default datasources => {
|
|
const enrichTemplate = template => ({
|
|
...template,
|
|
create: createTemplateOverride(template),
|
|
})
|
|
const fromScratch = enrichTemplate(createFromScratchScreen)
|
|
const tableTemplates = allTemplates(datasources).map(enrichTemplate)
|
|
|
|
return [
|
|
fromScratch,
|
|
...tableTemplates.sort((templateA, templateB) => {
|
|
return templateA.name > templateB.name ? 1 : -1
|
|
}),
|
|
]
|
|
}
|