@@ -2,6 +2,7 @@ import { Event, StyleClassHelper } from '@ui5/webcomponents-react-base';
22import React , { forwardRef , ReactElement , ReactNode , Ref , useCallback , useMemo } from 'react' ;
33import { createUseStyles } from 'react-jss' ;
44import { CommonProps } from '../../interfaces/CommonProps' ;
5+ import { JSSTheme } from '../../interfaces/JSSTheme' ;
56import { Bar } from '../../lib/Bar' ;
67import { Button } from '../../lib/Button' ;
78import { ButtonDesign } from '../../lib/ButtonDesign' ;
@@ -23,7 +24,7 @@ export interface PagePropTypes extends CommonProps {
2324 children : ReactElement < any > | Array < ReactElement < any > > | ReactNode ;
2425}
2526
26- const useStyles = createUseStyles < string > ( styles , {
27+ const useStyles = createUseStyles < JSSTheme , keyof ReturnType < typeof styles > > ( styles , {
2728 name : 'Page'
2829} ) ;
2930
@@ -55,26 +56,24 @@ const Page = forwardRef((props: PagePropTypes, ref: Ref<HTMLDivElement>) => {
5556 [ onNavButtonPress ]
5657 ) ;
5758
58- const renderBackButton = useMemo (
59- ( ) => ( ) => {
60- if ( showBackButton ) {
61- return (
62- < Button icon = "navigation-left-arrow" design = { ButtonDesign . Transparent } onClick = { handleNavBackButtonPress } />
63- ) ;
64- }
65- return null ;
66- } ,
67- [ showBackButton ]
68- ) ;
59+ const renderBackButton = useCallback ( ( ) => {
60+ if ( showBackButton ) {
61+ return (
62+ < Button icon = "navigation-left-arrow" design = { ButtonDesign . Transparent } onClick = { handleNavBackButtonPress } />
63+ ) ;
64+ }
65+ return null ;
66+ } , [ showBackButton ] ) ;
6967
70- const renderTitle = useMemo ( ( ) => ( ) => < Title level = { TitleLevel . H5 } > { title } </ Title > , [ title ] ) ;
68+ const renderTitle = useCallback ( ( ) => < Title level = { TitleLevel . H5 } > { title } </ Title > , [ title ] ) ;
7169
72- const renderHeader = useMemo (
73- ( ) => ( ) => {
74- return < Bar renderContentLeft = { renderBackButton } renderContentMiddle = { renderTitle } /> ;
75- } ,
76- [ renderTitle , renderBackButton ]
77- ) ;
70+ const header = useMemo ( ( ) => {
71+ if ( renderCustomHeader ) {
72+ return renderCustomHeader ( ) ;
73+ }
74+
75+ return < Bar renderContentLeft = { renderBackButton } renderContentMiddle = { renderTitle } /> ;
76+ } , [ renderCustomHeader , renderTitle , renderBackButton ] ) ;
7877
7978 const pageContainer = StyleClassHelper . of ( classes . pageContainer ) ;
8079 const headerClasses = StyleClassHelper . of ( classes . pageHeader , classes . baseBar ) ;
@@ -96,12 +95,7 @@ const Page = forwardRef((props: PagePropTypes, ref: Ref<HTMLDivElement>) => {
9695
9796 return (
9897 < div ref = { ref } className = { pageContainer . valueOf ( ) } style = { style } title = { tooltip } slot = { slot } >
99- { showHeader && (
100- < header className = { headerClasses . valueOf ( ) } >
101- { renderCustomHeader && renderCustomHeader ( ) }
102- { ! renderCustomHeader && renderHeader ( ) }
103- </ header >
104- ) }
98+ { showHeader && < header className = { headerClasses . valueOf ( ) } > { header } </ header > }
10599 < section className = { classes . contentSection } > { children } </ section >
106100 { showFooter && < footer className = { footerClasses . valueOf ( ) } > { renderCustomFooter && renderCustomFooter ( ) } </ footer > }
107101 </ div >
0 commit comments