diff --git a/packages/core/admin/admin/src/assets/images/icon_made-by-strapi.svg b/packages/core/admin/admin/src/assets/images/icon_made-by-strapi.svg new file mode 100644 index 0000000000..1c7daa3a83 --- /dev/null +++ b/packages/core/admin/admin/src/assets/images/icon_made-by-strapi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/components/PluginCard/index.js b/packages/core/admin/admin/src/pages/MarketplacePage/components/PluginCard/index.js index 4185d82711..966d156423 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/components/PluginCard/index.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/components/PluginCard/index.js @@ -16,6 +16,8 @@ import Check from '@strapi/icons/Check'; import CheckCircle from '@strapi/icons/CheckCircle'; import { useNotification, useTracking } from '@strapi/helper-plugin'; import { CopyToClipboard } from 'react-copy-to-clipboard'; +import madeByStrapiIcon from '../../../../assets/images/icon_made-by-strapi.svg'; + // Custom component to have an ellipsis after the 2nd line const EllipsisText = styled(Typography)` /* stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix */ @@ -38,6 +40,11 @@ const PluginCard = ({ plugin, installedPluginNames, useYarn }) => { ? `yarn add ${attributes.npmPackageName}` : `npm install ${attributes.npmPackageName}`; + const madeByStrapiMessage = formatMessage({ + id: 'admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi', + defaultMessage: 'Made by Strapi', + }); + return ( { {attributes.name} - {attributes.validated && ( + {attributes.validated && !attributes.madeByStrapi && ( { )} + {attributes.madeByStrapi && ( + + + + + + )} @@ -154,6 +175,7 @@ PluginCard.propTypes = { logo: PropTypes.object.isRequired, developerName: PropTypes.string.isRequired, validated: PropTypes.bool.isRequired, + madeByStrapi: PropTypes.bool.isRequired, strapiCompatibility: PropTypes.oneOf(['v3', 'v4']).isRequired, }).isRequired, }).isRequired, diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js b/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js index 72ce05b177..8109c81e82 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js @@ -61,6 +61,12 @@ describe('Marketplace page', () => { } .c39 { + margin-left: 4px; + width: 24px; + height: auto; + } + + .c40 { padding-left: 16px; } @@ -267,7 +273,7 @@ describe('Marketplace page', () => { margin-left: 8px; } - .c40 { + .c41 { color: #328048; margin-right: 8px; width: 12; @@ -318,7 +324,7 @@ describe('Marketplace page', () => { line-height: 1.43; } - .c41 { + .c42 { font-weight: 600; color: #328048; font-size: 0.875rem; @@ -1024,21 +1030,13 @@ describe('Marketplace page', () => { class="c17" tabindex="0" > - - - + Made by Strapi @@ -1090,10 +1088,10 @@ describe('Marketplace page', () => {
{ /> Installed diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js b/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js index 9be3ca816a..e3750f758f 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js @@ -50,6 +50,7 @@ const handlers = [ }, developerName: 'Hugo Sarti', validated: false, + madeByStrapi: false, strapiCompatibility: 'v3', }, }, @@ -246,6 +247,7 @@ const handlers = [ ], developerName: 'Mateusz Ziarko', validated: false, + madeByStrapi: false, strapiCompatibility: 'v4', }, }, @@ -323,6 +325,7 @@ const handlers = [ ], developerName: 'Boaz Poolman', validated: true, + madeByStrapi: false, strapiCompatibility: 'v4', }, }, @@ -401,6 +404,7 @@ const handlers = [ ], developerName: 'Ondřej Janošík', validated: false, + madeByStrapi: false, strapiCompatibility: 'v4', }, }, @@ -446,6 +450,7 @@ const handlers = [ }, developerName: 'Strapi team', validated: true, + madeByStrapi: true, strapiCompatibility: 'v4', }, }, @@ -491,6 +496,7 @@ const handlers = [ }, developerName: 'Strapi team', validated: true, + madeByStrapi: false, strapiCompatibility: 'v3', }, }, @@ -536,6 +542,7 @@ const handlers = [ }, developerName: 'Daedalus', validated: false, + madeByStrapi: false, strapiCompatibility: 'v4', }, }, diff --git a/packages/core/admin/admin/src/translations/en.json b/packages/core/admin/admin/src/translations/en.json index f4251e6c98..4e0468bdff 100644 --- a/packages/core/admin/admin/src/translations/en.json +++ b/packages/core/admin/admin/src/translations/en.json @@ -69,6 +69,7 @@ "admin.pages.MarketPlacePage.plugin.info": "Learn more", "admin.pages.MarketPlacePage.submit.plugin.link": "Submit your plugin", "admin.pages.MarketPlacePage.plugin.tooltip.verified": "Plugin verified by Strapi", + "admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "Made by Strapi", "Content Manager": "Content Manager", "Content Type Builder": "Content-Types Builder", "Documentation": "Documentation",