Skip to content

Commit cc647e7

Browse files
authored
feat: expose containerProps in StudioFooter [FC-0062] (#463)
1 parent 2d5f5fe commit cc647e7

File tree

3 files changed

+24
-11
lines changed

3 files changed

+24
-11
lines changed

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"@edx/reactifex": "^2.1.1",
4141
"@openedx/frontend-build": "14.1.5",
4242
"@openedx/frontend-plugin-framework": "^1.1.2",
43-
"@openedx/paragon": "22.8.1",
43+
"@openedx/paragon": "^22.8.1",
4444
"@testing-library/jest-dom": "^5.16.4",
4545
"@testing-library/react": "^12.1.1",
4646
"husky": "8.0.3",
@@ -59,6 +59,7 @@
5959
"@fortawesome/free-regular-svg-icons": "6.6.0",
6060
"@fortawesome/free-solid-svg-icons": "6.6.0",
6161
"@fortawesome/react-fontawesome": "0.2.2",
62+
"classnames": "^2.5.1",
6263
"jest-environment-jsdom": "^29.7.0",
6364
"lodash": "^4.17.21",
6465
"ts-jest": "^29.1.2"

src/components/studio-footer/StudioFooter.jsx

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useContext, useState } from 'react';
22
import _ from 'lodash';
3-
import { intlShape, injectIntl, FormattedMessage } from '@edx/frontend-platform/i18n';
3+
import { useIntl, FormattedMessage } from '@edx/frontend-platform/i18n';
44
import { ensureConfig } from '@edx/frontend-platform';
55
import { AppContext } from '@edx/frontend-platform/react';
66
import {
@@ -12,6 +12,9 @@ import {
1212
TransitionReplace,
1313
} from '@openedx/paragon';
1414
import { ExpandLess, ExpandMore, Help } from '@openedx/paragon/icons';
15+
import classNames from 'classnames';
16+
import PropTypes from 'prop-types';
17+
1518
import messages from './messages';
1619

1720
ensureConfig([
@@ -26,12 +29,14 @@ ensureConfig([
2629
], 'Studio Footer component');
2730

2831
const StudioFooter = ({
29-
// injected
30-
intl,
32+
containerProps,
3133
}) => {
34+
const intl = useIntl();
3235
const [isOpen, setIsOpen] = useState(false);
3336
const { config } = useContext(AppContext);
3437

38+
const { containerClassName, ...restContainerProps } = containerProps || {};
39+
3540
return (
3641
<>
3742
<div className="m-0 mt-6 row align-items-center justify-content-center">
@@ -49,7 +54,11 @@ const StudioFooter = ({
4954
</Button>
5055
<div className="col border-top ml-2" />
5156
</div>
52-
<Container size="xl" className="px-4">
57+
<Container
58+
size="xl"
59+
className={classNames('px-4', containerClassName)}
60+
{...restContainerProps}
61+
>
5362
<TransitionReplace>
5463
{isOpen ? (
5564
<ActionRow key="help-link-button-row" className="py-4" data-testid="helpButtonRow">
@@ -139,8 +148,11 @@ const StudioFooter = ({
139148
};
140149

141150
StudioFooter.propTypes = {
142-
// injected
143-
intl: intlShape.isRequired,
151+
containerProps: PropTypes.shape(Container.propTypes),
152+
};
153+
154+
StudioFooter.defaultProps = {
155+
containerProps: {},
144156
};
145157

146-
export default injectIntl(StudioFooter);
158+
export default StudioFooter;

0 commit comments

Comments
 (0)