38 lines
992 B
JavaScript

'use strict';
const { intersection, prop } = require('lodash/fp');
const { getRelationalFields } = require('@strapi/utils').relations;
module.exports = ({ strapi }) => {
const sendDidConfigureListView = async (contentType, configuration, adminUser) => {
const displayedFields = prop('length', configuration.layouts.list);
const relationalFields = getRelationalFields(contentType);
const displayedRelationalFields = intersection(
relationalFields,
configuration.layouts.list
).length;
const data = {
adminUser,
eventProperties: { containsRelationalFields: !!displayedRelationalFields },
};
if (data.eventProperties.containsRelationalFields) {
Object.assign(data.eventProperties, {
displayedFields,
displayedRelationalFields,
});
}
try {
await strapi.telemetry.send('didConfigureListView', data);
} catch (e) {
// silence
}
};
return {
sendDidConfigureListView,
};
};