@contentful/dam-app-base
is a library that helps you to quickly build an app to integrate your DAM (Digital Asset Management) system of choice with Contentful. Many DAM integrations are very similar, therefore this library provides the boilerplate for your app and you only need to add the code for your specific service.
This library creates an app that can be used in the entry field location to select assets from your DAM service. The library also provides a configuration screen for easy customization.
import { setup } from '@contentful/dam-app-base';
setup({
cta: 'Select assets',
name: 'My DAM App',
logo: 'https://example.com/logo.svg',
color: '#d7f0fa',
description: 'My example DAM App',
parameterDefinitions: [
{
"id": "folder",
"type": "Symbol",
"name": "Folder",
"description": "Preselected folder when selecting assets.",
"required": true
}
],
validateParameters: () => null,
makeThumbnail: asset => asset.thumbnailUrl,
renderDialog: async (sdk) => {
const config = sdk.parameters.invocation;
const container = document.createElement('div');
container.innerHTML = `<iframe src="https://example.com/dam?folder=${config.folder}" />`;
document.body.appendChild(container);
},
openDialog: async (sdk, currentValue, config) => {
return await sdk.dialogs.openCurrentApp({
parameters: { config, currentValue },
});
},
isDisabled: () => false
});
These Contentful apps use @contentful/dam-app-base
. Look at their source code to learn how they utilize this library: