UNPKG

@enonic/react-components

Version:

Library of React components for handling Enonic XP data and page components

59 lines (58 loc) 1.86 kB
import type { ComponentDescriptor, LiteralUnion, RequestMode, TextComponent } from '@enonic-types/core'; import type { TextBaseProps } from './TextBaseProps'; export type XpRunMode = 'development' | 'production'; export interface RenderableContentType { contentType: string; mode: LiteralUnion<RequestMode>; props?: Record<string, unknown>; type: 'contentType'; } export interface RenderableError { html: string; mode: LiteralUnion<RequestMode>; path: string; type: 'error'; } export interface RenderableRegion { name: string; components: RenderableComponent[]; } export type RenderableRegions = Record<string, RenderableRegion>; export interface RenderableLayoutComponent { descriptor: ComponentDescriptor; mode: LiteralUnion<RequestMode>; path?: string; props?: Record<string, unknown>; regions: RenderableRegions; type: 'layout'; warning?: string; } export interface RenderablePageComponent { descriptor: ComponentDescriptor; error?: string; mode: LiteralUnion<RequestMode>; path: '/'; props?: Record<string, unknown>; regions: RenderableRegions; type: 'page'; warning?: string; } export interface RenderablePartComponent { descriptor: ComponentDescriptor; mode: LiteralUnion<RequestMode>; path?: string; props?: Record<string, unknown>; type: 'part'; warning?: string; } export interface RenderableWarning { html: string; mode: LiteralUnion<RequestMode>; path: string; type: 'warning'; } export type RenderableTextComponent = TextComponent & { mode: LiteralUnion<RequestMode>; props?: TextBaseProps; }; export type RenderableComponent = RenderableContentType | RenderableError | RenderableLayoutComponent | RenderablePageComponent | RenderablePartComponent | RenderableTextComponent | RenderableWarning;