@orchestrator-ui/orchestrator-ui-components
Version:
Library of UI Components used to display the workflow orchestrator frontend
43 lines (35 loc) • 1.39 kB
text/typescript
import { ReactElement, ReactNode } from 'react';
import { Slice, createSlice } from '@reduxjs/toolkit';
import { FieldValue, RenderableFieldValue, SubscriptionDetail } from '@/types';
export type ValueOverrideFunction = (
fieldValue: FieldValue | RenderableFieldValue,
allFieldValues: FieldValue[] | RenderableFieldValue[],
) => ReactNode;
export type ValueOverrideConfiguration = Record<string, ValueOverrideFunction>;
export type WfoSubscriptionDetailGeneralConfiguration = {
id: string;
node: ReactNode;
};
export type OrchestratorComponentOverride = {
startPage?: {
summaryCardConfigurationOverride?: (
defaultItems: ReactElement[],
) => ReactElement[];
};
subscriptionDetail?: {
valueOverrides?: ValueOverrideConfiguration;
generalSectionConfigurationOverride?: (
defaultSections: WfoSubscriptionDetailGeneralConfiguration[],
subscriptionDetail: SubscriptionDetail,
) => WfoSubscriptionDetailGeneralConfiguration[];
};
};
type OrchestratorComponentOverrideSlice = Slice<OrchestratorComponentOverride>;
export const getOrchestratorComponentOverrideSlice = (
config: OrchestratorComponentOverride,
): OrchestratorComponentOverrideSlice =>
createSlice({
name: 'orchestratorComponentOverride',
initialState: config,
reducers: {},
});