+ >
+ );
+};
+
+WelcomePage.propTypes = {
+ intl: intlShape.isRequired,
+ registrationResult: PropTypes.shape({
+ redirectUrl: PropTypes.string,
+ success: PropTypes.bool,
+ }),
+};
+
+WelcomePage.defaultProps = {
+ registrationResult: {},
+};
+
+const mapStateToProps = state => {
+ const registrationResult = registrationRequestSelector(state);
+ return { registrationResult };
+};
+
+export default connect(
+ mapStateToProps,
+)(injectIntl(WelcomePage));
diff --git a/src/welcome/index.js b/src/welcome/index.js
new file mode 100644
index 00000000..b031301e
--- /dev/null
+++ b/src/welcome/index.js
@@ -0,0 +1 @@
+export { default } from './WelcomePage';
diff --git a/src/welcome/messages.jsx b/src/welcome/messages.jsx
new file mode 100644
index 00000000..d3244f2a
--- /dev/null
+++ b/src/welcome/messages.jsx
@@ -0,0 +1,110 @@
+import { defineMessages } from '@edx/frontend-platform/i18n';
+
+const messages = defineMessages({
+ 'optional.fields.page.title': {
+ id: 'optional.fields.page.title',
+ defaultMessage: 'Optional Fields | {siteName}',
+ description: 'optional fields page title',
+ },
+ 'optional.fields.page.heading': {
+ id: 'optional.fields.page.heading',
+ defaultMessage: 'Support education research by providing additional information.',
+ description: 'The page heading for the optional fields page.',
+ },
+ 'welcome.to.edx': {
+ id: 'welcome.to.edx',
+ defaultMessage: 'Welcome to edX, {username}!',
+ description: 'Welcome message on the optional fields page.',
+ },
+ 'registration.field.gender.options.label': {
+ id: 'registration.field.gender.options.label',
+ defaultMessage: 'Gender (optional)',
+ description: 'Placeholder for the gender options dropdown',
+ },
+ 'registration.field.gender.options.f': {
+ id: 'registration.field.gender.options.f',
+ defaultMessage: 'Female',
+ description: 'The label for the female gender option.',
+ },
+ 'registration.field.gender.options.m': {
+ id: 'registration.field.gender.options.m',
+ defaultMessage: 'Male',
+ description: 'The label for the male gender option.',
+ },
+ 'registration.field.gender.options.o': {
+ id: 'registration.field.gender.options.o',
+ defaultMessage: 'Other/Prefer not to say',
+ description: 'The label for catch-all gender option.',
+ },
+ 'registration.field.education.levels.label': {
+ id: 'registration.field.education.levels.label',
+ defaultMessage: 'Highest level of education completed (optional)',
+ description: 'Placeholder for the education levels dropdown.',
+ },
+ 'registration.field.education.levels.p': {
+ id: 'registration.field.education.levels.p',
+ defaultMessage: 'Doctorate',
+ description: 'Selected by the user if their highest level of education is a doctorate degree.',
+ },
+ 'registration.field.education.levels.m': {
+ id: 'registration.field.education.levels.m',
+ defaultMessage: "Master's or professional degree",
+ description: "Selected by the user if their highest level of education is a master's or professional degree from a college or university.",
+ },
+ 'registration.field.education.levels.b': {
+ id: 'registration.field.education.levels.b',
+ defaultMessage: "Bachelor's degree",
+ description: "Selected by the user if their highest level of education is a four year college or university bachelor's degree.",
+ },
+ 'registration.field.education.levels.a': {
+ id: 'registration.field.education.levels.a',
+ defaultMessage: "Associate's degree",
+ description: "Selected by the user if their highest level of education is an associate's degree. 1-2 years of college or university.",
+ },
+ 'registration.field.education.levels.hs': {
+ id: 'registration.field.education.levels.hs',
+ defaultMessage: 'Secondary/high school',
+ description: 'Selected by the user if their highest level of education is secondary or high school. 9-12 years of education.',
+ },
+ 'registration.field.education.levels.jhs': {
+ id: 'registration.field.education.levels.jhs',
+ defaultMessage: 'Junior secondary/junior high/middle school',
+ description: 'Selected by the user if their highest level of education is junior or middle school. 6-8 years of education.',
+ },
+ 'registration.field.education.levels.el': {
+ id: 'registration.field.education.levels.el',
+ defaultMessage: 'Elementary/primary school',
+ description: 'Selected by the user if their highest level of education is elementary or primary school. 1-5 years of education.',
+ },
+ 'registration.field.education.levels.none': {
+ id: 'registration.field.education.levels.none',
+ defaultMessage: 'No formal education',
+ description: 'Selected by the user to describe their education.',
+ },
+ 'registration.field.education.levels.other': {
+ id: 'registration.field.education.levels.other',
+ defaultMessage: 'Other education',
+ description: 'Selected by the user if they have a type of education not described by the other choices.',
+ },
+ 'registration.year.of.birth.label': {
+ id: 'registration.year.of.birth.label',
+ defaultMessage: 'Year of birth (optional)',
+ description: 'Placeholder for the year of birth options dropdown',
+ },
+ 'optional.fields.information.link': {
+ id: 'optional.fields.information.link',
+ defaultMessage: 'Learn more about how we use this information.',
+ description: 'Optional fields page information link',
+ },
+ 'optional.fields.submit.button': {
+ id: 'optional.fields.submit.button',
+ defaultMessage: 'Submit',
+ description: 'Submit button text',
+ },
+ 'optional.fields.skip.button': {
+ id: 'optional.fields.skip.button',
+ defaultMessage: 'Skip for now',
+ description: 'Skip button text',
+ },
+});
+export default messages;