Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
eb1658c
feat: first part of the migration from redux to react query
jesusbalderramawgu Feb 3, 2026
536fd47
fix: fix login
jesusbalderramawgu Feb 3, 2026
8eb6be1
fix: tests fixed and new ones added, missing packages added and tscon…
jesusbalderramawgu Feb 6, 2026
e71e548
fix: LoginProvider added to keep functionality in form like it was in…
jesusbalderramawgu Feb 6, 2026
a606abe
fix: tests fix and lintern
jesusbalderramawgu Feb 7, 2026
b6ced0e
fix: lint fix and renaming
jesusbalderramawgu Feb 8, 2026
5e64ab7
fix: final adjustments and minor fixes
jesusbalderramawgu Feb 9, 2026
370ca62
chore: cleanup
jesusbalderramawgu Feb 9, 2026
78b34ca
fix: tsconfig fixed
jesusbalderramawgu Feb 10, 2026
b824b7f
fix: missing test skipped it
jesusbalderramawgu Feb 10, 2026
d7a4c29
fix: refactor to keep consistency in hooks, correct validation in for…
jesusbalderramawgu Feb 12, 2026
fa33572
fix: lint and tests fix
jesusbalderramawgu Feb 12, 2026
0b2f29e
chore: redux clean up after migration
jesusbalderramawgu Feb 12, 2026
e1e721b
fix: remove missing redux data
jesusbalderramawgu Feb 12, 2026
ff16917
fix: missing tests added to improve coverage
jesusbalderramawgu Feb 12, 2026
9ab5517
fix: tests added
jesusbalderramawgu Feb 12, 2026
c9c4d72
fix: more references to redux deleted and comments
jesusbalderramawgu Feb 13, 2026
5a25f1c
fix: refactor in registerContext
jesusbalderramawgu Feb 13, 2026
87d0a44
fix: refactor in apihook and context
jesusbalderramawgu Feb 13, 2026
f72fc64
fix: fix in form to render the fields in progressiveProfiling
jesusbalderramawgu Feb 13, 2026
c74cd91
chore: removed proptypes
jesusbalderramawgu Feb 13, 2026
c3ecfdb
fix: correct handle of status for resetPasswordPage
jesusbalderramawgu Feb 13, 2026
8c315a4
fix: fix to show the success alert after changing the password
jesusbalderramawgu Feb 16, 2026
955bfd5
fix: correct key added to apiHook
jesusbalderramawgu Feb 18, 2026
19a86b0
fix: unnecessary code removed and tests updated
jesusbalderramawgu Mar 2, 2026
6bb793d
fix: missing property added to thirdPartyAuthContext
jesusbalderramawgu Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 3 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"@openedx/frontend-plugin-framework": "^1.7.0",
"@openedx/paragon": "^23.4.2",
"@optimizely/react-sdk": "^2.9.1",
"@redux-devtools/extension": "3.3.0",
"@tanstack/react-query": "^5.90.19",
"@testing-library/react": "^16.2.0",
"algoliasearch": "^4.14.3",
"algoliasearch-helper": "^3.26.0",
Expand All @@ -53,23 +53,18 @@
"react-dom": "^18.3.1",
"react-helmet": "6.1.0",
"react-loading-skeleton": "3.5.0",
"react-redux": "7.2.9",
"react-responsive": "8.2.0",
"react-router": "6.30.3",
"react-router-dom": "6.30.3",
"react-zendesk": "^0.1.13",
"redux": "4.2.1",
"redux-logger": "3.0.6",
"redux-mock-store": "1.5.5",
"redux-saga": "1.4.2",
"redux-thunk": "2.4.2",
"regenerator-runtime": "0.14.1",
"reselect": "5.1.1",
"universal-cookie": "7.2.2"
},
"devDependencies": {
"@edx/browserslist-config": "^1.1.1",
"@edx/typescript-config": "^1.1.0",
"@openedx/frontend-build": "^14.6.2",
"@testing-library/jest-dom": "^6.9.1",
"babel-plugin-formatjs": "10.5.41",
"eslint-plugin-import": "2.32.0",
"glob": "7.2.3",
Expand Down
71 changes: 42 additions & 29 deletions src/MainApp.jsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { AppProvider } from '@edx/frontend-platform/react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { Helmet } from 'react-helmet';
import { Navigate, Route, Routes } from 'react-router-dom';

import {
EmbeddedRegistrationRoute, NotFoundPage, registerIcons, UnAuthOnlyRoute, Zendesk,
} from './common-components';
import configureStore from './data/configureStore';
import {
AUTHN_PROGRESSIVE_PROFILING,
LOGIN_PAGE,
Expand All @@ -31,33 +29,48 @@ import './index.scss';

registerIcons();

const queryClient = new QueryClient({
defaultOptions: {
mutations: {
retry: false,
},
},
});

const MainApp = () => (
<AppProvider store={configureStore()}>
<Helmet>
<link rel="shortcut icon" href={getConfig().FAVICON_URL} type="image/x-icon" />
</Helmet>
{getConfig().ZENDESK_KEY && <Zendesk />}
<Routes>
<Route path="/" element={<Navigate replace to={updatePathWithQueryParams(REGISTER_PAGE)} />} />
<Route
path={REGISTER_EMBEDDED_PAGE}
element={<EmbeddedRegistrationRoute><RegistrationPage /></EmbeddedRegistrationRoute>}
/>
<Route
path={LOGIN_PAGE}
element={
<UnAuthOnlyRoute><Logistration selectedPage={LOGIN_PAGE} /></UnAuthOnlyRoute>
}
/>
<Route path={REGISTER_PAGE} element={<UnAuthOnlyRoute><Logistration /></UnAuthOnlyRoute>} />
<Route path={RESET_PAGE} element={<UnAuthOnlyRoute><ForgotPasswordPage /></UnAuthOnlyRoute>} />
<Route path={PASSWORD_RESET_CONFIRM} element={<ResetPasswordPage />} />
<Route path={AUTHN_PROGRESSIVE_PROFILING} element={<ProgressiveProfiling />} />
<Route path={RECOMMENDATIONS} element={<RecommendationsPage />} />
<Route path={PAGE_NOT_FOUND} element={<NotFoundPage />} />
<Route path="*" element={<Navigate replace to={PAGE_NOT_FOUND} />} />
</Routes>
</AppProvider>
<QueryClientProvider client={queryClient}>
<AppProvider>
<Helmet>
<link rel="shortcut icon" href={getConfig().FAVICON_URL} type="image/x-icon" />
</Helmet>
{getConfig().ZENDESK_KEY && <Zendesk />}
<Routes>
<Route path="/" element={<Navigate replace to={updatePathWithQueryParams(REGISTER_PAGE)} />} />
<Route
path={REGISTER_EMBEDDED_PAGE}
element={<EmbeddedRegistrationRoute><RegistrationPage /></EmbeddedRegistrationRoute>}
/>
<Route
path={LOGIN_PAGE}
element={
<UnAuthOnlyRoute><Logistration selectedPage={LOGIN_PAGE} /></UnAuthOnlyRoute>
}
/>
<Route
path={REGISTER_PAGE}
element={
<UnAuthOnlyRoute><Logistration selectedPage={REGISTER_PAGE} /></UnAuthOnlyRoute>
}
/>
<Route path={RESET_PAGE} element={<UnAuthOnlyRoute><ForgotPasswordPage /></UnAuthOnlyRoute>} />
<Route path={PASSWORD_RESET_CONFIRM} element={<ResetPasswordPage />} />
<Route path={AUTHN_PROGRESSIVE_PROFILING} element={<ProgressiveProfiling />} />
<Route path={RECOMMENDATIONS} element={<RecommendationsPage />} />
<Route path={PAGE_NOT_FOUND} element={<NotFoundPage />} />
<Route path="*" element={<Navigate replace to={PAGE_NOT_FOUND} />} />
</Routes>
</AppProvider>
</QueryClientProvider>
);

export default MainApp;
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { IntlProvider } from '@edx/frontend-platform/i18n';
import { render, screen } from '@testing-library/react';

Expand Down
2 changes: 0 additions & 2 deletions src/base-container/components/default-layout/LargeLayout.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Hyperlink, Image } from '@openedx/paragon';
Expand Down
2 changes: 0 additions & 2 deletions src/base-container/components/default-layout/MediumLayout.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Hyperlink, Image } from '@openedx/paragon';
Expand Down
2 changes: 0 additions & 2 deletions src/base-container/components/default-layout/SmallLayout.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Hyperlink, Image } from '@openedx/paragon';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Hyperlink, Image } from '@openedx/paragon';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Hyperlink, Image } from '@openedx/paragon';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Hyperlink, Image } from '@openedx/paragon';
Expand Down
2 changes: 0 additions & 2 deletions src/base-container/index.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { breakpoints } from '@openedx/paragon';
import classNames from 'classnames';
Expand Down
2 changes: 0 additions & 2 deletions src/base-container/tests/BaseContainer.test.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { mergeConfig } from '@edx/frontend-platform';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import { render } from '@testing-library/react';
Expand Down
2 changes: 0 additions & 2 deletions src/common-components/EmbeddedRegistrationRoute.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import PropTypes from 'prop-types';
import { Navigate } from 'react-router-dom';

Expand Down
2 changes: 0 additions & 2 deletions src/common-components/EnterpriseSSO.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
Expand Down
2 changes: 1 addition & 1 deletion src/common-components/FormGroup.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useState } from 'react';
import { useState } from 'react';

import {
Form, TransitionReplace,
Expand Down
2 changes: 0 additions & 2 deletions src/common-components/InstitutionLogistration.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { Button, Hyperlink, Icon } from '@openedx/paragon';
Expand Down
2 changes: 0 additions & 2 deletions src/common-components/NotFoundPage.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react';

import { FormattedMessage } from '@edx/frontend-platform/i18n';

const NotFoundPage = () => (
Expand Down
Loading