UNPKG

@firecms/core

Version:

Awesome Firebase/Firestore-based headless open-source CMS

38 lines (34 loc) 1.28 kB
import { Properties, PropertiesOrBuilders } from "../types"; import { isPropertyBuilder } from "./entities"; export function makePropertiesEditable(properties: Properties) { Object.keys(properties).forEach((key) => { const property = properties[key]; if (property) { property.editable = true; if (property.dataType === "map" && property.properties) { makePropertiesEditable(property.properties as Properties); } } }); return properties; } export function makePropertiesNonEditable(properties: PropertiesOrBuilders): PropertiesOrBuilders { return Object.entries(properties).reduce((acc, [key, property]) => { if (!isPropertyBuilder(property) && property.dataType === "map" && property.properties) { const updated = { ...property, properties: makePropertiesNonEditable(property.properties as PropertiesOrBuilders) }; acc[key] = updated; } if (isPropertyBuilder(property)) { acc[key] = property; } else { acc[key] = { ...property, editable: false }; } return acc; }, {} as PropertiesOrBuilders); }