commit
2fc042cfb5
|
@ -24,6 +24,7 @@ import {
|
|||
saveCurrentPreviewItem as _saveCurrentPreviewItem,
|
||||
saveScreenApi as _saveScreenApi,
|
||||
regenerateCssForCurrentScreen,
|
||||
regenerateCssForScreen,
|
||||
generateNewIdsForComponent,
|
||||
getComponentDefinition,
|
||||
} from "../storeUtils"
|
||||
|
@ -98,6 +99,29 @@ const setPackage = (store, initial) => async pkg => {
|
|||
},
|
||||
}
|
||||
|
||||
// if the app has just been created
|
||||
// we need to build the CSS and save
|
||||
if (pkg.justCreated) {
|
||||
const generateInitialPageCss = async name => {
|
||||
const page = pkg.pages[name]
|
||||
regenerateCssForScreen(page)
|
||||
for (let screen of page._screens) {
|
||||
regenerateCssForScreen(screen)
|
||||
}
|
||||
|
||||
await api.post(`/_builder/api/${pkg.application._id}/pages/${name}`, {
|
||||
page: {
|
||||
componentLibraries: pkg.application.componentLibraries,
|
||||
...page,
|
||||
},
|
||||
screens: page._screens,
|
||||
})
|
||||
}
|
||||
generateInitialPageCss("main")
|
||||
generateInitialPageCss("unauthenticated")
|
||||
pkg.justCreated = false
|
||||
}
|
||||
|
||||
initial.libraries = pkg.application.componentLibraries
|
||||
initial.components = await fetchComponentLibDefinitions(pkg.application._id)
|
||||
initial.name = pkg.application.name
|
||||
|
@ -156,8 +180,8 @@ const createScreen = store => async screen => {
|
|||
state.currentPreviewItem = screen
|
||||
state.currentComponentInfo = screen.props
|
||||
state.currentFrontEndType = "screen"
|
||||
savePromise = _saveScreen(store, state, screen)
|
||||
regenerateCssForCurrentScreen(state)
|
||||
savePromise = _saveScreen(store, state, screen)
|
||||
return state
|
||||
})
|
||||
await savePromise
|
||||
|
|
|
@ -79,10 +79,12 @@ export const walkProps = (props, action, cancelToken = null) => {
|
|||
}
|
||||
}
|
||||
|
||||
export const regenerateCssForScreen = screen => {
|
||||
screen._css = generate_screen_css([screen.props])
|
||||
}
|
||||
|
||||
export const regenerateCssForCurrentScreen = state => {
|
||||
state.currentPreviewItem._css = generate_screen_css([
|
||||
state.currentPreviewItem.props,
|
||||
])
|
||||
regenerateCssForScreen(state.currentPreviewItem)
|
||||
return state
|
||||
}
|
||||
|
||||
|
|
|
@ -154,6 +154,7 @@
|
|||
const pkg = await applicationPkg.json()
|
||||
if (applicationPkg.ok) {
|
||||
backendUiStore.actions.reset()
|
||||
pkg.justCreated = true
|
||||
await store.setPackage(pkg)
|
||||
automationStore.actions.fetch()
|
||||
} else {
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
|
||||
export let screens = []
|
||||
|
||||
$: sortedScreens = screens.sort(
|
||||
(s1, s2) => s1.props._instanceName > s2.props._instanceName
|
||||
)
|
||||
/*
|
||||
Using a store here seems odd....
|
||||
have a look in the <ComponentsHierarchyChildren /> code file to find out why.
|
||||
|
@ -24,12 +27,15 @@
|
|||
const joinPath = join("/")
|
||||
|
||||
const normalizedName = name =>
|
||||
pipe(name, [
|
||||
trimCharsStart("./"),
|
||||
trimCharsStart("~/"),
|
||||
trimCharsStart("../"),
|
||||
trimChars(" "),
|
||||
])
|
||||
pipe(
|
||||
name,
|
||||
[
|
||||
trimCharsStart("./"),
|
||||
trimCharsStart("~/"),
|
||||
trimCharsStart("../"),
|
||||
trimChars(" "),
|
||||
]
|
||||
)
|
||||
|
||||
const changeScreen = screen => {
|
||||
store.setCurrentScreen(screen.props._instanceName)
|
||||
|
@ -38,7 +44,7 @@
|
|||
</script>
|
||||
|
||||
<div class="root">
|
||||
{#each screens as screen}
|
||||
{#each sortedScreens as screen}
|
||||
<div
|
||||
class="budibase__nav-item screen-header-row"
|
||||
class:selected={$store.currentComponentInfo._id === screen.props._id}
|
||||
|
|
|
@ -31,7 +31,9 @@ export const screenRouter = ({ screens, onScreenSelected, window }) => {
|
|||
function route(url) {
|
||||
const _url = makeRootedPath(url.state || url)
|
||||
current = routes.findIndex(
|
||||
p => p !== "*" && new RegExp("^" + p + "$").test(_url)
|
||||
p =>
|
||||
p !== "*" &&
|
||||
new RegExp("^" + p.toLowerCase() + "$").test(_url.toLowerCase())
|
||||
)
|
||||
|
||||
const params = {}
|
||||
|
|
Loading…
Reference in New Issue