From 3de062202d08947d40d9617a806e9c10a9eb291e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milorad=20FIlipovi=C4=87?= Date: Mon, 1 Aug 2022 22:35:45 +0200 Subject: [PATCH] refactor(editor): Implemented NodeIcon design system component (#3727) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ Implemented `NodeIcon` design system component * ✨ Updated editor to use N8nNodeIcon component, removed HoverableNodeIcon * ➕ Adding design system types import to editor-ui * ✔️ Fixing linting errors * 👌 Updating `NodeIcon` component based on review feedback * 👌 Minor changes to `NodeIcon` component * 👌 Removing unnecessary `Vue.use statement * 🐛 Fixing unknown node icon bug and adding click listener to node icon component * 💄 Removing unnecessary pointer cursor from the `NodeIcon` component * 💄 Adding pointer cursor to node icons in the template details * 💄 Updating node icon size in collections page --- .../N8nNodeIcon/NodeIcon.stories.ts | 40 ++++ .../src/components/N8nNodeIcon/NodeIcon.vue | 135 ++++++++++++++ .../src/components/N8nNodeIcon/index.ts | 3 + .../design-system/src/components/index.ts | 2 + .../editor-ui/src/components/NodeIcon.vue | 171 +++++++----------- .../editor-ui/src/components/NodeList.vue | 19 +- .../src/components/TemplateDetails.vue | 14 +- packages/editor-ui/src/plugins/components.ts | 2 + packages/editor-ui/src/shims-vue.d.ts | 1 + 9 files changed, 259 insertions(+), 128 deletions(-) create mode 100644 packages/design-system/src/components/N8nNodeIcon/NodeIcon.stories.ts create mode 100644 packages/design-system/src/components/N8nNodeIcon/NodeIcon.vue create mode 100644 packages/design-system/src/components/N8nNodeIcon/index.ts diff --git a/packages/design-system/src/components/N8nNodeIcon/NodeIcon.stories.ts b/packages/design-system/src/components/N8nNodeIcon/NodeIcon.stories.ts new file mode 100644 index 0000000000..5a6ab12ba2 --- /dev/null +++ b/packages/design-system/src/components/N8nNodeIcon/NodeIcon.stories.ts @@ -0,0 +1,40 @@ +/* tslint:disable:variable-name */ +import N8nNodeIcon from "./NodeIcon.vue"; +import { StoryFn } from '@storybook/vue'; + +export default { + title: 'Atoms/NodeIcon', + component: N8nNodeIcon, +}; + +const DefaultTemplate: StoryFn = (args, { argTypes }) => ({ + props: Object.keys(argTypes), + components: { + N8nNodeIcon, + }, + template: '', +}); + +export const FileIcon = DefaultTemplate.bind({}); +FileIcon.args = { + type: 'file', + src: 'https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/cartman.svg', + size: 200, +}; + +export const FontIcon = DefaultTemplate.bind({}); +FontIcon.args = { + type: 'icon', + name: 'cogs', + size: 200, +}; + +export const Hoverable = DefaultTemplate.bind({}); +Hoverable.args = { + type: 'icon', + name: 'heart', + color: 'red', + size: 200, + nodeTypeName: 'We ❤️ n8n', + showTooltip: true, +}; diff --git a/packages/design-system/src/components/N8nNodeIcon/NodeIcon.vue b/packages/design-system/src/components/N8nNodeIcon/NodeIcon.vue new file mode 100644 index 0000000000..dcee0d6338 --- /dev/null +++ b/packages/design-system/src/components/N8nNodeIcon/NodeIcon.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/packages/design-system/src/components/N8nNodeIcon/index.ts b/packages/design-system/src/components/N8nNodeIcon/index.ts new file mode 100644 index 0000000000..c251d7fed1 --- /dev/null +++ b/packages/design-system/src/components/N8nNodeIcon/index.ts @@ -0,0 +1,3 @@ +import N8nNodeIcon from './NodeIcon.vue'; + +export default N8nNodeIcon; diff --git a/packages/design-system/src/components/index.ts b/packages/design-system/src/components/index.ts index c6deea05fc..a0d2487308 100644 --- a/packages/design-system/src/components/index.ts +++ b/packages/design-system/src/components/index.ts @@ -57,6 +57,7 @@ import N8nLoading from './N8nLoading'; import N8nMarkdown from './N8nMarkdown'; import N8nMenu from './N8nMenu'; import N8nMenuItem from './N8nMenuItem'; +import N8nNodeIcon from './N8nNodeIcon'; import N8nNotice from './N8nNotice'; import N8nLink from './N8nLink'; import N8nOption from './N8nOption'; @@ -103,6 +104,7 @@ export { N8nMenu, N8nMenuItem, N8nNotice, + N8nNodeIcon, N8nOption, N8nPulse, N8nRadioButtons, diff --git a/packages/editor-ui/src/components/NodeIcon.vue b/packages/editor-ui/src/components/NodeIcon.vue index 6ff2e910a0..6d397432d3 100644 --- a/packages/editor-ui/src/components/NodeIcon.vue +++ b/packages/editor-ui/src/components/NodeIcon.vue @@ -1,34 +1,37 @@ diff --git a/packages/editor-ui/src/components/NodeList.vue b/packages/editor-ui/src/components/NodeList.vue index bf9f04cea1..70deedc560 100644 --- a/packages/editor-ui/src/components/NodeList.vue +++ b/packages/editor-ui/src/components/NodeList.vue @@ -1,7 +1,11 @@