Refactor table settings migration slightly and add missing await keyword

This commit is contained in:
Andrew Kingston 2022-11-24 14:23:27 +00:00
parent 3480f6741c
commit 9000349360
1 changed files with 13 additions and 11 deletions

View File

@ -39,25 +39,25 @@ export const run = async (appDb: any) => {
} }
// Recursively update any relevant components and mutate the screen docs // Recursively update any relevant components and mutate the screen docs
screens.forEach((screen: any) => { for (let screen of screens) {
migrateTableSettings(screen.props, screen) const changed = migrateTableSettings(screen.props)
// Save screen if we updated it // Save screen if we updated it
if (screen.touched) { if (changed) {
delete screen.touched await appDb.put(screen)
appDb.put(screen)
console.log( console.log(
`Screen ${screen.routing?.route} contained table settings which were migrated` `Screen ${screen.routing?.route} contained table settings which were migrated`
) )
} }
}) }
} }
// Recursively searches and mutates a screen doc to migrate table component // Recursively searches and mutates a screen doc to migrate table component
// and table block settings // and table block settings
const migrateTableSettings = (component: any, screen: any) => { const migrateTableSettings = (component: any) => {
let changed = false
if (!component) { if (!component) {
return return changed
} }
// Migration 1: migrate table row click settings // Migration 1: migrate table row click settings
@ -70,7 +70,7 @@ const migrateTableSettings = (component: any, screen: any) => {
const column = linkColumn || "_id" const column = linkColumn || "_id"
const action = convertLinkSettingToAction(linkURL, !!linkPeek, column) const action = convertLinkSettingToAction(linkURL, !!linkPeek, column)
if (action) { if (action) {
screen.touched = true changed = true
component.onClick = action component.onClick = action
if (component._component.endsWith("/tableblock")) { if (component._component.endsWith("/tableblock")) {
component.clickBehaviour = "actions" component.clickBehaviour = "actions"
@ -93,7 +93,7 @@ const migrateTableSettings = (component: any, screen: any) => {
!!titleButtonPeek !!titleButtonPeek
) )
if (action) { if (action) {
screen.touched = true changed = true
component.onClickTitleButton = action component.onClickTitleButton = action
component.titleButtonClickBehaviour = "actions" component.titleButtonClickBehaviour = "actions"
} }
@ -102,8 +102,10 @@ const migrateTableSettings = (component: any, screen: any) => {
// Recurse down the tree as needed // Recurse down the tree as needed
component._children?.forEach((child: any) => { component._children?.forEach((child: any) => {
migrateTableSettings(child, screen) const childChanged = migrateTableSettings(child)
changed = changed || childChanged
}) })
return changed
} }
// Util ti convert the legacy settings into a navigation action structure // Util ti convert the legacy settings into a navigation action structure