diff --git a/frontend/public/src/components/CourseProductDetailEnroll.js b/frontend/public/src/components/CourseProductDetailEnroll.js
index 5478e3417..044c3b50a 100644
--- a/frontend/public/src/components/CourseProductDetailEnroll.js
+++ b/frontend/public/src/components/CourseProductDetailEnroll.js
@@ -14,7 +14,8 @@ import { routes } from "../lib/urls"
import {
getFlexiblePriceForProduct,
formatLocalePrice,
- checkFeatureFlag
+ checkFeatureFlag,
+ isSuccessResponse
} from "../lib/util"
import { EnrollmentFlaggedCourseRun } from "../flow/courseTypes"
import {
@@ -49,7 +50,7 @@ type Props = {
addProductToBasket: (user: number, productId: number) => Promise,
currentUser: User,
createEnrollment: (runId: number) => Promise,
- addToCart: (product: Product) => Promise,
+ addToCart: (productId: number) => Promise,
deactivateEnrollment: (runId: number) => Promise,
updateAddlFields: (currentUser: User) => Promise,
forceRequest: () => any
@@ -96,6 +97,18 @@ export class CourseProductDetailEnroll extends React.Component<
})
}
+ async onAddToCartClick(productId: number) {
+ const {addToCart} = this.props
+
+ const addToCartResponse = await addToCart(productId)
+ if (isSuccessResponse(addToCartResponse)) {
+ this.setState({
+ addedToCartDialogVisibility: true
+ })
+ }
+ }
+
+
redirectToCourseHomepage(url: string, ev: any) {
/*
If we've got addl_field_flag, then display the extra info modal. Otherwise,
@@ -264,7 +277,7 @@ export class CourseProductDetailEnroll extends React.Component<
}
renderUpgradeEnrollmentDialog() {
- const {courses, currentUser} = this.props
+ const {courses, currentUser } = this.props
const courseRuns = courses && courses[0] ? courses[0].courseruns : null
const csrfToken = getCookie("csrftoken")
const enrollableCourseRuns = courseRuns ?
@@ -387,22 +400,12 @@ export class CourseProductDetailEnroll extends React.Component<
>
@@ -598,8 +601,11 @@ export class CourseProductDetailEnroll extends React.Component<
const createEnrollment = (run: EnrollmentFlaggedCourseRun) =>
mutateAsync(enrollmentMutation(run.id))
-const addToCart = (product: Product) =>
- mutateAsync(cartMutation(product.id))
+
+const addToCart = (productId: number) => {
+ mutateAsync(cartMutation(productId))
+ console.log("Hello")
+}
const deactivateEnrollment = (run: number) =>
mutateAsync(deactivateEnrollmentMutation(run))
diff --git a/frontend/public/src/lib/queries/enrollment.js b/frontend/public/src/lib/queries/enrollment.js
index c62ecd913..4b045f454 100644
--- a/frontend/public/src/lib/queries/enrollment.js
+++ b/frontend/public/src/lib/queries/enrollment.js
@@ -191,12 +191,13 @@ export const enrollmentMutation = (runId: number) => ({
export const cartMutation = (productId: number) => ({
url: `/cart/add/`,
body: {
- product_id: `${productId}`,
- isapi: true
+ product_id: `${productId}`,
+ },
+ update: {
+ basket: nextState
},
options: {
...getCsrfOptions(),
method: "POST"
},
- update: {}
})