From 95d1b1349c7380e4aa3fef71cf108aaf1ae4a8d3 Mon Sep 17 00:00:00 2001 From: annagav Date: Thu, 23 Jan 2025 11:29:51 -0500 Subject: [PATCH] Enrolled Course Item dropdown menu accessibility (#2514) --- frontend/public/scss/dashboard.scss | 14 ++ .../public/src/components/EnrolledItemCard.js | 134 +++++++----------- .../src/components/EnrolledItemCard_test.js | 2 +- 3 files changed, 69 insertions(+), 81 deletions(-) diff --git a/frontend/public/scss/dashboard.scss b/frontend/public/scss/dashboard.scss index 3f863856db..c11cb45ad2 100644 --- a/frontend/public/scss/dashboard.scss +++ b/frontend/public/scss/dashboard.scss @@ -138,6 +138,20 @@ $enrolled-passed-fg: #ffffff; } } + .dropdown-toggle.menu-button { + height: fit-content; + border-color: transparent; + background-color: inherit; + + span { + vertical-align: -webkit-baseline-middle; + } + } + + .dropdown-toggle.menu-button::after { + display: none; + } + .no-enrollments h2 { font-size: 25px !important; margin-bottom: 30px !important; diff --git a/frontend/public/src/components/EnrolledItemCard.js b/frontend/public/src/components/EnrolledItemCard.js index 7184fc88cf..7d7bb1d76c 100644 --- a/frontend/public/src/components/EnrolledItemCard.js +++ b/frontend/public/src/components/EnrolledItemCard.js @@ -7,16 +7,7 @@ import { formatPrettyMonthDate } from "../lib/util" import { Formik, Form, Field } from "formik" -import { - Dropdown, - DropdownToggle, - DropdownMenu, - DropdownItem, - Button, - Modal, - ModalHeader, - ModalBody -} from "reactstrap" +import { Button, Modal, ModalHeader, ModalBody } from "reactstrap" import { partial, pathOr } from "ramda" import { createStructuredSelector } from "reselect" import { compose } from "redux" @@ -72,8 +63,7 @@ type EnrolledItemCardState = { submittingEnrollmentId: number | null, emailSettingsModalVisibility: boolean, runUnenrollmentModalVisibility: boolean, - programUnenrollmentModalVisibility: boolean, - menuVisibility: boolean + programUnenrollmentModalVisibility: boolean } export class EnrolledItemCard extends React.Component< @@ -84,8 +74,7 @@ export class EnrolledItemCard extends React.Component< submittingEnrollmentId: null, emailSettingsModalVisibility: false, runUnenrollmentModalVisibility: false, - programUnenrollmentModalVisibility: false, - menuVisibility: false + programUnenrollmentModalVisibility: false } toggleEmailSettingsModalVisibility = () => { @@ -109,13 +98,6 @@ export class EnrolledItemCard extends React.Component< }) } - toggleMenuVisibility = () => { - const { menuVisibility } = this.state - this.setState({ - menuVisibility: !menuVisibility - }) - } - toggleProgramInfo = () => { const { toggleProgramDrawer, enrollment } = this.props @@ -424,9 +406,6 @@ export class EnrolledItemCard extends React.Component< renderCourseEnrollment() { const { enrollment, currentUser, isProgramCard, redirectToCourseHomepage } = this.props - - const { menuVisibility } = this.state - const financialAssistanceLink = isFinancialAssistanceAvailable(enrollment.run) && !enrollment.approved_flexible_price_exists ? ( @@ -552,38 +531,36 @@ export class EnrolledItemCard extends React.Component< )} - + + more_vert + + + {this.renderRunUnenrollmentModal(enrollment)} {this.renderEmailSettingsDialog(enrollment)} @@ -637,7 +614,6 @@ export class EnrolledItemCard extends React.Component< renderProgramEnrollment() { const { enrollment } = this.props - const { menuVisibility } = this.state const title = enrollment.program.title const certificateLinks = null @@ -680,32 +656,30 @@ export class EnrolledItemCard extends React.Component< - + + more_vert + + + {this.renderProgramUnenrollmentModal(enrollment)}
diff --git a/frontend/public/src/components/EnrolledItemCard_test.js b/frontend/public/src/components/EnrolledItemCard_test.js index 6007db4f1c..eed0ff31ec 100644 --- a/frontend/public/src/components/EnrolledItemCard_test.js +++ b/frontend/public/src/components/EnrolledItemCard_test.js @@ -236,7 +236,7 @@ describe("EnrolledItemCard", () => { )} activate the unenrollment verification modal if the enrollment type is ${enrollmentType}`, async () => { enrollmentCardProps.enrollment.enrollment_mode = enrollmentType const inner = await renderedCard() - const unenrollButton = inner.find("Dropdown DropdownItem").at(0) + const unenrollButton = inner.find(".unenroll-btn").at(0) assert.isTrue(unenrollButton.exists()) await unenrollButton.prop("onClick")()