Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MHV-55186] Update all V1 components to V3 web components on SM MHV #28504

Closed
wants to merge 42 commits into from
Closed
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
0b7b250
[MHV-55186] Update Message landing components to V3
vsaleem Mar 4, 2024
8af53af
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 5, 2024
97c5991
[MHV-55186] Updated modals, buttons, and dropdowns with uswds
vsaleem Mar 5, 2024
91fcdd4
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 11, 2024
f3e129c
[MHV-55186] Update SM va-components to uswds
vsaleem Mar 12, 2024
f8c6800
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 12, 2024
e5f1783
upd: locators and fix failed tests
fazilqa Mar 12, 2024
2d42ef9
upd: locators and fix failed tests
fazilqa Mar 12, 2024
e3c4798
upd: locators and fix failed tests
fazilqa Mar 12, 2024
1870986
upd: locators and fix failed tests
fazilqa Mar 13, 2024
b4f6b5c
upd: locators and fix failed tests
fazilqa Mar 13, 2024
7843bf9
upd: locators and fix failed tests
fazilqa Mar 13, 2024
20d9637
[MHV-55186] cleanup; added charcount to sm subject input
vsaleem Mar 13, 2024
d12f76e
Merge branch '55186-Update-all-V1-components-to-V6-on-sm-mhv' of http…
vsaleem Mar 13, 2024
ce2fb22
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 15, 2024
5dcbea7
upd: locators and fix failed tests
fazilqa Mar 14, 2024
7340055
upd: temporary skip failed test
fazilqa Mar 14, 2024
2f846eb
upd: unskip the test
fazilqa Mar 15, 2024
d219eab
[MHV-55186] Hotfix to update sm V3 components for release
vsaleem Mar 15, 2024
dc4ddda
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 15, 2024
44954e5
attempt to resolve linting errors
vsaleem Mar 15, 2024
d4fb5cc
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 15, 2024
bc3180e
2nd attempt to fix linting errs
vsaleem Mar 15, 2024
c558765
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 18, 2024
6b4764e
cleanup, added null safety
vsaleem Mar 18, 2024
797fd7d
fix eslint
vsaleem Mar 18, 2024
23d22da
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 18, 2024
fe2c719
[MHV-55186] Added margins between mobile view buttons
vsaleem Mar 18, 2024
6f154d1
cleanup eslint, set dropdown uswds to false
vsaleem Mar 18, 2024
4f4f320
upd: update selectors & refactor
fazilqa Mar 15, 2024
d87023b
upd: update assertions
fazilqa Mar 18, 2024
52e45a4
upd: fix failed test
fazilqa Mar 18, 2024
1ef0dd4
upd: remove skip
fazilqa Mar 18, 2024
9fddf13
[MHV-55186] Removing uswds true tags, no longer needed
vsaleem Mar 18, 2024
0efeccb
Merge branch '55186-Update-all-V1-components-to-V6-on-sm-mhv' of http…
vsaleem Mar 18, 2024
07fc403
Merge branch 'main' into 55186-Update-all-V1-components-to-V6-on-sm-mhv
vsaleem Mar 18, 2024
82d7c10
cleanup
vsaleem Mar 18, 2024
9a08371
cleanup, format components with eslint
vsaleem Mar 18, 2024
b886ef5
cleanup with eslint format
vsaleem Mar 18, 2024
e573e35
cleanup using eslint
vsaleem Mar 18, 2024
fdbb3a6
cleanup files not apart of sm
vsaleem Mar 18, 2024
7320089
cleanup non-sm file
vsaleem Mar 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
import FEATURE_FLAG_NAMES from '@department-of-veterans-affairs/platform-utilities/featureFlagNames';
import { useSelector } from 'react-redux';
import { selectUser } from '@department-of-veterans-affairs/platform-user/selectors';
import { selectEhrDataByVhaId } from 'platform/site-wide/drupal-static-data/source-files/vamc-ehr/selectors';

Check warning on line 19 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:19:1:Importing from platform via platform/site-wide is deprecated. Import from @department-of-veterans-affairs/platform-site-wide instead or check babel.config.json for an alias to the import.
import { getVamcSystemNameFromVhaId } from 'platform/site-wide/drupal-static-data/source-files/vamc-ehr/utils';

Check warning on line 20 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:20:1:Importing from platform via platform/site-wide is deprecated. Import from @department-of-veterans-affairs/platform-site-wide instead or check babel.config.json for an alias to the import.
import { CernerTransitioningFacilities } from '../../util/constants';

const CernerTransitioningFacilityAlert = () => {
Expand All @@ -26,108 +26,93 @@
const transitioningFacilityId =
CernerTransitioningFacilities.NORTH_CHICAGO.facilityId;

const cernerTransition556T30 = useMemo(
() => {
return featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T30]
? featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T30]
: false;
},
[featureToggles],
);
const cernerTransition556T5 = useMemo(
() => {
return featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T5]
? featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T5]
: false;
},
[featureToggles],
);
const cernerTransition556T30 = useMemo(() => {

Check failure on line 29 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:29:42:Insert `⏎····`
return featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T30]

Check failure on line 30 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:30:1:Insert `··`
? featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T30]

Check failure on line 31 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:31:1:Replace `······` with `········`
: false;

Check failure on line 32 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:32:7:Insert `··`
}, [featureToggles]);

Check failure on line 33 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:33:3:Replace `},·[featureToggles]` with `··},⏎····[featureToggles],⏎··`
const cernerTransition556T5 = useMemo(() => {

Check failure on line 34 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:34:41:Insert `⏎····`
return featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T5]

Check failure on line 35 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:35:1:Insert `··`
? featureToggles[FEATURE_FLAG_NAMES.cernerTransition556T5]

Check failure on line 36 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:36:1:Insert `··`
: false;

Check failure on line 37 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:37:7:Insert `··`
}, [featureToggles]);

Check failure on line 38 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:38:3:Replace `},·[featureToggles]` with `··},⏎····[featureToggles],⏎··`

const userFacilities = user.profile.facilities;
const ehrFacilities = useSelector(selectEhrDataByVhaId);

const isTranstioningFacility = useMemo(
() => {
const transitioningFacility = ehrFacilities[transitioningFacilityId];
if (
userFacilities &&
transitioningFacility &&
transitioningFacility.ehr !== 'cerner' &&
userFacilities.some(
facility =>
parseInt(facility.facilityId, 10) ===
parseInt(transitioningFacility.vhaId, 10),
)
) {
return getVamcSystemNameFromVhaId(
ehrFacilities,
transitioningFacility.vhaId,
);
}
return null;
},
[userFacilities, ehrFacilities],
);

const contentT30 = useMemo(
() => {
return (
isTranstioningFacility && (
<va-alert status="warning" class="vads-u-margin-y--2">
<h1 slot="headline">
Your health facility is moving to My VA Health
</h1>
<div>
<p>
<strong>{isTranstioningFacility}</strong> is moving to our My VA
Health portal.
</p>
<ul>
<li>
Starting on <strong>March 4,</strong> you won’t be able to use
this My HealtheVet tool to send messages to care teams at this
facility.
</li>
<li>
Starting on <strong>March 9,</strong> you can use the new My
VA Health portal to send messages to these care teams.
</li>
</ul>
</div>
</va-alert>
)
const isTranstioningFacility = useMemo(() => {
const transitioningFacility = ehrFacilities[transitioningFacilityId];
if (
userFacilities &&
transitioningFacility &&
transitioningFacility.ehr !== 'cerner' &&
userFacilities.some(
facility =>
parseInt(facility.facilityId, 10) ===
parseInt(transitioningFacility.vhaId, 10),
)
) {
return getVamcSystemNameFromVhaId(
ehrFacilities,
transitioningFacility.vhaId,
);
},
[isTranstioningFacility],
);
}
return null;
}, [userFacilities, ehrFacilities]);

Check warning on line 61 in src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/Alerts/CernerTransitioningFacilityAlert.jsx:61:6:React Hook useMemo has a missing dependency: 'transitioningFacilityId'. Either include it or remove the dependency array.

const contentT5 = useMemo(
() => {
return (
isTranstioningFacility && (
<va-alert status="warning" class="vads-u-margin-y--2">
<h1 slot="headline">
You can’t send messages to some of your care teams right now
</h1>
<div>
<p>
We’re moving data for <strong>{isTranstioningFacility}</strong>{' '}
to our My VA Health portal. On March 9, you can start using My
VA Health to send messages to care teams at this facility.
</p>
<p>To contact your care team now, call your facility.</p>
<p>
<a href="/find-locations" target="_blank">
Find your VA health facility
</a>
</p>
</div>
</va-alert>
)
);
},
[isTranstioningFacility],
);
const contentT30 = useMemo(() => {
return (
isTranstioningFacility && (
<va-alert status="warning" class="vads-u-margin-y--2">
<h1 slot="headline">
Your health facility is moving to My VA Health
</h1>
<div>
<p>
<strong>{isTranstioningFacility}</strong> is moving to our My VA
Health portal.
</p>
<ul>
<li>
Starting on <strong>March 4,</strong> you won’t be able to use
this My HealtheVet tool to send messages to care teams at this
facility.
</li>
<li>
Starting on <strong>March 9,</strong> you can use the new My VA
Health portal to send messages to these care teams.
</li>
</ul>
</div>
</va-alert>
)
);
}, [isTranstioningFacility]);

const contentT5 = useMemo(() => {
return (
isTranstioningFacility && (
<va-alert status="warning" class="vads-u-margin-y--2">
<h1 slot="headline">
You can’t send messages to some of your care teams right now
</h1>
<div>
<p>
We’re moving data for <strong>{isTranstioningFacility}</strong> to
our My VA Health portal. On March 9, you can start using My VA
Health to send messages to care teams at this facility.
</p>
<p>To contact your care team now, call your facility.</p>
<p>
<a href="/find-locations" target="_blank">
Find your VA health facility
</a>
</p>
</div>
</va-alert>
)
);
}, [isTranstioningFacility]);

const content = () => {
if (cernerTransition556T5) {
Expand Down
102 changes: 39 additions & 63 deletions src/applications/mhv/secure-messaging/components/AttachmentsList.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useEffect, useRef, useState } from 'react';
import PropTypes from 'prop-types';
import recordEvent from 'platform/monitoring/record-event';

Check warning on line 3 in src/applications/mhv/secure-messaging/components/AttachmentsList.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/AttachmentsList.jsx:3:1:Importing from platform via platform/monitoring is deprecated. Import from @department-of-veterans-affairs/platform-monitoring instead or check babel.config.json for an alias to the import.
import { focusElement } from '@department-of-veterans-affairs/platform-utilities/ui';
import { VaAlert } from '@department-of-veterans-affairs/component-library/dist/react-bindings';
import RemoveAttachmentModal from './Modals/RemoveAttachmentModal';
Expand Down Expand Up @@ -40,34 +40,25 @@
const attachmentNameId = id =>
forPrint ? `has-attachment-for-print-${id}` : `has-attachment-${id}`;

useEffect(
() => {
focusElement(focusedElement);
},
[focusedElement],
);
useEffect(() => {
focusElement(focusedElement);
}, [focusedElement]);

useEffect(
() => {
if (attachFileSuccess && attachFileAlertRef.current.shadowRoot) {
setTimeout(() => {
setFocusedElement(
document.querySelector('#close-success-alert-button'),
);
}, 300);
}
},
[attachFileSuccess, attachments, attachFileAlertRef],
);
useEffect(() => {
if (attachFileSuccess && attachFileAlertRef.current.shadowRoot) {
setTimeout(() => {
setFocusedElement(
document.querySelector('#close-success-alert-button'),
);
}, 300);
}
}, [attachFileSuccess, attachments, attachFileAlertRef]);

useEffect(
() => {
if (attachments.length === 0) {
setAttachFileSuccess(false);
}
},
[attachments],
);
useEffect(() => {
if (attachments.length === 0) {
setAttachFileSuccess(false);
}
}, [attachments]);

Check warning on line 61 in src/applications/mhv/secure-messaging/components/AttachmentsList.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/AttachmentsList.jsx:61:6:React Hook useEffect has a missing dependency: 'setAttachFileSuccess'. Either include it or remove the dependency array.

const removeAttachment = file => {
const newAttArr = attachments?.filter(item => {
Expand Down Expand Up @@ -120,43 +111,28 @@
</div>
{editingEnabled && <HowToAttachFiles />}

{attachFileSuccess &&
attachments.length > 0 && (
<VaAlert
aria-live="polite"
aria-label="file successfully attached"
ref={attachFileAlertRef}
background-only
className="file-attached-success vads-u-margin-top--2"
data-testid="file-attached-success-alert"
disable-analytics
full-width="false"
show-icon
status="success"
onCloseEvent={handleSuccessAlertClose}
>
<p className="vads-u-margin-bottom--0">File attached</p>
<button
className="close-success-alert-button vads-u-padding--0p5"
id="close-success-alert-button"
data-testid="close-success-alert-button"
aria-label="Close notification"
type="button"
onClick={() => {
setAttachFileSuccess(false);
handleSuccessAlertClose();
}}
>
<i
className="fas fa-times-circle vads-u-color--black"
style={{ fontSize: '2.4rem' }}
alt="Close notification icon"
aria-hidden="true"
role="presentation"
/>
</button>
</VaAlert>
)}
{attachFileSuccess && attachments.length > 0 && (
<VaAlert
closeable
closeBtnAriaLabel="Close notification"
aria-live="polite"
aria-label="file successfully attached"
ref={attachFileAlertRef}
background-only
className="file-attached-success vads-u-margin-top--2"
data-testid="file-attached-success-alert"
disable-analytics
full-width="false"
show-icon
status="success"
onCloseEvent={() => {
setAttachFileSuccess(false);
handleSuccessAlertClose();
}}
>
<p className="vads-u-margin-y--0">File attached</p>
</VaAlert>
)}

<ul className="attachments-list">
{!!attachments.length &&
Expand Down Expand Up @@ -186,7 +162,7 @@
<span>{file.name} </span>(
{getSize(file.size || file.attachmentSize)})
</span>
<button

Check warning on line 165 in src/applications/mhv/secure-messaging/components/AttachmentsList.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/components/AttachmentsList.jsx:165:19:The <va-button> Web Component should be used instead of the button HTML element.
type="button"
onClick={() => {
setIsModalVisible(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,10 @@ const CategoryInput = props => {
data-dd-privacy="mask"
data-testid="compose-category-radio-button"
data-dd-action-name="Compose Category Radio Button"
style={{ display: 'flex' }}
key={i}
label={
RadioCategories[item]
? `${RadioCategories[item].label}: ${
RadioCategories[item].description
}`
? `${RadioCategories[item].label}: ${RadioCategories[item].description}`
: item
}
name="compose-message-categories"
Expand Down