Skip to content

Commit 18bc94e

Browse files
authored
chore: add CTA for page (openedx#112)
* chore: add CTA for page * chore: update hyperlink style
1 parent 0f41df2 commit 18bc94e

File tree

8 files changed

+92
-0
lines changed

8 files changed

+92
-0
lines changed

src/App.jsx

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { LearningHeader as Header } from '@edx/frontend-component-header';
99
import { selectors } from 'data/redux';
1010

1111
import DemoWarning from 'containers/DemoWarning';
12+
import CTA from 'containers/CTA';
1213
import ListView from 'containers/ListView';
1314

1415
import './App.scss';
@@ -22,6 +23,7 @@ export const App = ({ courseMetadata, isEnabled }) => (
2223
courseOrg={courseMetadata.org}
2324
/>
2425
{!isEnabled && <DemoWarning />}
26+
<CTA />
2527
<main>
2628
<ListView />
2729
</main>

src/App.test.jsx

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jest.mock('@edx/frontend-component-header', () => ({
2323
jest.mock('@edx/frontend-component-footer', () => 'Footer');
2424

2525
jest.mock('containers/DemoWarning', () => 'DemoWarning');
26+
jest.mock('containers/CTA', () => 'CTA');
2627
jest.mock('containers/ListView', () => 'ListView');
2728

2829
const logo = 'fakeLogo.png';

src/__snapshots__/App.test.jsx.snap

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ exports[`App router component snapshot: disabled (show demo warning) 1`] = `
99
courseTitle="course-title"
1010
/>
1111
<DemoWarning />
12+
<CTA />
1213
<main>
1314
<ListView />
1415
</main>
@@ -27,6 +28,7 @@ exports[`App router component snapshot: enabled 1`] = `
2728
courseOrg="course-org"
2829
courseTitle="course-title"
2930
/>
31+
<CTA />
3032
<main>
3133
<ListView />
3234
</main>

src/containers/CTA/CTA.test.jsx

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
import { shallow } from 'enzyme';
3+
4+
import { CTA } from '.';
5+
6+
describe('CTA component', () => {
7+
test('snapshots', () => {
8+
const el = shallow(<CTA hide />);
9+
expect(el).toMatchSnapshot();
10+
});
11+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`CTA component snapshots 1`] = `
4+
<PageBanner>
5+
<span>
6+
<FormattedMessage
7+
defaultMessage="Thanks for using the new ORA staff grading experience. We'd love to hear your feedback"
8+
description="Thank user for using ora and ask for feed back"
9+
id="ora-grading.CTA.feedbackMessage"
10+
/>
11+
 
12+
<Hyperlink
13+
destination="https://docs.google.com/forms/d/1Hu1rgJcCHl5_EtDb5Up3hiZ40sSUtkZQfRHJ3fWOvfQ/edit"
14+
isInline={true}
15+
showLaunchIcon={false}
16+
target="_blank"
17+
variant="muted"
18+
>
19+
<FormattedMessage
20+
defaultMessage="here"
21+
description="placeholder for the feedback anchor link"
22+
id="ora-grading.CTA.linkMessage"
23+
/>
24+
</Hyperlink>
25+
.
26+
</span>
27+
</PageBanner>
28+
`;

src/containers/CTA/index.jsx

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import React from 'react';
2+
3+
import { FormattedMessage } from '@edx/frontend-platform/i18n';
4+
import { PageBanner, Hyperlink } from '@edx/paragon';
5+
6+
import messages from './messages';
7+
8+
/**
9+
* <CTA />
10+
*/
11+
export const CTA = () => (
12+
<PageBanner>
13+
<span>
14+
<FormattedMessage {...messages.ctaFeedbackMessage} />&nbsp;
15+
<Hyperlink
16+
isInline
17+
variant="muted"
18+
destination="https://docs.google.com/forms/d/1Hu1rgJcCHl5_EtDb5Up3hiZ40sSUtkZQfRHJ3fWOvfQ/edit"
19+
target="_blank"
20+
showLaunchIcon={false}
21+
>
22+
<FormattedMessage {...messages.ctaLinkMessage} />
23+
</Hyperlink>
24+
.
25+
</span>
26+
</PageBanner>
27+
);
28+
29+
export default CTA;

src/containers/CTA/messages.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/* eslint-disable quotes */
2+
import { defineMessages } from '@edx/frontend-platform/i18n';
3+
import { StrictDict } from 'utils';
4+
5+
const messages = defineMessages({
6+
ctaFeedbackMessage: {
7+
id: 'ora-grading.CTA.feedbackMessage',
8+
defaultMessage: 'Thanks for using the new ORA staff grading experience. We\'d love to hear your feedback',
9+
description: 'Thank user for using ora and ask for feed back',
10+
},
11+
ctaLinkMessage: {
12+
id: 'ora-grading.CTA.linkMessage',
13+
defaultMessage: 'here',
14+
description: 'placeholder for the feedback anchor link',
15+
},
16+
});
17+
18+
export default StrictDict(messages);

src/setupTest.js

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ jest.mock('@edx/paragon', () => jest.requireActual('testUtils').mockNestedCompon
7676
IconButton: 'IconButton',
7777
MultiSelectDropdownFilter: 'MultiSelectDropdownFilter',
7878
OverlayTrigger: 'OverlayTrigger',
79+
PageBanner: 'PageBanner',
7980
Popover: {
8081
Content: 'Popover.Content',
8182
},

0 commit comments

Comments
 (0)