Skip to content

Commit

Permalink
feat(pageMessages): issues/502 section for messaging (#503)
Browse files Browse the repository at this point in the history
* pageLayout, allow pageMessages
* pageMessages, messaging display
* pageToolbar, alignment with pageMessages
  • Loading branch information
cdcabrera committed Dec 2, 2020
1 parent 5a05119 commit b95e571
Show file tree
Hide file tree
Showing 9 changed files with 120 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ exports[`OpenshiftView Component should display an alternate graph on query-stri
>
t(curiosity-view.title, {"appName":"Subscription Watch","context":"OpenShift"})
</PageHeader>
<PageToolbar>
<PageToolbar
className=""
>
<Connect(Toolbar)
filterOptions={
Array [
Expand Down Expand Up @@ -161,7 +163,9 @@ exports[`OpenshiftView Component should have a fallback title: title 1`] = `
>
t(curiosity-view.title, {"appName":"Subscription Watch","context":"OpenShift"})
</PageHeader>
<PageToolbar>
<PageToolbar
className=""
>
<Connect(Toolbar)
filterOptions={
Array [
Expand Down Expand Up @@ -731,7 +735,9 @@ exports[`OpenshiftView Component should render a non-connected component: non-co
>
t(curiosity-view.title, {"appName":"Subscription Watch","context":"OpenShift"})
</PageHeader>
<PageToolbar>
<PageToolbar
className=""
>
<Connect(Toolbar)
filterOptions={
Array [
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`PageMessages Component should render a basic component: basic 1`] = `
<PageMessages
className="lorem"
>
<Section
className="curiosity-page-messages lorem"
>
<section
className="curiosity-page-messages lorem"
>
<span
className="test"
>
lorem
</span>
</section>
</Section>
</PageMessages>
`;
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ exports[`PageToolbar Component should render a basic component: basic 1`] = `
className="lorem"
>
<Section
className="lorem"
className="curiosity-page-toolbar lorem"
>
<section
className="lorem"
className="curiosity-page-toolbar lorem"
>
<span
Expand Down
18 changes: 18 additions & 0 deletions src/components/pageLayout/__tests__/pageMesages.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react';
import { mount } from 'enzyme';
import { PageMessages } from '../pageMessages';

describe('PageMessages Component', () => {
it('should render a basic component', () => {
const props = {
className: 'lorem'
};
const component = mount(
<PageMessages {...props}>
<span className="test">lorem</span>
</PageMessages>
);

expect(component).toMatchSnapshot('basic');
});
});
8 changes: 6 additions & 2 deletions src/components/pageLayout/pageLayout.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types';
import { PageSection as Main } from '@patternfly/react-core';
import { PageHeader } from './pageHeader';
import { PageMessages } from './pageMessages';
import { PageSection } from './pageSection';
import { PageToolbar } from './pageToolbar';

Expand All @@ -19,9 +20,12 @@ import { PageToolbar } from './pageToolbar';
const PageLayout = ({ children }) => (
<React.Fragment>
{React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === PageHeader)}
{React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === PageMessages)}
{React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === PageToolbar)}
<Main padding={{ default: 'noPadding' }} className="curiosity">
{React.Children.toArray(children).filter(child => child.type !== PageHeader && child.type !== PageToolbar)}
{React.Children.toArray(children).filter(
child => child.type !== PageHeader && child.type !== PageMessages && child.type !== PageToolbar
)}
</Main>
</React.Fragment>
);
Expand All @@ -40,4 +44,4 @@ PageLayout.propTypes = {
*/
PageLayout.defaultProps = {};

export { PageLayout as default, PageLayout, PageHeader, PageSection, PageToolbar };
export { PageLayout as default, PageLayout, PageHeader, PageMessages, PageSection, PageToolbar };
38 changes: 38 additions & 0 deletions src/components/pageLayout/pageMessages.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Section } from '@redhat-cloud-services/frontend-components/components/cjs/Section';

/**
* Render a platform toolbar section.
*
* @param {object} props
* @param {Node} props.children
* @param {string} props.className
* @returns {Node}
*/
const PageMessages = ({ children, className, ...props }) => (
<Section className={`curiosity-page-messages ${className}`} {...props}>
{children}
</Section>
);

/**
* Prop types.
*
* @type {{children: Node, className: string}}
*/
PageMessages.propTypes = {
children: PropTypes.node.isRequired,
className: PropTypes.string
};

/**
* Default props.
*
* @type {{className: string}}
*/
PageMessages.defaultProps = {
className: ''
};

export { PageMessages as default, PageMessages };
18 changes: 14 additions & 4 deletions src/components/pageLayout/pageToolbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,32 @@ import { Section } from '@redhat-cloud-services/frontend-components/components/c
*
* @param {object} props
* @param {Node} props.children
* @param {string} props.className
* @returns {Node}
*/
const PageToolbar = ({ children, ...props }) => <Section {...props}>{children}</Section>;
const PageToolbar = ({ children, className, ...props }) => (
<Section className={`curiosity-page-toolbar ${className}`} {...props}>
{children}
</Section>
);

/**
* Prop types.
*
* @type {{children: Node}}
* @type {{children: Node, className: string}}
*/
PageToolbar.propTypes = {
children: PropTypes.node.isRequired
children: PropTypes.node.isRequired,
className: PropTypes.string
};

/**
* Default props.
*
* @type {{className: string}}
*/
PageToolbar.defaultProps = {};
PageToolbar.defaultProps = {
className: ''
};

export { PageToolbar as default, PageToolbar };
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ exports[`RhelView Component should display an alternate graph on query-string up
>
t(curiosity-view.title, {"appName":"Subscription Watch","context":"RHEL"})
</PageHeader>
<PageToolbar>
<PageToolbar
className=""
>
<Connect(Toolbar)
filterOptions={
Array [
Expand Down Expand Up @@ -146,7 +148,9 @@ exports[`RhelView Component should have a fallback title: title 1`] = `
>
t(curiosity-view.title, {"appName":"Subscription Watch","context":"RHEL"})
</PageHeader>
<PageToolbar>
<PageToolbar
className=""
>
<Connect(Toolbar)
filterOptions={
Array [
Expand Down Expand Up @@ -673,7 +677,9 @@ exports[`RhelView Component should render a non-connected component: non-connect
>
t(curiosity-view.title, {"appName":"Subscription Watch","context":"RHEL"})
</PageHeader>
<PageToolbar>
<PageToolbar
className=""
>
<Connect(Toolbar)
filterOptions={
Array [
Expand Down
2 changes: 1 addition & 1 deletion src/styles/_page-layout.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.curiosity {
.curiosity, .curiosity-page-messages, .curiosity-page-toolbar {
background-color: var(--pf-global--BackgroundColor--100);
min-width: 320px;
}

0 comments on commit b95e571

Please sign in to comment.