{"id":20037750,"url":"https://github.com/openedx/frontend-component-footer","last_synced_at":"2025-05-16T03:02:30.982Z","repository":{"id":36970821,"uuid":"163885204","full_name":"openedx/frontend-component-footer","owner":"openedx","description":"Site footer component for edX frontend apps.","archived":false,"fork":false,"pushed_at":"2025-05-12T16:27:51.000Z","size":14538,"stargazers_count":6,"open_issues_count":18,"forks_count":122,"subscribers_count":63,"default_branch":"master","last_synced_at":"2025-05-16T03:02:28.172Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openedx.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-01-02T20:14:34.000Z","updated_at":"2025-05-12T11:38:48.000Z","dependencies_parsed_at":"2023-10-16T20:40:26.039Z","dependency_job_id":"140d96dd-2eee-440c-a6cd-ee556e2e80d7","html_url":"https://github.com/openedx/frontend-component-footer","commit_stats":{"total_commits":395,"total_committers":45,"mean_commits":8.777777777777779,"dds":0.5873417721518988,"last_synced_commit":"58791757d7d661d1329348af3760a08f91a6b704"},"previous_names":["edx/frontend-component-footer"],"tags_count":129,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-component-footer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-component-footer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-component-footer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Ffrontend-component-footer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/frontend-component-footer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459081,"owners_count":22074604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T10:21:49.226Z","updated_at":"2025-05-16T03:02:30.966Z","avatar_url":"https://github.com/openedx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#########################\nfrontend-component-footer\n#########################\n\n|Build Status| |Codecov| |npm_version| |npm_downloads| |license| |semantic-release|\n\n********\nPurpose\n********\n\nA generic footer for Open edX micro-frontend applications.  It includes a logo and an optional language selector dropdown.\n\n***************\nGetting Started\n***************\n\nPrerequisites\n=============\n\nThe `devstack`_ is currently recommended as a development environment for your\nnew MFE.  If you start it with ``make dev.up.lms`` that should give you\neverything you need as a companion to this frontend.\n\nNote that it is also possible to use `Tutor`_ to develop an MFE.  You can refer\nto the `relevant tutor-mfe documentation`_ to get started using it.\n\n.. _Devstack: https://github.com/openedx/devstack\n\n.. _Tutor: https://github.com/overhangio/tutor\n\n.. _relevant tutor-mfe documentation: https://github.com/overhangio/tutor-mfe#mfe-development\n\nRequirements\n============\n\nThis component uses ``@edx/frontend-platform`` services such as i18n, analytics, configuration, and the ``AppContext`` React component, and expects that it has been loaded into a micro-frontend that has been properly initialized via ``@edx/frontend-platform``'s ``initialize`` function.  `Please visit the frontend template application to see an example. \u003chttps://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx\u003e`_\n\nEnvironment Variables\n=====================\n\nThis component requires that the following environment variable be set by the consuming micro-frontend.\n\n* ``LMS_BASE_URL`` - The URL of the LMS of your Open edX instance.\n* ``LOGO_TRADEMARK_URL`` - This is a URL to a logo for use in the footer.  This is a different environment variable than ``LOGO_URL`` (used in frontend-component-header) to accommodate sites that would like to have additional trademark information on a logo in the footer, such as a (tm) or (r) symbol.\n\nInstallation\n============\n\nTo install this footer into your Open edX micro-frontend, run the following command in your MFE:\n\n``npm i --save @edx/frontend-component-footer``\n\nThis will make the component available to be imported into your application.\n\nCloning and Startup\n===================\n\n.. code-block::\n\n\n  1. Clone your new repo:\n\n    ``git clone https://github.com/openedx/frontend-component-footer.git``\n\n  2. Use node v18.x.\n\n    The current version of the micro-frontend build scripts support node 18.\n    Using other major versions of node *may* work, but this is unsupported.  For\n    convenience, this repository includes an .nvmrc file to help in setting the\n    correct node version via `nvm \u003chttps://github.com/nvm-sh/nvm\u003e`_.\n\n  3. Install npm dependencies:\n\n    ``cd frontend-component-footer \u0026\u0026 npm ci``\n\n  4. Start the dev server:\n\n    ``npm start``\n\nUsage\n=====\n\nThis library has the following exports:\n\n* ``(default)``: The footer as a React component.\n* ``messages``: Internationalization messages suitable for use with `@edx/frontend-platform/i18n \u003chttps://edx.github.io/frontend-platform/module-Internationalization.html\u003e`_\n* ``dist/footer.scss``: A SASS file which contains style information for the component.  It should be imported into the micro-frontend's own SCSS file.\n\n\u003cFooter /\u003e component props\n==========================\n\n* onLanguageSelected: Provides the footer with an event handler for when the user selects a\n  language from its dropdown.\n* supportedLanguages: An array of objects representing available languages.  See example below for object shape.\n\nPlugin\n======\nThe footer can be replaced or modified using `Frontend Plugin Framework \u003chttps://github.com/openedx/frontend-plugin-framework\u003e`_.\n\nInformation on how to replace or modify the footer is available `here \u003c/src/plugin-slots\u003e`_.\n\nExamples\n========\n\nComponent Usage Example::\n\n  import Footer, { messages } from '@edx/frontend-component-footer';\n\n  ...\n\n  \u003cFooter\n    onLanguageSelected={(languageCode) =\u003e {/* set language */}}\n    supportedLanguages={[\n      { label: 'English', value: 'en'},\n      { label: 'Español', value: 'es' },\n    ]}\n  /\u003e\n\n* `An example of minimal component and messages usage. \u003chttps://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx#L23\u003e`_\n* `An example of SCSS file usage. \u003chttps://github.com/openedx/frontend-template-application/blob/3cd5485bf387b8c479baf6b02bf59e3061dc3465/src/index.scss#L9\u003e`_\n\n\n\nDevelopment\n===========\n\nInstall dependencies::\n\n  npm i\n\nStart the development server::\n\n  npm start\n\nBuild a production distribution::\n\n  npm run build\n\nLicense\n=======\n\nThe code in this repository is licensed under the AGPLv3 unless otherwise\nnoted.\n\nPlease see `LICENSE \u003cLICENSE\u003e`_ for details.\n\nContributing\n============\n\nContributions are very welcome.  Please read `How To Contribute`_ for details.\n\n.. _How To Contribute: https://openedx.org/r/how-to-contribute\n\nThis project is currently accepting all types of contributions, bug fixes,\nsecurity fixes, maintenance work, or new features.  However, please make sure\nto have a discussion about your new feature idea with the maintainers prior to\nbeginning development to maximize the chances of your change being accepted.\nYou can start a conversation by creating a new issue on this repo summarizing\nyour idea.\n\nGetting Help\n===========\n\nIf you're having trouble, we have discussion forums at\nhttps://discuss.openedx.org where you can connect with others in the community.\n\nOur real-time conversations are on Slack. You can request a `Slack\ninvitation`_, then join our `community Slack workspace`_.  Because this is a\nfrontend repository, the best place to discuss it would be in the `#wg-frontend\nchannel`_.\n\nFor anything non-trivial, the best path is to open an issue in this repository\nwith as many details about the issue you are facing as you can provide.\n\nhttps://github.com/openedx/frontend-component-footer/issues\n\nFor more information about these options, see the `Getting Help`_ page.\n\n.. _Slack invitation: https://openedx.org/slack\n.. _community Slack workspace: https://openedx.slack.com/\n.. _#wg-frontend channel: https://openedx.slack.com/archives/C04BM6YC7A6\n.. _Getting Help: https://openedx.org/community/connect\n\nThe Open edX Code of Conduct\n============================\n\nAll community members are expected to follow the `Open edX Code of Conduct`_.\n\n.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/\n\nReporting Security Issues\n=========================\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\n.. |Build Status| image:: https://api.travis-ci.com/edx/frontend-component-footer.svg?branch=master\n   :target: https://travis-ci.com/edx/frontend-component-footer\n.. |Codecov| image:: https://img.shields.io/codecov/c/github/edx/frontend-component-footer\n   :target: @edx/frontend-component-footer\n.. |npm_version| image:: https://img.shields.io/npm/v/@edx/frontend-component-footer.svg\n   :target: @edx/frontend-component-footer\n.. |npm_downloads| image:: https://img.shields.io/npm/dt/@edx/frontend-component-footer.svg\n   :target: @edx/frontend-component-footer\n.. |license| image:: https://img.shields.io/npm/l/@edx/frontend-component-footer.svg\n   :target: @edx/frontend-component-footer\n.. |semantic-release| image:: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\n   :target: https://github.com/semantic-release/semantic-release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Ffrontend-component-footer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Ffrontend-component-footer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Ffrontend-component-footer/lists"}