diff --git a/packages/main/__karma_snapshots__/Page.md b/packages/main/__karma_snapshots__/Page.md index 35fefb74c03..9a87d8d8bc2 100644 --- a/packages/main/__karma_snapshots__/Page.md +++ b/packages/main/__karma_snapshots__/Page.md @@ -3,18 +3,18 @@ #### `Basic Page` ``` -
Page Demo
Page Content
+
Page Demo
Page Content
``` #### `Basic Page w/o back button` ``` -
Page Demo
Page Content
+
Page Demo
Page Content
``` #### `Without footer and Header` ``` -
Page Content
+
Page Content
``` diff --git a/packages/main/src/components/Page/demo.stories.tsx b/packages/main/src/components/Page/demo.stories.tsx index 55df3ba48e9..1e7fd004957 100644 --- a/packages/main/src/components/Page/demo.stories.tsx +++ b/packages/main/src/components/Page/demo.stories.tsx @@ -1,5 +1,6 @@ -import { boolean, select } from '@storybook/addon-knobs'; +import { boolean, select, text } from '@storybook/addon-knobs'; import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; import React from 'react'; import { Bar } from '../../lib/Bar'; import { Button } from '../../lib/Button'; @@ -10,12 +11,13 @@ import { PageBackgroundDesign } from '../../lib/PageBackgroundDesign'; const renderPage = () => (
} />} + onNavButtonPress={action('onNavButtonPress')} > diff --git a/packages/main/src/components/Page/index.tsx b/packages/main/src/components/Page/index.tsx index 1ae8b0e6f51..16b157322ad 100644 --- a/packages/main/src/components/Page/index.tsx +++ b/packages/main/src/components/Page/index.tsx @@ -1,7 +1,8 @@ -import { Event, StyleClassHelper, withStyles } from '@ui5/webcomponents-react-base'; -import React, { Component, ReactElement, ReactNode } from 'react'; -import { ClassProps } from '../../interfaces/ClassProps'; +import { Event, StyleClassHelper } from '@ui5/webcomponents-react-base'; +import React, { forwardRef, ReactElement, ReactNode, Ref, useCallback, useMemo } from 'react'; +import { createUseStyles } from 'react-jss'; import { CommonProps } from '../../interfaces/CommonProps'; +import { JSSTheme } from '../../interfaces/JSSTheme'; import { Bar } from '../../lib/Bar'; import { Button } from '../../lib/Button'; import { ButtonDesign } from '../../lib/ButtonDesign'; @@ -23,89 +24,94 @@ export interface PagePropTypes extends CommonProps { children: ReactElement | Array> | ReactNode; } -interface PagePropsInternal extends PagePropTypes, ClassProps {} - -@withStyles(styles) -export class Page extends Component { - static defaultProps = { - showHeader: true, - showFooter: false, - showBackButton: true, - renderCustomHeader: null, - renderCustomFooter: null, - title: '', - backgroundDesign: PageBackgroundDesign.Standard - }; - - private handleNavBackButtonPress = (e) => { - this.props.onNavButtonPress(Event.of(this, e.getOriginalEvent())); - }; - - private renderBackButton = () => { - return ( -