1
0
mirror of https://gitlab.com/bramw/baserow.git synced 2024-11-21 23:37:55 +00:00
bramw_baserow/web-frontend/modules/builder/utils/params.js
2024-10-17 15:49:51 +00:00

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
}