Skip to content

Commit 9fa0448

Browse files
Merge pull request #206 from topcoder-platform/bug-hunt-set-currentStep
Bug hunt - Set current step
2 parents 1399006 + a567752 commit 9fa0448

File tree

3 files changed

+8
-20
lines changed

3 files changed

+8
-20
lines changed

src-ts/tools/work/work-lib/work-provider/work-functions/work-factory/work.factory.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,6 @@ export function buildUpdateBody(workTypeConfig: WorkTypeConfig, challenge: Chall
112112
const form: IntakeForm = !!intakeForm?.value ? JSON.parse(intakeForm.value)?.form : {}
113113
form.basicInfo = formData
114114

115-
// TODO: Add the progress.currentStep to form to determine if it's in the review phase (review page)
116-
// or not. The legacy intakes use currentStep 7 for review and 5 for taking the user to the login step
117-
// as those numbers map to the routes configured for each work type (see IntakeForm.jsx for an example).
118-
// We can probably clean that up as we don't need that many routes
119-
120115
// --- Build Metadata --- //
121116
const intakeMetadata: Array<ChallengeMetadata> = [
122117
{

src-ts/tools/work/work-self-service/intake-forms/bug-hunt/BugHuntIntakeForm.tsx

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,6 @@ const BugHuntIntakeForm: React.FC = () => {
5858
[ChallengeMetadataName.packageType]: 'standard',
5959
})
6060

61-
function findMetadata(metadataName: ChallengeMetadataName): ChallengeMetadata | undefined {
62-
return challenge?.metadata?.find((item: ChallengeMetadata) => item.name === metadataName)
63-
}
64-
6561
const [selectedPackage, setSelectedPackage]: [PricePackageName, Dispatch<SetStateAction<PricePackageName>>]
6662
= useState<PricePackageName>(formValues.packageType)
6763

@@ -78,17 +74,9 @@ const BugHuntIntakeForm: React.FC = () => {
7874

7975
const intakeFormBH: ChallengeMetadata | undefined = response.metadata?.find((item: ChallengeMetadata) => item.name === ChallengeMetadataName.intakeForm)
8076
if (intakeFormBH) {
81-
const formData: Record<string, any> = JSON.parse(intakeFormBH.value)
82-
// TODO: Set the correct currentStep into challenge's form data when saving form and moving on to a new page
83-
if (formData.currentStep && formData.currentStep !== 'basicInfo') {
84-
if (!isLoggedIn) {
85-
navigate(WorkIntakeFormRoutes[WorkType.bugHunt]['loginPrompt'])
86-
} else {
87-
navigate(WorkIntakeFormRoutes[WorkType.bugHunt][formData.currentStep])
88-
}
89-
}
77+
const formData: Record<string, any> = JSON.parse(intakeFormBH.value).form.basicInfo
9078

91-
setFormValues(formData.form.basicInfo)
79+
setFormValues(formData)
9280

9381
if (formData.form.basicInfo.packageType !== selectedPackage) {
9482
setSelectedPackage(formData.form.basicInfo.packageType)
@@ -129,6 +117,11 @@ const BugHuntIntakeForm: React.FC = () => {
129117

130118
const onSave: (val: any) => Promise<void> = (val: any) => {
131119
if (!challenge) { return Promise.resolve() }
120+
if (action === 'save') {
121+
val.currentStep = 'basicInfo'
122+
} else if (action === 'submit') {
123+
val.currentStep = 'review'
124+
}
132125

133126
return workUpdateAsync(WorkType.bugHunt, challenge, val)
134127
}

src-ts/tools/work/work-self-service/intake-forms/review/Review.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ interface FormFieldValues {
2929

3030
const Review: React.FC = () => {
3131
const workId: string | undefined = useParams().workId
32-
const redirectUrl: string = WorkIntakeFormRoutes[WorkType.bugHunt]['basicInfo']
32+
const redirectUrl: string = `${WorkIntakeFormRoutes[WorkType.bugHunt]['basicInfo']}/${workId}`
3333

3434
const [formData, setFormData]: [any, Dispatch<any>] = useState({})
3535

0 commit comments

Comments
 (0)