diff --git a/babel.config.js b/babel.config.js index 7b81d588a5e..0f948fcfecc 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,4 +1,4 @@ module.exports = { presets: ['babel-preset-react-app'], - plugins: ['@babel/plugin-proposal-nullish-coalescing-operator'] + plugins: ['@babel/plugin-proposal-nullish-coalescing-operator', '@babel/plugin-proposal-optional-chaining'] }; diff --git a/package.json b/package.json index 5ceeae99117..43b66a12490 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "prettier:all": "prettier --write --config ./prettier.config.js \"packages/**/*.{ts,tsx}\"" }, "dependencies": { + "@babel/plugin-proposal-optional-chaining": "^7.7.5", "@storybook/addon-actions": "5.3.0-beta.31", "@storybook/addon-docs": "5.3.0-beta.31", "@storybook/addon-info": "5.3.0-beta.31", diff --git a/packages/main/src/components/ObjectPage/ObjectPage.jss.ts b/packages/main/src/components/ObjectPage/ObjectPage.jss.ts index e3144db66ec..b6972168a55 100644 --- a/packages/main/src/components/ObjectPage/ObjectPage.jss.ts +++ b/packages/main/src/components/ObjectPage/ObjectPage.jss.ts @@ -1,5 +1,6 @@ import { JSSTheme } from '../../interfaces/JSSTheme'; import { ZIndex } from '../../enums/ZIndex'; +import { CSSProperties } from 'react'; const styles = ({ parameters }: JSSTheme) => ({ objectPage: { @@ -129,6 +130,7 @@ const styles = ({ parameters }: JSSTheme) => ({ wordBreak: 'break-word', verticalAlign: 'baseline', paddingTop: '0.5rem', + paddingBottom: '0.5rem', fontSize: '0.875rem', color: parameters.sapUiContentLabelColor }, @@ -148,7 +150,7 @@ const styles = ({ parameters }: JSSTheme) => ({ }, stickied: {}, headerContent: { - paddingTop: '1.5rem', + //paddingTop: '1.5rem', paddingBottom: '0.25rem', transition: 'max-height 0.5s', maxHeight: '500px', @@ -160,7 +162,7 @@ const styles = ({ parameters }: JSSTheme) => ({ '& $headerContent': { paddingTop: 0, '& > *': { - display: 'inline-block', + display: 'flex', verticalAlign: 'top', '&:not(:first-child)': { marginRight: '2rem', @@ -192,6 +194,10 @@ const styles = ({ parameters }: JSSTheme) => ({ lineHeight: '1.5rem' } }, + headerCustomContentItem: { + marginLeft: '1rem' + }, + headerImage: { maxWidth: '5rem', maxHeight: '5rem', @@ -202,6 +208,28 @@ const styles = ({ parameters }: JSSTheme) => ({ image: { width: '100%', height: '100%' + }, + keyInfos: { + '& > *': { + marginLeft: '1rem' + }, + display: 'flex', + flexDirection: 'row' + }, + flexBoxRow: { + display: 'flex', + flexDirection: 'row' + }, + flexBoxColumn: { + display: 'flex', + flexDirection: 'column' + }, + flexBoxCenter: { + display: 'flex', + alignItems: 'center' + }, + avatar: { + marginRight: '1rem' } }); diff --git a/packages/main/src/components/ObjectPage/ObjectPage.test.tsx b/packages/main/src/components/ObjectPage/ObjectPage.test.tsx index 906846c54d5..435372b3691 100644 --- a/packages/main/src/components/ObjectPage/ObjectPage.test.tsx +++ b/packages/main/src/components/ObjectPage/ObjectPage.test.tsx @@ -9,6 +9,9 @@ import { ObjectPageMode } from '@ui5/webcomponents-react/lib/ObjectPageMode'; import { ObjectPageSection } from '@ui5/webcomponents-react/lib/ObjectPageSection'; import { ObjectPageSubSection } from '@ui5/webcomponents-react/lib/ObjectPageSubSection'; import { Text } from '@ui5/webcomponents-react/lib/Text'; +import { Title } from '@ui5/webcomponents-react/lib/Title'; +import { Breadcrumbs } from '@ui5/webcomponents-react/lib/Breadcrumbs'; +import { TitleLevel } from '@ui5/webcomponents-react/lib/TitleLevel'; const renderHeaderContent = () => (
@@ -164,4 +167,39 @@ describe('ObjectPage', () => { ); expect(wrapper.render()).toMatchSnapshot(); }); + + const renderKeyInfos = () => ( + <> +
+ Key Info 1 + Value 1 +
+
+ Key Info 2 + Value 2 +
+
+ Key Info 3 + Value 3 +
+ + ); + + const renderBreadcrumbs = () => ( + + Path1 + Path2 + + + ); + + test('Key Infos', () => { + const wrapper = mountThemedComponent( + + Test + Test 2 + + ); + expect(wrapper.render()).toMatchSnapshot(); + }); }); diff --git a/packages/main/src/components/ObjectPage/__snapshots__/ObjectPage.test.tsx.snap b/packages/main/src/components/ObjectPage/__snapshots__/ObjectPage.test.tsx.snap index 485e7af4b26..e2019f376bd 100644 --- a/packages/main/src/components/ObjectPage/__snapshots__/ObjectPage.test.tsx.snap +++ b/packages/main/src/components/ObjectPage/__snapshots__/ObjectPage.test.tsx.snap @@ -38,21 +38,32 @@ exports[`ObjectPage IconTabBar Mode 1`] = ` class="ObjectPage--titleBar-" >
-

- Fiori Object Page Title -

- - Sub Title - +
+

+ Fiori Object Page Title +

+ + Sub Title + +
+
+
@@ -322,20 +333,50 @@ exports[`ObjectPage Just Some Sections 1`] = ` class="ObjectPage--titleBar-" >
-

- +
+
+

+ +
+
+

+
-
-
-
-
+
+
+
+
+
+
+
+
+`; + +exports[`ObjectPage Key Infos 1`] = ` +
+
+
+
+
+
+ +
+
+
+
+
@@ -402,6 +623,28 @@ exports[`ObjectPage Just Some Sections 1`] = `
+
+
+
+
+
+
+ Test 2 +
+
+
-

- +
+
+

+ +
+
+

+