Improve types
This commit is contained in:
parent
9c24aba250
commit
8c538676aa
|
@ -21,7 +21,7 @@ import { getSettingsDefinition } from "@budibase/frontend-core"
|
||||||
function reduceBy<TItem extends {}, TKey extends keyof TItem>(
|
function reduceBy<TItem extends {}, TKey extends keyof TItem>(
|
||||||
key: TKey,
|
key: TKey,
|
||||||
list: TItem[]
|
list: TItem[]
|
||||||
): Record<string, any> {
|
): Record<string, TItem> {
|
||||||
return list.reduce(
|
return list.reduce(
|
||||||
(result, item) => ({
|
(result, item) => ({
|
||||||
...result,
|
...result,
|
||||||
|
@ -139,21 +139,23 @@ function getMissingRequiredSettings(
|
||||||
|
|
||||||
const settings = getSettingsDefinition(definition)
|
const settings = getSettingsDefinition(definition)
|
||||||
|
|
||||||
const missingRequiredSettings = settings.filter((setting: any) => {
|
const missingRequiredSettings = settings.filter(setting => {
|
||||||
let empty =
|
let empty =
|
||||||
component[setting.key] == null || component[setting.key] === ""
|
component[setting.key] == null || component[setting.key] === ""
|
||||||
let missing = setting.required && empty
|
let missing = setting.required && empty
|
||||||
|
|
||||||
// Check if this setting depends on another, as it may not be required
|
// Check if this setting depends on another, as it may not be required
|
||||||
if (setting.dependsOn) {
|
if (setting.dependsOn && typeof setting.dependsOn !== "string") {
|
||||||
const dependsOnKey = setting.dependsOn.setting || setting.dependsOn
|
const dependsOnKey = setting.dependsOn.setting || setting.dependsOn
|
||||||
const dependsOnValue = setting.dependsOn.value
|
const dependsOnValue = setting.dependsOn.value
|
||||||
const realDependentValue = component[dependsOnKey]
|
const realDependentValue =
|
||||||
|
component[dependsOnKey as keyof typeof component]
|
||||||
|
|
||||||
const sectionDependsOnKey =
|
const sectionDependsOnKey =
|
||||||
setting.sectionDependsOn?.setting || setting.sectionDependsOn
|
setting.sectionDependsOn?.setting || setting.sectionDependsOn
|
||||||
const sectionDependsOnValue = setting.sectionDependsOn?.value
|
const sectionDependsOnValue = setting.sectionDependsOn?.value
|
||||||
const sectionRealDependentValue = component[sectionDependsOnKey]
|
const sectionRealDependentValue =
|
||||||
|
component[sectionDependsOnKey as keyof typeof component]
|
||||||
|
|
||||||
if (dependsOnValue == null && realDependentValue == null) {
|
if (dependsOnValue == null && realDependentValue == null) {
|
||||||
return false
|
return false
|
||||||
|
@ -174,7 +176,7 @@ function getMissingRequiredSettings(
|
||||||
})
|
})
|
||||||
|
|
||||||
if (missingRequiredSettings?.length) {
|
if (missingRequiredSettings?.length) {
|
||||||
result[component._id!] = missingRequiredSettings.map((s: any) => ({
|
result[component._id!] = missingRequiredSettings.map(s => ({
|
||||||
componentId: component._id!,
|
componentId: component._id!,
|
||||||
key: s.key,
|
key: s.key,
|
||||||
message: `Add the <mark>${s.label}</mark> setting to start using your component`,
|
message: `Add the <mark>${s.label}</mark> setting to start using your component`,
|
||||||
|
@ -255,9 +257,7 @@ export function findComponentsBySettingsType(
|
||||||
|
|
||||||
const definition = definitions[component._component]
|
const definition = definitions[component._component]
|
||||||
|
|
||||||
const setting = definition?.settings?.find((s: any) =>
|
const setting = definition?.settings?.find(s => typesArray.includes(s.type))
|
||||||
typesArray.includes(s.type)
|
|
||||||
)
|
|
||||||
if (setting) {
|
if (setting) {
|
||||||
result.push({
|
result.push({
|
||||||
component,
|
component,
|
||||||
|
|
|
@ -21,13 +21,16 @@ export interface ComponentSetting {
|
||||||
label?: string
|
label?: string
|
||||||
section?: string
|
section?: string
|
||||||
name?: string
|
name?: string
|
||||||
|
required?: boolean
|
||||||
defaultValue?: any
|
defaultValue?: any
|
||||||
selectAllFields?: boolean
|
selectAllFields?: boolean
|
||||||
resetOn?: string | string[]
|
resetOn?: string | string[]
|
||||||
settings?: ComponentSetting[]
|
settings?: ComponentSetting[]
|
||||||
dependsOn?:
|
dependsOn?: {
|
||||||
| string
|
setting: string
|
||||||
| {
|
value: string
|
||||||
|
}
|
||||||
|
sectionDependsOn?: {
|
||||||
setting: string
|
setting: string
|
||||||
value: string
|
value: string
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue