UNPKG

adminjs

Version:
85 lines (84 loc) 2.17 kB
import type { ButtonProps, IconProps, VariantType } from '@adminjs/design-system'; import { ParsedLayoutElement } from '../../../backend/utils/layout-element-parser/index.js'; /** * JSON representation of an {@link Action} * @see Action * @subcategory Frontend */ export interface ActionJSON { /** * Unique action name */ name: string; /** * Type of an action */ actionType: 'record' | 'resource' | 'bulk'; /** * Action icon */ icon?: IconProps['icon']; /** * Action label - visible on the frontend */ label: string; /** * Guarding message which should be presented in `alert()` after clicking the action button */ guard?: string; /** * If action should have a filter (for resource actions) */ showFilter: boolean; /** * If action should have resource actions buttons displayed above action header. * * Defaults to `true` */ showResourceActions: boolean; /** * Action component. When set to false action will be invoked immediately after clicking it, * to put in another words: there wont be an action view */ component?: string | false | null; /** * Whether given action should be seen in a drawer */ showInDrawer: boolean; /** * Whether given action have an action header */ hideActionHeader: boolean; /** * containerWidth passed from the action setup. */ containerWidth: string | number | Array<string | number>; /** * Id of a resource to which given action belongs. */ resourceId: string; /** * Parsed layout passed in {@link Action#layout} */ layout: Array<ParsedLayoutElement> | null; /** * Action variant */ variant: VariantType; /** * Action color */ color?: ButtonProps['color']; /** * If action is nested */ parent: string | null; /** * Indicates if action has action handler defined */ hasHandler: boolean; /** * Any custom options passed from the {@link Action} configuration. */ custom: Record<string, any>; }