mirror of
https://gitlab.com/bramw/baserow.git
synced 2024-11-21 23:37:55 +00:00
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
import _ from 'lodash'
|
|
|
|
/**
|
|
* Responsible for returning the default value for a parameter,
|
|
* based on the parameter's type.
|
|
*
|
|
* @param type The parameter's type (e.g. `text` or `numeric`).
|
|
* @returns {String} The default value.
|
|
*/
|
|
export function defaultValueForParameterType(type) {
|
|
return type === 'numeric' ? 1 : 'test'
|
|
}
|
|
|
|
/**
|
|
* Responsible for detecting if an element's path parameters have diverged
|
|
* from the destination page's path parameters. This can happen if an element
|
|
* points to a page, and then the page's parameters are altered.
|
|
*
|
|
* @param {Object} element The element's properties we'll validate.
|
|
* @param {Object} pages Page of this application.
|
|
* @returns {Boolean} Whether this resolvedUrl is external.
|
|
*/
|
|
export function pathParametersInError(element, pages) {
|
|
if (
|
|
element.navigation_type === 'page' &&
|
|
!isNaN(element.navigate_to_page_id)
|
|
) {
|
|
const destinationPage = pages.find(
|
|
({ id }) => id === element.navigate_to_page_id
|
|
)
|
|
|
|
if (destinationPage) {
|
|
const destinationPageParams = destinationPage.path_params || []
|
|
const pageParams = element.page_parameters || []
|
|
|
|
const destinationPageParamNames = destinationPageParams.map(
|
|
({ name }) => name
|
|
)
|
|
const pageParamNames = pageParams.map(({ name }) => name)
|
|
|
|
if (!_.isEqual(destinationPageParamNames, pageParamNames)) {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
return false
|
|
}
|