@nitrogenbuilder/client-react
Version:
Nitrogen Builder React Client
20 lines (15 loc) • 542 B
text/typescript
export function getDefault(prop: any, def: any) {
if (def === undefined || def === null || def === '') {
return prop;
}
if (prop === undefined || prop === null) {
return def;
}
if (typeof prop === 'object') {
if (typeof def === 'object') {
return { ...def, ...prop }; // TODO: If this is a responsive prop, merge mobile first. So if prop.mobile is set, we DO NOT use def.desktop. If prop.laptop is set, we DO use def.mobile.
}
throw new Error("Default value should be responsive, but it ain't bruh");
}
return prop;
}