feat(editor): Unify regular and trigger node creator panels (#5315)

* WIP: Merge TriggerHelperPanel with MainPanel

* WIP: Implement switching between views

* Remove logging

* WIP: Rework search

* Fix category toggling and search results display

* Fix node item description

* Sort actions based on the root view

* Adjust personalisation modal, make trigger canvas node round

* Linting fixes

* Fix filtering of API options

* Fix types and no result state

* Cleanup

* Linting fixes

* Adjust mode prop for node creator tracking

* Fix merging of core nodes and filtering of single placeholder actions

* Lint fixes

* Implement actions override, fix node creator view item spacing and increase click radius of trigger node icon

* Fix keyboard view navigation

* WIP: E2E Tests

* Address product review

* Minor fixes & cleanup

* Fix tests

* Some more test fixes

* Add specs to check actions and panels

* Update personalisation survey snapshot
This commit is contained in:
OlegIvaniv
2023-02-17 15:08:26 +01:00
committed by GitHub
parent 561882f599
commit 9a1e7b52f7
49 changed files with 1187 additions and 1339 deletions

View File

@@ -31,8 +31,8 @@ import {
IExecutionsSummary,
IAbstractEventMessage,
} from 'n8n-workflow';
import { FAKE_DOOR_FEATURES } from './constants';
import { SignInType } from './constants';
import { FAKE_DOOR_FEATURES, TRIGGER_NODE_FILTER, REGULAR_NODE_FILTER } from './constants';
import { BulkCommand, Undoable } from '@/models/history';
export * from 'n8n-design-system/types';
@@ -758,13 +758,15 @@ export interface ISubcategoryItemProps {
subcategory: string;
description: string;
key?: string;
iconType: string;
icon?: string;
defaults?: INodeParameters;
iconData?: {
type: string;
icon?: string;
fileBuffer?: string;
};
}
export interface ViewItemProps {
withTopBorder: boolean;
title: string;
description: string;
icon: string;
}
export interface INodeItemProps {
@@ -779,10 +781,11 @@ export interface IActionItemProps {
export interface ICategoryItemProps {
expanded: boolean;
category: string;
name: string;
}
export interface CreateElementBase {
category: string;
key: string;
includedByTrigger?: boolean;
includedByRegular?: boolean;
@@ -790,6 +793,7 @@ export interface CreateElementBase {
export interface NodeCreateElement extends CreateElementBase {
type: 'node';
category?: string[];
properties: INodeItemProps;
}
@@ -802,9 +806,14 @@ export interface SubcategoryCreateElement extends CreateElementBase {
type: 'subcategory';
properties: ISubcategoryItemProps;
}
export interface ViewCreateElement extends CreateElementBase {
type: 'view';
properties: ViewItemProps;
}
export interface ActionCreateElement extends CreateElementBase {
type: 'action';
category: string;
properties: IActionItemProps;
}
@@ -812,6 +821,7 @@ export type INodeCreateElement =
| NodeCreateElement
| CategoryCreateElement
| SubcategoryCreateElement
| ViewCreateElement
| ActionCreateElement;
export interface ICategoriesWithNodes {
@@ -1110,13 +1120,13 @@ export type IFakeDoorLocation =
| 'credentialsModal'
| 'workflowShareModal';
export type INodeFilterType = 'Regular' | 'Trigger' | 'All';
export type INodeFilterType = typeof REGULAR_NODE_FILTER | typeof TRIGGER_NODE_FILTER;
export interface INodeCreatorState {
itemsFilter: string;
showTabs: boolean;
showScrim: boolean;
selectedType: INodeFilterType;
rootViewHistory: INodeFilterType[];
selectedView: INodeFilterType;
}
export interface ISettingsState {