Skip to content

Commit b62fd47

Browse files
author
Sharma
committed
Basic implemenattion of Default Page template
1 parent 5131ddf commit b62fd47

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import { useMemo, Children } from 'react';
2+
import type { ReactNode } from 'react';
3+
import Banner from '../../designSystemExtension/Banner';
4+
5+
export interface CommonPageProps {
6+
/** Page title */
7+
title: string;
8+
9+
/** Page icon */
10+
icon: string;
11+
12+
/** Region children */
13+
children: ReactNode | ReactNode[];
14+
15+
/** Dynamic page pconnect object */
16+
// getPConnect: () => PConnect;
17+
18+
/** Enable GetNextWork in page */
19+
enableGetNextWork?: boolean;
20+
21+
/** GetAI coaches configured in page */
22+
// coaches?: GenAICoach[];
23+
24+
/** Locale reference */
25+
localeReference: string;
26+
}
27+
interface DefaultPageProps extends CommonPageProps {
28+
/** Default page layout one or two columns */
29+
layout: 'one-column' | 'two-column' | 'wide-narrow' | 'narrow-wide' | 'dynamic';
30+
31+
/** Flag to enable banner/hero */
32+
enableBanner?: boolean;
33+
34+
/** Banner - Heading displayed */
35+
heading?: string;
36+
37+
/** Banner - Message displayed */
38+
message?: string;
39+
40+
/** Banner - Theme of the image */
41+
imageTheme?: 'light' | 'dark' | undefined;
42+
43+
/** Banner - Background image */
44+
backgroundImage?: string;
45+
46+
/** Banner - Background color */
47+
backgroundColor?: string;
48+
49+
/** Banner - Tint image */
50+
tintImage?: boolean;
51+
52+
/** Flag to enable layout model */
53+
// layoutModel?: GridLayoutModel | undefined;
54+
}
55+
56+
export default function DefaultPage({
57+
layout = 'one-column',
58+
children,
59+
enableBanner,
60+
heading = '',
61+
message = '',
62+
imageTheme,
63+
backgroundImage = '',
64+
backgroundColor = '',
65+
tintImage
66+
}: DefaultPageProps) {
67+
// const genAICoachProps = useGenAICoachObj(coaches.length ? coaches : undefined, localeReference, getPConnect());
68+
const childArray = useMemo(() => {
69+
return Children.toArray(children);
70+
}, [children]);
71+
72+
if (enableBanner) {
73+
return (
74+
<Banner
75+
variant={layout === 'one-column' ? 'two-column' : layout}
76+
a={[childArray[0]]}
77+
b={[childArray[1]]}
78+
banner={{
79+
variant: imageTheme,
80+
backgroundColor,
81+
title: heading,
82+
message,
83+
backgroundImage,
84+
tintImage
85+
}}
86+
/>
87+
);
88+
}
89+
}

packages/react-sdk-components/src/sdk-pega-component-map.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import Date from './components/field/Date';
3232
import DateTime from './components/field/DateTime';
3333
import Decimal from './components/field/Decimal';
3434
import DefaultForm from './components/template/DefaultForm';
35+
import DefaultPage from './components/template/DefaultPage/DefaultPage';
3536
import DeferLoad from './components/infra/DeferLoad';
3637
import Details from './components/template/Details/Details';
3738
import DetailsSubTabs from './components/template/Details/DetailsSubTabs';
@@ -152,6 +153,7 @@ const pegaSdkComponentMap = {
152153
DateTime,
153154
Decimal,
154155
DefaultForm,
156+
DefaultPage,
155157
DeferLoad,
156158
Details,
157159
DetailsSubTabs,

0 commit comments

Comments
 (0)