change redirection logic to handle awaiting calls in the webapp opened in redirection
This commit is contained in:
parent
bd469fc125
commit
358b0cef4b
|
@ -3,8 +3,6 @@ import { t } from 'i18next';
|
|||
|
||||
import ExportModal from 'components/ExportModal';
|
||||
import exportService from 'services/exportService';
|
||||
import { getEndpoint } from 'utils/common/apiUtil';
|
||||
import { getToken } from 'utils/common/key';
|
||||
import isElectron from 'is-electron';
|
||||
import { AppContext } from 'pages/_app';
|
||||
import EnteSpinner from 'components/EnteSpinner';
|
||||
|
@ -13,17 +11,16 @@ import { NoStyleAnchor } from 'components/pages/sharedAlbum/GoToEnte';
|
|||
import { openLink } from 'utils/common';
|
||||
import { EnteMenuItem } from 'components/Menu/EnteMenuItem';
|
||||
import { Typography } from '@mui/material';
|
||||
import { REDIRECTS, getRedirectURL } from 'constants/redirects';
|
||||
|
||||
export default function HelpSection() {
|
||||
const [exportModalView, setExportModalView] = useState(false);
|
||||
|
||||
const { setDialogMessage } = useContext(AppContext);
|
||||
|
||||
function openFeedbackURL() {
|
||||
const feedbackURL: string = `${getEndpoint()}/users/feedback?token=${encodeURIComponent(
|
||||
getToken()
|
||||
)}`;
|
||||
openLink(feedbackURL, true);
|
||||
async function openRoadmapURL() {
|
||||
const roadmapRedirectURL = getRedirectURL(REDIRECTS.ROADMAP);
|
||||
openLink(roadmapRedirectURL, true);
|
||||
}
|
||||
|
||||
function openExportModal() {
|
||||
|
@ -37,7 +34,7 @@ export default function HelpSection() {
|
|||
return (
|
||||
<>
|
||||
<EnteMenuItem
|
||||
onClick={openFeedbackURL}
|
||||
onClick={openRoadmapURL}
|
||||
label={t('REQUEST_FEATURE')}
|
||||
variant="secondary"
|
||||
/>
|
||||
|
|
21
src/constants/redirects/index.ts
Normal file
21
src/constants/redirects/index.ts
Normal file
|
@ -0,0 +1,21 @@
|
|||
import {
|
||||
getRoadmapRedirectURL,
|
||||
getFamilyPortalRedirectURL,
|
||||
} from 'services/userService';
|
||||
|
||||
export enum REDIRECTS {
|
||||
ROADMAP = 'roadmap',
|
||||
FAMILIES = 'families',
|
||||
}
|
||||
|
||||
export const redirectMap = new Map([
|
||||
[REDIRECTS.ROADMAP, getRoadmapRedirectURL],
|
||||
[REDIRECTS.FAMILIES, getFamilyPortalRedirectURL],
|
||||
]);
|
||||
|
||||
export const getRedirectURL = (redirect: REDIRECTS) => {
|
||||
// open current app with query param of redirect = roadmap
|
||||
const url = new URL(window.location.href);
|
||||
url.searchParams.set('redirect', redirect);
|
||||
return url.href;
|
||||
};
|
|
@ -7,11 +7,11 @@ import { SetLoading } from 'types/gallery';
|
|||
import { getData, LS_KEYS } from '../storage/localStorage';
|
||||
import { logError } from '../sentry';
|
||||
import { SetDialogBoxAttributes } from 'types/dialogBox';
|
||||
import { getFamilyPortalRedirectURL } from 'services/userService';
|
||||
import { openLink } from 'utils/common';
|
||||
import { isPartOfFamily, getTotalFamilyUsage } from 'utils/user/family';
|
||||
import { UserDetails } from 'types/user';
|
||||
import { getSubscriptionPurchaseSuccessMessage } from 'utils/ui';
|
||||
import { getRedirectURL, REDIRECTS } from 'constants/redirects';
|
||||
|
||||
const PAYMENT_PROVIDER_STRIPE = 'stripe';
|
||||
const PAYMENT_PROVIDER_APPSTORE = 'appstore';
|
||||
|
@ -234,8 +234,8 @@ export async function manageFamilyMethod(
|
|||
) {
|
||||
try {
|
||||
setLoading(true);
|
||||
const url = await getFamilyPortalRedirectURL();
|
||||
openLink(url, true);
|
||||
const familyPortalRedirectURL = getRedirectURL(REDIRECTS.FAMILIES);
|
||||
openLink(familyPortalRedirectURL, true);
|
||||
} catch (error) {
|
||||
logError(error, 'failed to redirect to family portal');
|
||||
setDialogMessage({
|
||||
|
|
Loading…
Reference in a new issue