change redirection logic to handle awaiting calls in the webapp opened in redirection

This commit is contained in:
Abhinav 2023-04-28 20:23:59 +05:30
parent bd469fc125
commit 358b0cef4b
3 changed files with 29 additions and 11 deletions

View file

@ -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"
/>

View 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;
};

View file

@ -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({