From 73ca2309e5195788f141e7d9a9d94ae636f4d6a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brayan=20Cer=C3=B3n?= Date: Wed, 13 Aug 2025 14:25:45 -0500 Subject: [PATCH 1/3] feat: add slot to extend the profile fields (#1211) * feat: add extended profile fields functionality with context and form components * refactor: replace string literals with FORM_MODE constants in profile fields components * feat: implement BaseField component and refactor field elements to use it * chore: remove unused webpack development configuration file * feat: refactor extended profile fields implementation and remove unused components * feat: update dependencies for frontend-plugin-framework and remove unused dompurify * refactor: simplify pluginProps structure in ExtendedProfileFieldsSlot component * feat: add README and example images for Extended Profile Fields slot * refactor: improve performance & keep consistency * feat: add Additional Profile Fields slot with example implementation and documentation * feat: update custom fields image for Additional Profile Fields slot * fix: reorder import of AdditionalProfileFieldsSlot for consistency * test: fix snapshot * fix: adjust margin in example to avoid oddities on mobile * fix: remove unnecessary empty divs from ProfilePage snapshots --- package-lock.json | 26 ++++ package.json | 1 + .../AdditionalProfileFieldsSlot/README.md | 97 +++++++++++++ .../example/index.jsx | 129 ++++++++++++++++++ .../images/custom_fields.png | Bin 0 -> 64121 bytes .../AdditionalProfileFieldsSlot/index.jsx | 37 +++++ src/profile/ProfilePage.jsx | 3 + 7 files changed, 293 insertions(+) create mode 100644 src/plugin-slots/AdditionalProfileFieldsSlot/README.md create mode 100644 src/plugin-slots/AdditionalProfileFieldsSlot/example/index.jsx create mode 100644 src/plugin-slots/AdditionalProfileFieldsSlot/images/custom_fields.png create mode 100644 src/plugin-slots/AdditionalProfileFieldsSlot/index.jsx diff --git a/package-lock.json b/package-lock.json index 23330afa5..9d5f21065 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "@fortawesome/free-regular-svg-icons": "6.7.2", "@fortawesome/free-solid-svg-icons": "6.7.2", "@fortawesome/react-fontawesome": "0.2.2", + "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^22.17.0", "@pact-foundation/pact": "^11.0.2", "@redux-devtools/extension": "3.3.0", @@ -57,6 +58,31 @@ "redux-mock-store": "1.5.5" } }, + "frontend-component-extended-fields": { + "name": "@edunext/frontend-component-extended-fields", + "version": "1.0.0", + "extraneous": true, + "license": "AGPL-3.0", + "dependencies": { + "@openedx/frontend-plugin-framework": "^1.5.0" + }, + "devDependencies": { + "@edx/browserslist-config": "^1.1.1", + "@edx/frontend-component-footer": "^14.2.0", + "@openedx/frontend-build": "^14.3.1", + "core-js": "3.42.0", + "glob": "7.2.3", + "husky": "7.0.4", + "jest": "29.7.0", + "prop-types": "^15.8.1", + "react-dom": "^18.3.1" + }, + "peerDependencies": { + "@edx/frontend-component-footer": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, "node_modules/@adobe/css-tools": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", diff --git a/package.json b/package.json index 46caa9297..48882bad1 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "@fortawesome/free-regular-svg-icons": "6.7.2", "@fortawesome/free-solid-svg-icons": "6.7.2", "@fortawesome/react-fontawesome": "0.2.2", + "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^22.17.0", "@pact-foundation/pact": "^11.0.2", "@redux-devtools/extension": "3.3.0", diff --git a/src/plugin-slots/AdditionalProfileFieldsSlot/README.md b/src/plugin-slots/AdditionalProfileFieldsSlot/README.md new file mode 100644 index 000000000..77a194fb7 --- /dev/null +++ b/src/plugin-slots/AdditionalProfileFieldsSlot/README.md @@ -0,0 +1,97 @@ +# Additional Profile Fields + +### Slot ID: `org.openedx.frontend.profile.additional_profile_fields.v1` + +## Description + +This slot is used to replace/modify/hide the additional profile fields in the profile page. + +## Example +The following `env.config.jsx` will extend the default fields with a additional custom fields through a simple example component. + +![Screenshot of Custom Fields](./images/custom_fields.png) + +### Using the Additional Fields Component +Create a file named `env.config.jsx` at the MFE root with this: + +```jsx +import { DIRECT_PLUGIN, PLUGIN_OPERATIONS } from '@openedx/frontend-plugin-framework'; +import Example from './src/plugin-slots/AdditionalProfileFieldsSlot/example'; + +const config = { + pluginSlots: { + 'org.openedx.frontend.profile.additional_profile_fields.v1': { + plugins: [ + { + op: PLUGIN_OPERATIONS.Insert, + widget: { + id: 'additional_profile_fields', + type: DIRECT_PLUGIN, + RenderWidget: Example, + }, + }, + ], + }, + }, +}; + +export default config; +``` + +## Plugin Props + +When implementing a plugin for this slot, the following props are available: + +### `updateUserProfile` +- **Type**: Function +- **Description**: A function for updating the user's profile with new field values. This handles the API call to persist changes to the backend. +- **Usage**: Pass an object containing the field updates to be saved to the user's profile. The function automatically handles the persistence and UI updates. + +#### Example +```javascript +updateUserProfile({ extendedProfile: [{ fieldName: 'favorite_color', fieldValue: value }] }); +``` + +### `profileFieldValues` +- **Type**: Array of Objects +- **Description**: Contains the current values of all additional profile fields as an array of objects. Each object has a `fieldName` property (string) and a `fieldValue` property (which can be string, boolean, number, or other data types depending on the field type). +- **Usage**: Access specific field values by finding the object with the matching `fieldName` and reading its `fieldValue` property. Use array methods like `find()` to locate specific fields. + +#### Example +```javascript +// Finding a specific field value +const nifField = profileFieldValues.find(field => field.fieldName === 'nif'); +const nifValue = nifField ? nifField.fieldValue : null; + +// Example data structure: +[ + { + "fieldName": "favorite_color", + "fieldValue": "red" + }, + { + "fieldName": "employment_situation", + "fieldValue": "Unemployed" + }, +] +``` + +### `profileFieldErrors` +- **Type**: Object +- **Description**: Contains validation errors for profile fields. Each key corresponds to a field name, and the value is the error message. +- **Usage**: Check for field-specific errors to display validation feedback to users. + +### `formComponents` +- **Type**: Object +- **Description**: Provides access to reusable form components that are consistent with the rest of the profile page styling and behavior. These components follow the platform's design system and include proper validation and accessibility features. +- **Usage**: Use these components in your custom fields implementation to maintain UI consistency. Available components include `SwitchContent` for managing different UI states, `EmptyContent` for empty states, and `EditableItemHeader` for consistent headers. + +### `refreshUserProfile` +- **Type**: Function +- **Description**: A function that triggers a refresh of the user's profile data. This can be used after updating profile fields to ensure the UI reflects the latest data from the server. +- **Usage**: Call this function with the username parameter when you need to manually reload the user profile information. Note that `updateUserProfile` typically handles data refresh automatically. + +#### Example +```javascript +refreshUserProfile(username); +``` \ No newline at end of file diff --git a/src/plugin-slots/AdditionalProfileFieldsSlot/example/index.jsx b/src/plugin-slots/AdditionalProfileFieldsSlot/example/index.jsx new file mode 100644 index 000000000..177e125d2 --- /dev/null +++ b/src/plugin-slots/AdditionalProfileFieldsSlot/example/index.jsx @@ -0,0 +1,129 @@ +import { useEffect, useState } from 'react'; +import PropTypes from 'prop-types'; +import { Button } from '@openedx/paragon'; +import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; + +/** + * Straightforward example of how you could use the pluginProps provided by + * the AdditionalProfileFieldsSlot to create a custom profile field. + * + * Here you can set a 'favorite_color' field with radio buttons and + * save it to the user's profile, especifically to their `meta` in + * the user's model. For more information, see the documentation: + * + * https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/user_api/README.rst#persisting-optional-user-metadata + */ +const Example = ({ + updateUserProfile, + profileFieldValues, + profileFieldErrors, + formComponents: { SwitchContent, EditableItemHeader, EmptyContent } = {}, +}) => { + const authenticatedUser = getAuthenticatedUser(); + const [formMode, setFormMode] = useState('editable'); + + // Get current favorite color from profileFieldValues + const currentColorField = profileFieldValues?.find(field => field.fieldName === 'favorite_color'); + const currentColor = currentColorField ? currentColorField.fieldValue : ''; + + const [value, setValue] = useState(currentColor); + const handleChange = e => setValue(e.target.value); + + // Get any validation errors for the favorite_color field + const colorFieldError = profileFieldErrors?.favorite_color; + + useEffect(() => { + if (!value) { setFormMode('empty'); } + if (colorFieldError) { + setFormMode('editing'); + } + }, [colorFieldError, value]); + + const handleSubmit = () => { + try { + updateUserProfile(authenticatedUser.username, { extendedProfile: [{ fieldName: 'favorite_color', fieldValue: value }] }); + setFormMode('editable'); + } catch (error) { + setFormMode('editing'); + } + }; + + return ( +
+

Example Additional Profile Fields Slot

+ + + + + + + ), + editable: ( + <> +
+

+ Favorite Color +

+
+ setFormMode('editing')} + showVisibility={false} + visibility="private" + /> + + ), + empty: ( + <> +
+

+ Favorite Color +

+
+ setFormMode('editing')}> +

Click to add your favorite color

+
+ + ), + }} + /> + +
+ ); +}; + +Example.propTypes = { + updateUserProfile: PropTypes.func.isRequired, + profileFieldValues: PropTypes.arrayOf( + PropTypes.shape({ + fieldName: PropTypes.string.isRequired, + fieldValue: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.bool, + PropTypes.number, + ]).isRequired, + }), + ), + profileFieldErrors: PropTypes.objectOf(PropTypes.string), + formComponents: PropTypes.shape({ + SwitchContent: PropTypes.elementType.isRequired, + }), +}; + +export default Example; diff --git a/src/plugin-slots/AdditionalProfileFieldsSlot/images/custom_fields.png b/src/plugin-slots/AdditionalProfileFieldsSlot/images/custom_fields.png new file mode 100644 index 0000000000000000000000000000000000000000..6e907d7e3c120e4012c7fe7c46e011f125e3f263 GIT binary patch literal 64121 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 { + const dispatch = useDispatch(); + const extendedProfileValues = useSelector((state) => state.profilePage.account.extendedProfile); + const errors = useSelector((state) => state.profilePage.errors); + + const pluginProps = { + refreshUserProfile: useCallback((username) => dispatch(fetchProfile(username)), [dispatch]), + updateUserProfile: patchProfile, + profileFieldValues: extendedProfileValues, + profileFieldErrors: errors, + formComponents: { + SwitchContent, + EmptyContent, + EditableItemHeader, + }, + }; + + return ( + + ); +}; + +export default AdditionalProfileFieldsSlot; diff --git a/src/profile/ProfilePage.jsx b/src/profile/ProfilePage.jsx index 2dfe72dda..31d11e455 100644 --- a/src/profile/ProfilePage.jsx +++ b/src/profile/ProfilePage.jsx @@ -43,6 +43,8 @@ import messages from './ProfilePage.messages'; import withParams from '../utils/hoc'; +import AdditionalProfileFieldsSlot from '../plugin-slots/AdditionalProfileFieldsSlot'; + ensureConfig(['CREDENTIALS_BASE_URL', 'LMS_BASE_URL'], 'ProfilePage'); class ProfilePage extends React.Component { @@ -289,6 +291,7 @@ class ProfilePage extends React.Component { {...commonFormProps} /> )} +
{!this.isYOBDisabled() && this.renderAgeMessage()} From aef33bf513614677ee43faed846650f62e0e3f9a Mon Sep 17 00:00:00 2001 From: Brayan Ceron Date: Mon, 10 Nov 2025 09:59:38 -0500 Subject: [PATCH 2/3] feat: wrap AdditionalProfileFieldsSlot in a div for improved layout --- src/profile/ProfilePage.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/profile/ProfilePage.jsx b/src/profile/ProfilePage.jsx index 31d11e455..59b22bbbb 100644 --- a/src/profile/ProfilePage.jsx +++ b/src/profile/ProfilePage.jsx @@ -291,7 +291,9 @@ class ProfilePage extends React.Component { {...commonFormProps} /> )} - +
+ +
{!this.isYOBDisabled() && this.renderAgeMessage()} From 631d36d2a9db5e6147fa818f8e5ea1cd0c8a2d71 Mon Sep 17 00:00:00 2001 From: Brayan Ceron Date: Tue, 11 Nov 2025 10:04:48 -0500 Subject: [PATCH 3/3] chore: update snapshots --- .../__snapshots__/ProfilePage.test.jsx.snap | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/profile/__snapshots__/ProfilePage.test.jsx.snap b/src/profile/__snapshots__/ProfilePage.test.jsx.snap index e43a2e185..06f1edcf7 100644 --- a/src/profile/__snapshots__/ProfilePage.test.jsx.snap +++ b/src/profile/__snapshots__/ProfilePage.test.jsx.snap @@ -547,6 +547,9 @@ exports[` Renders correctly in various states successfully redire
+
Renders correctly in various states test country edit w
+
Renders correctly in various states test education edit
+
Renders correctly in various states test preferreded la
+
Renders correctly in various states viewing other profi />
+
Renders correctly in various states viewing own profile
+
Renders correctly in various states while saving an edi
+
Renders correctly in various states while saving an edi
+
Renders correctly in various states without credentials
+