Skip to content

Commit 3be2d8b

Browse files
committed
feat: redirect to retUrl for regSources that require going to retUrl after onboarding
1 parent be0aa99 commit 3be2d8b

File tree

4 files changed

+44
-8
lines changed

4 files changed

+44
-8
lines changed

src/hoc/withAuthentication/index.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@ export default function withAuthentication(Component) {
4242
status: "seen",
4343
},
4444
});
45-
45+
updateOnboardingWizardTraits(handle, traits, shouldCreate);
46+
} else if (
47+
traits[onboardingWizardChecklistIndex].onboarding_wizard?.status ===
48+
"pending_at_user"
49+
) {
50+
traits[onboardingWizardChecklistIndex].onboarding_wizard.status =
51+
"seen";
4652
updateOnboardingWizardTraits(handle, traits, shouldCreate);
4753
}
4854
});

src/root.component.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ if (HEAP_ANALYTICS_KEY) {
3131
export default function Root() {
3232
useEffect(() => {
3333
disableNavigationForRoute("/onboard/*");
34-
34+
3535
disableSidebarForRoute("/onboard");
3636
disableSidebarForRoute("/onboard/contact-details");
3737
disableSidebarForRoute("/onboard/payment-setup");

src/routes/BuildMyProfile/index.jsx

+29-6
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ import moment from "moment";
4747
import _ from "lodash";
4848
import { createTraits, updateTraits } from "services/traits";
4949
import { updateMemberData } from "services/memberData";
50+
import { getCookie } from "utils/";
51+
import { updateOnboardingWizardTraits } from "services/onboardingChecklist";
5052

5153
const formatDate = (date) => {
5254
let ret = new Date(
@@ -61,6 +63,9 @@ const BuildMyProfile = () => {
6163
const [isLoading, setIsLoading] = useState(false);
6264
const [myProfileData, setMyProfileData] = useState({});
6365
const [bio, setBio] = useState("");
66+
const [redirectUrl, setRedirectUrl] = useState(
67+
config.TOPCODER_COMMUNITY_WEBSITE_URL + "/home"
68+
);
6469

6570
// form states
6671
const [formData, setFormData] = useState({
@@ -189,6 +194,7 @@ const BuildMyProfile = () => {
189194
// Get Member data from redux (firstName, lastName, handle, photoURL) and store it on myProfileData
190195
useEffect(() => {
191196
if (!authUser || !authUser.handle) return;
197+
192198
getAuthUserProfile()
193199
.then((result) => {
194200
setMyProfileData(result);
@@ -209,6 +215,9 @@ const BuildMyProfile = () => {
209215
// find datas we need
210216
// get traits values
211217
let traits = result?.data;
218+
const onboardingChecklist = traits.find(
219+
(t) => t.traitId === "onboarding_checklist"
220+
);
212221
let basicInfo = traits.find((t) => t.traitId === "basic_info");
213222
let workExp = traits.find((t) => t.traitId === "work");
214223
let educationExp = traits.find((t) => t.traitId === "education");
@@ -218,6 +227,24 @@ const BuildMyProfile = () => {
218227
let educationExpValue = educationExp?.traits?.data;
219228
let languagesExpValue = languagesExp?.traits?.data;
220229

230+
if (
231+
onboardingChecklist.traits.data.length > 0 &&
232+
onboardingChecklist.traits.data[0].onboarding_wizard?.status !==
233+
"completed"
234+
) {
235+
onboardingChecklist.traits.data[0].onboarding_wizard.status =
236+
"completed";
237+
const url = getCookie("returnAfterOnboard");
238+
if (url != null) {
239+
setRedirectUrl(url);
240+
}
241+
updateOnboardingWizardTraits(
242+
authUser.handle,
243+
onboardingChecklist.traits.data,
244+
false
245+
);
246+
}
247+
221248
// fill title and bio to state
222249
if (basicInfoValue) {
223250
// Using shortBio as title has to do with v3 using this mapping
@@ -535,7 +562,7 @@ const BuildMyProfile = () => {
535562
}
536563

537564
setIsLoading(false);
538-
window.location.href = config.TOPCODER_COMMUNITY_WEBSITE_URL + "/home";
565+
window.location.href = redirectUrl;
539566
};
540567

541568
return (
@@ -1018,11 +1045,7 @@ const BuildMyProfile = () => {
10181045
</Button>
10191046
</Link>
10201047
<a
1021-
href={
1022-
errors && canSubmit()
1023-
? config.TOPCODER_COMMUNITY_WEBSITE_URL + "/home"
1024-
: "#"
1025-
}
1048+
href={errors && canSubmit() ? redirectUrl : "#"}
10261049
onClick={(e) => handleSubmit(e)}
10271050
>
10281051
<Button

src/utils/index.js

+7
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,10 @@ export function wrapV3(payload) {
125125
param: payload,
126126
};
127127
}
128+
129+
export function clearCookie(name) {}
130+
131+
export function getCookie(name) {
132+
const v = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)");
133+
return v ? v[2] : undefined;
134+
}

0 commit comments

Comments
 (0)