@enonic/react-components
Version:
Library of React components for handling Enonic XP data and page components
59 lines (58 loc) • 1.86 kB
TypeScript
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;