Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 17 additions & 14 deletions requests/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ const intersectionObserver = new IntersectionObserver(async (entries) => {
}
if (entries[0].isIntersecting && !isDataLoading) {
await renderRequestCards({
state: statusValue,
[isDev ? 'status' : 'state']: statusValue,
sort: sortByValue,
next: nextLink,
requestType: currentReqType,
Expand All @@ -88,7 +88,7 @@ oooTabLink.addEventListener('click', async function (event) {
changeFilter();
updateUrlWithQuery(currentReqType);
await renderRequestCards({
state: statusValue,
[isDev ? 'status' : 'state']: statusValue,
sort: sortByValue,
requestType: currentReqType,
});
Expand All @@ -105,7 +105,7 @@ extensionTabLink.addEventListener('click', async function (event) {
changeFilter();
updateUrlWithQuery(currentReqType);
await renderRequestCards({
state: statusValue,
[isDev ? 'status' : 'state']: statusValue,
sort: sortByValue,
requestType: currentReqType,
});
Expand Down Expand Up @@ -207,6 +207,7 @@ const changeFilter = () => {
function createRequestCard(request, superUserDetails, requesterUserDetails) {
let {
id,
status,
state,
from,
until,
Expand All @@ -219,17 +220,18 @@ function createRequestCard(request, superUserDetails, requesterUserDetails) {
reason,
updatedAt,
} = request;
const requestStatus = isDev ? status : state;
let showSuperuserDetailsClass = 'notHidden';
let showActionButtonClass = 'notHidden';
const isRequestTypeOnboarding = type === ONBOARDING_EXTENSION_REQUEST_TYPE;
if (
state === 'PENDING' ||
requestStatus === 'PENDING' ||
lastModifiedBy === undefined ||
lastModifiedBy === null
) {
showSuperuserDetailsClass = 'hidden';
}
if (state !== 'PENDING') {
if (requestStatus !== 'PENDING') {
showActionButtonClass = 'hidden';
}
const createdDate = convertDateToReadableStringDate(
Expand Down Expand Up @@ -471,10 +473,9 @@ function createRequestCard(request, superUserDetails, requesterUserDetails) {
}),
createElementFromMap({
tagName: 'button',
class: ['request__status', `request__status--${state.toLowerCase()}`],
testId: 'request-status',
class: ['request__status', `request__status--${requestStatus.toLowerCase()}`],
textContent:
state.charAt(0).toUpperCase() + state.slice(1).toLowerCase() ||
requestStatus.charAt(0).toUpperCase() + requestStatus.slice(1).toLowerCase() ||
'N/A',
}),
],
Expand All @@ -495,12 +496,14 @@ async function renderRequestCards(queries = {}) {

for (const request of requestResponse?.data || []) {
let superUserDetails;

let requesterUserDetails = await getUserDetails(request.requestedBy);
if ((isDev ? request.status : request.state) !== 'PENDING') {
superUserDetails = await getUserDetails(request.lastModifiedBy);
}
Comment on lines +499 to +503
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate declaration of requesterUserDetails variable

There are two declarations of the requesterUserDetails variable in this code section:

// First declaration
let requesterUserDetails = await getUserDetails(request.requestedBy);

// Second declaration (a few lines later)
let requesterUserDetails = await getUserDetails(
  request.type === 'OOO' ? request.requestedBy : request.userId,
);

This will cause a syntax error as variables cannot be declared twice in the same scope.

Consider either:

  1. Removing the first declaration and keeping the more specific second one, or
  2. Merging the logic into a single declaration that handles both cases appropriately

This needs to be resolved before merging to prevent runtime errors.

Suggested change
let requesterUserDetails = await getUserDetails(request.requestedBy);
if ((isDev ? request.status : request.state) !== 'PENDING') {
superUserDetails = await getUserDetails(request.lastModifiedBy);
}
let requesterUserDetails;
if ((isDev ? request.status : request.state) !== 'PENDING') {
superUserDetails = await getUserDetails(request.lastModifiedBy);
}

Spotted by Diamond

Is this helpful? React 👍 or 👎 to let us know.

let requesterUserDetails = await getUserDetails(
request.type === 'OOO' ? request.requestedBy : request.userId,
);
if (request.state !== 'PENDING') {
superUserDetails = await getUserDetails(request.lastModifiedBy);
}
requestContainer.appendChild(
createRequestCard(request, superUserDetails, requesterUserDetails),
);
Expand Down Expand Up @@ -596,13 +599,13 @@ async function performAcceptRejectAction(isAccepted, e) {
let remark = document.getElementById(`remark-text-${requestId}`).value;
let body = JSON.stringify({
type: currentReqType,
message: remark,
state: isAccepted ? 'APPROVED' : 'REJECTED',
reason: remark,
[isDev ? 'status' : 'state']: isAccepted ? 'APPROVED' : 'REJECTED',
});
if (remark === '' || remark === undefined || remark === null) {
body = JSON.stringify({
type: currentReqType,
state: isAccepted ? 'APPROVED' : 'REJECTED',
[isDev ? 'status' : 'state']: isAccepted ? 'APPROVED' : 'REJECTED',
});
}

Expand Down
Loading