Skip to content

Commit d546607

Browse files
UI/UX Improvements - Accordian and extention request card (#607)
* extention request card ui fix * updated test case
1 parent a717686 commit d546607

File tree

3 files changed

+29
-18
lines changed

3 files changed

+29
-18
lines changed

__tests__/extension-requests/extension-requests.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,14 +511,14 @@ describe('Tests the Extension Requests Screen', () => {
511511
'.extension-card:first-child .panel',
512512
);
513513
const firstAccordionIsVisible = await firstAccordionContent.evaluate(
514-
(el) => el.style.maxHeight !== '',
514+
(el) => el.style.display === 'block',
515515
);
516516
expect(firstAccordionIsVisible).toBe(true);
517517

518518
await firstAccordionButton.click();
519519

520520
const firstAccordionIsHidden = await firstAccordionContent.evaluate(
521-
(el) => el.style.maxHeight === '',
521+
(el) => el.style.display !== 'block',
522522
);
523523
expect(firstAccordionIsHidden).toBe(true);
524524
});

extension-requests/script.js

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ const initializeAccordions = () => {
9696
handleFormPropagation(event);
9797
this.classList.toggle('active');
9898
let panel = this.nextElementSibling;
99-
if (panel.style.maxHeight) {
100-
panel.style.maxHeight = null;
99+
if (panel.style.display) {
100+
panel.style.display = null;
101101
} else {
102102
closeAllAccordions();
103103
updateAccordionHeight(panel);
@@ -106,16 +106,15 @@ const initializeAccordions = () => {
106106
}
107107
};
108108
const updateAccordionHeight = (element) => {
109-
element.style.maxHeight = 352 + 'px';
110-
if (element.offsetHeight <= 352) element.style.overflow = 'hidden';
109+
element.style.display = 'block';
111110
};
112111
const closeAllAccordions = () => {
113112
let accordionsList = document.querySelectorAll('.accordion.active');
114113
for (let i = 0; i < accordionsList.length; i++) {
115114
let panel = accordionsList[i].nextElementSibling;
116-
if (panel.style.maxHeight) {
117-
accordionsList[i].classList.remove('active');
118-
panel.style.maxHeight = null;
115+
if (panel.style.display) {
116+
accordionsList[i]?.classList.remove('active');
117+
panel.style.display = null;
119118
}
120119
}
121120
};
@@ -375,12 +374,15 @@ async function createExtensionCard(data) {
375374
});
376375
const CommitedHoursContent = createElement({
377376
type: 'span',
377+
attributes: { class: 'label-content' },
378378
});
379379
commitedHoursHoverTrigger.addEventListener('mouseenter', () => {
380380
commitedHoursHoverCard.classList.remove('hidden');
381381
});
382382
commitedHoursHoverTrigger.addEventListener('mouseleave', () => {
383-
commitedHoursHoverCard.classList.add('hidden');
383+
setTimeout(() => {
384+
commitedHoursHoverCard.classList.add('hidden');
385+
}, 700);
384386
});
385387
commitedHoursHoverCard.appendChild(CommitedHourslabel);
386388
commitedHoursHoverCard.appendChild(CommitedHoursContent);
@@ -983,7 +985,7 @@ async function createExtensionCard(data) {
983985
const userImage = userData?.picture?.url ?? DEFAULT_AVATAR;
984986
let userFirstName = userData?.first_name ?? data.assignee;
985987
const taskStatus = taskData?.status?.replaceAll('_', ' ');
986-
const userId = userData.id;
988+
const userId = userData?.id;
987989
const userStatus = userStatusMap.get(userId);
988990
const comittedHours = userStatus?.monthlyHours?.comitted;
989991
userFirstName = userFirstName ?? '';
@@ -993,10 +995,14 @@ async function createExtensionCard(data) {
993995
assigneeImage.alt = userFirstName;
994996
assigneeNameElement.innerText = userFirstName;
995997
taskStatusValue.innerText = ` ${taskStatus}`;
996-
CommitedHourslabel.innerText = 'Commited Hours: ';
997-
CommitedHoursContent.innerText = `${
998-
comittedHours ? comittedHours / 4 : 'NA'
999-
} hrs / week`;
998+
CommitedHourslabel.innerText = 'Commited Hours:';
999+
if (comittedHours) {
1000+
CommitedHoursContent.innerText = `${comittedHours / 4} hrs / week`;
1001+
} else {
1002+
CommitedHoursContent.innerText = 'Missing';
1003+
CommitedHoursContent.classList.add('label-content-missing');
1004+
}
1005+
10001006
removeSpinner();
10011007
if (isDev) renderExtensionCreatedLog();
10021008
rootElement.classList.remove('disabled');

extension-requests/style.css

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,7 @@
282282

283283
.panel {
284284
background-color: var(--white-gray);
285-
max-height: 0;
286-
overflow-y: scroll;
287-
transition: max-height 0.5s ease-out;
285+
display: none;
288286
border-bottom-left-radius: 10px;
289287
border-bottom-right-radius: 10px;
290288
}
@@ -705,6 +703,13 @@ body {
705703
color: var(--medium-gray);
706704
font-size: small;
707705
}
706+
.label-content {
707+
padding-left: 4px;
708+
font-size: small;
709+
}
710+
.label-content-missing {
711+
color: var(--secondary600);
712+
}
708713
.extension-request-header-wrapper {
709714
width: 100%;
710715
display: flex;

0 commit comments

Comments
 (0)