@sanity/schema
Advanced tools
Comparing version 0.104.35 to 0.104.36
@@ -6,12 +6,24 @@ 'use strict'; | ||
}); | ||
var _isUndefined2 = require('lodash/isUndefined'); | ||
var _isUndefined3 = _interopRequireDefault(_isUndefined2); | ||
var _omitBy2 = require('lodash/omitBy'); | ||
var _omitBy3 = _interopRequireDefault(_omitBy2); | ||
exports.default = guessPreviewFields; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var TITLE_CANDIDATES = ['title', 'name', 'label', 'heading', 'header', 'caption']; | ||
var DESCRIPTION_CANDIDATES = ['description'].concat(TITLE_CANDIDATES); | ||
function defaultPrepare(obj) { | ||
return obj; | ||
} | ||
function guessPreviewFields(fields) { | ||
var imageField = fields.find(function (field) { | ||
return field.type.name === 'image'; | ||
}); | ||
var stringFieldNames = fields.filter(function (field) { | ||
@@ -36,8 +48,6 @@ return field.type.name === 'string'; | ||
// Pick next as desc | ||
descField = stringFieldNames.find(function (field) { | ||
return field !== titleField; | ||
}); | ||
descField = stringFieldNames[1]; | ||
} | ||
if (!titleField) { | ||
if (!titleField && !imageField) { | ||
// last resort, pick all fields and concat them | ||
@@ -64,13 +74,11 @@ var fieldNames = fields.map(function (field) { | ||
var config = { | ||
select: { | ||
title: titleField | ||
}, | ||
prepare: defaultPrepare | ||
var select = (0, _omitBy3.default)({ | ||
title: titleField, | ||
description: descField, | ||
imageUrl: imageField && imageField.name + '.asset.url' | ||
}, _isUndefined3.default); | ||
return { | ||
select: select | ||
}; | ||
if (descField) { | ||
// Only set this if we have found a description field | ||
config.select.description = descField; | ||
} | ||
return config; | ||
} |
@@ -22,2 +22,6 @@ 'use strict'; | ||
var _guessPreviewConfig = require('../preview/guessPreviewConfig'); | ||
var _guessPreviewConfig2 = _interopRequireDefault(_guessPreviewConfig); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -63,3 +67,10 @@ | ||
(0, _utils.lazyGetter)(parsed, 'preview', (0, _createPreviewGetter2.default)(subTypeDef, parsed)); | ||
(0, _utils.lazyGetter)(parsed, 'preview', function () { | ||
var guessedConfig = (0, _guessPreviewConfig2.default)(subTypeDef.fields || []); | ||
return { | ||
select: _extends({}, guessedConfig.select, { | ||
imageUrl: 'asset.url' | ||
}) | ||
}; | ||
}); | ||
@@ -66,0 +77,0 @@ return subtype(parsed); |
{ | ||
"name": "@sanity/schema", | ||
"version": "0.104.35", | ||
"version": "0.104.36", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
142522
5378
61
20
31
7
319