-
Notifications
You must be signed in to change notification settings - Fork 24
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
HLM-6172 allowing user to enter 0.somehing in hypothesis section #856
Conversation
WalkthroughWalkthroughThe recent changes focus on improving the validation logic across multiple components in the Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Outside diff range and nitpick comments (10)
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js (4)
Line range hint
61-61
: Consider using optional chaining for better safety and readability.- if (!hypothesisAssumptions) return; + if (!hypothesisAssumptions?.length) return;This change uses optional chaining to safely access properties on potentially null or undefined objects, reducing the risk of runtime errors.
Also applies to: 73-73, 493-493, 499-499
Line range hint
388-396
: Add keyboard accessibility to clickable elements.Elements that are interactable via mouse clicks should also be accessible through keyboard events to support accessibility standards.
+ onKeyPress={handleKeyPress}
Adding a
onKeyPress
event handler will make this element accessible via keyboard, enhancing accessibility.
Line range hint
370-370
: Specify button types to prevent unintended form submissions.- <button onClick={...}> + <button type="button" onClick={...}>Explicitly setting the button type to "button" prevents it from submitting forms unintentionally, which is the default behavior when placed inside a form.
Also applies to: 411-411
Line range hint
571-571
: UseNumber.isNaN
for more accurate number validation.- if (isNaN(value)) ... + if (Number.isNaN(Number(value))) ...Replacing
isNaN
withNumber.isNaN
after ensuring the value is a number provides a more accurate check and avoids the coercion pitfalls ofisNaN
.Also applies to: 576-576
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js (6)
Line range hint
274-274
: Move variable declarations to the root of the function scope.Variables declared with
var
inside blocks (like loops or conditionals) are function-scoped, not block-scoped, which can lead to unexpected behavior if not handled carefully. Consider refactoring by moving thevar
declarations to the top of the function or usinglet
orconst
for block scoping.
Line range hint
373-373
: Avoid duplicate object keys in your configurations.You have defined the
padding
property multiple times in the same object. This can lead to confusion and bugs as only the last property will be used and others will be ignored. Consider consolidating these into a single property or renaming them if they serve different purposes.
Line range hint
724-733
: ReplaceflatMap
withflat
where no mapping function is necessary.- tempdata = filteredSchemas?.map((item) => Object.entries(item?.schema?.Properties || {}).reduce((acc, [key, value]) => { - if (value?.isRuleConfigureInputs && value?.toShowInMicroplanPreview) { - acc.push(key); - } - return acc; - }, [])).flatMap((item) => item).filter((item) => !!item); + tempdata = filteredSchemas?.flatMap((item) => Object.entries(item?.schema?.Properties || {}).filter(([key, value]) => value?.isRuleConfigureInputs && value?.toShowInMicroplanPreview).map(([key]) => key)).flat().filter((item) => !!item);This change avoids unnecessary callbacks and simplifies the code by directly using
flat
to flatten the array.Also applies to: 737-744, 1079-1079
Line range hint
705-705
: Remove unnecessaryelse
clauses.The
else
clauses in your code are not needed because all preceding branches of theif
statements end with areturn
orbreak
. Removing these will make the code cleaner and easier to read.Also applies to: 866-866, 1048-1048
Line range hint
1095-1109
: Encapsulate variable declarations within their respective switch cases.Variables declared in switch cases are accessible throughout the entire switch block, which can lead to unexpected behavior if the same variable names are used in different cases. Consider wrapping each case's content in a block
{}
to limit the scope of the variables.
Line range hint
129-129
: Use optional chaining for safer property access.- if (boundarySelections && Object.values(boundarySelections).every((item) => item.length === 0) && hierarchy) { + if (boundarySelections?.every((item) => item.length === 0) && hierarchy) {This change prevents potential runtime errors by ensuring that the code does not attempt to access properties of
null
orundefined
.Also applies to: 802-802, 1063-1063
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (2)
- micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js (2 hunks)
- micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js (2 hunks)
Additional context used
Path-based instructions (2)
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js (1)
Pattern
**/*.js
: checkmicro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js (1)
Pattern
**/*.js
: check
Biome
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js
[error] 61-61: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 73-73: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 388-396: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event. (lint/a11y/useKeyWithClickEvents)
Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.
[error] 493-493: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 499-499: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 370-370: Provide an explicit type prop for the button element. (lint/a11y/useButtonType)
The default type of a button is submit, which causes the submission of a form when placed inside a
form
element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset
[error] 411-411: Provide an explicit type prop for the button element. (lint/a11y/useButtonType)
The default type of a button is submit, which causes the submission of a form when placed inside a
form
element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset
[error] 571-571: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 576-576: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js
[error] 129-129: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 274-274: This var should be declared at the root of the enclosing function. (lint/correctness/noInnerDeclarations)
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
[error] 373-373: This property value named padding is later overwritten by an object member with the same name. (lint/suspicious/noDuplicateObjectKeys)
Overwritten with this value.
If an object property with the same name is defined multiple times (except when combining a getter with a setter), only the last definition makes it into the object and previous definitions are ignored.
Unsafe fix: Remove this property value named padding
[error] 705-707: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 724-733: Avoid unnecessary callback in flatMap call. (lint/correctness/noFlatMapIdentity)
You can just use flat to flatten the array.
Safe fix: Replace unnecessary flatMap call to flat instead.
[error] 737-744: Avoid unnecessary callback in flatMap call. (lint/correctness/noFlatMapIdentity)
You can just use flat to flatten the array.
Safe fix: Replace unnecessary flatMap call to flat instead.
[error] 802-802: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 866-866: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 1048-1050: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 1063-1063: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 1079-1079: Avoid unnecessary callback in flatMap call. (lint/correctness/noFlatMapIdentity)
You can just use flat to flatten the array.
Safe fix: Replace unnecessary flatMap call to flat instead.
[error] 1095-1095: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause. (lint/correctness/noSwitchDeclarations)The declaration is defined in this switch clause:
Unsafe fix: Wrap the declaration in a block.
[error] 1095-1095: This var should be declared at the root of the enclosing function. (lint/correctness/noInnerDeclarations)
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
[error] 1098-1107: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause. (lint/correctness/noSwitchDeclarations)The declaration is defined in this switch clause:
Unsafe fix: Wrap the declaration in a block.
[error] 1109-1109: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause. (lint/correctness/noSwitchDeclarations)The declaration is defined in this switch clause:
Unsafe fix: Wrap the declaration in a block.
[error] 613-613: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 946-946: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 1127-1127: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 1127-1127: isFinite is unsafe. It attempts a type coercion. Use Number.isFinite instead. (lint/suspicious/noGlobalIsFinite)
See the MDN documentation for more details.
Unsafe fix: Use Number.isFinite instead.
[error] 1214-1214: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
...web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js
Outdated
Show resolved
Hide resolved
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js
Outdated
Show resolved
Hide resolved
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Outside diff range and nitpick comments (19)
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js (4)
Line range hint
378-378
: Add explicittype="button"
to button elements to prevent unintentional form submissions.- <button className="add-button" onClick={() => addAssumptionsHandler(setAssumptions)}> + <button type="button" className="add-button" onClick={() => addAssumptionsHandler(setAssumptions)}> - <button className="delete-button delete-button-help-locator" onClick={() => deleteHandler(item)}> + <button type="button" className="delete-button delete-button-help-locator" onClick={() => deleteHandler(item)}>This ensures that the buttons do not inadvertently submit forms when used within form elements.
Also applies to: 419-419
Tools
Biome
[error] 132-134: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
Line range hint
579-579
: ReplaceisNaN
withNumber.isNaN
to avoid type coercion.- setInputValue(!isNaN(value) ? value : ""); + setInputValue(!Number.isNaN(parseFloat(value)) ? value : ""); - value: !isNaN(value) ? value : "", + value: !Number.isNaN(parseFloat(value)) ? value : "",Using
Number.isNaN
provides a more reliable check by avoiding implicit type coercion that occurs withisNaN
.Also applies to: 584-584
Tools
Biome
[error] 132-134: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
Line range hint
61-61
: Implement optional chaining to make the code more robust.- if (state?.tourStateData?.name === page) return; + if (state?.tourStateData?.name?.page) return; - if (!hypothesisAssumptions) return; + if (!hypothesisAssumptions?) return; - if (item && item.key) setSelected({ code: item.key }); + if (item?.key) setSelected({ code: item.key }); - if (!options) return; + if (!options?) return;This change avoids potential runtime errors by safely accessing nested properties.
Also applies to: 73-73, 501-501, 507-507
Tools
Biome
[error] 132-134: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
Line range hint
396-404
: Add keyboard event handlers to complement mouse events for accessibility.- <button className="delete-button invisible" onClick={() => deleteHandler(item)}> + <button className="delete-button invisible" onClick={() => deleteHandler(item)} onKeyPress={({ key }) => key === 'Enter' && deleteHandler(item)}>This modification ensures that the functionality is accessible via both mouse and keyboard, enhancing usability for users relying on keyboard navigation.
Tools
Biome
[error] 132-134: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js (6)
Line range hint
274-274
: Consider declaring the variablevar { hierarchyLists, hierarchicalData }
at the root of the enclosing function to improve code clarity and maintainability.
Line range hint
373-373
: The property value namedpadding
is later overwritten by an object member with the same name. To avoid confusion and potential bugs, consider removing or consolidating these duplicate keys.
Line range hint
705-707
: Theelse
clause following theif
statement can be omitted because the previous branches break early, simplifying the code structure.- else { - // code block - }
Line range hint
724-733
: Replace unnecessaryflatMap
calls withflat
to simplify the code and improve performance by avoiding unnecessary callbacks.- .flatMap((item) => item) + .flat()Also applies to: 737-744, 1079-1079
Line range hint
1095-1095
: Wrap the declarations within theswitch
clause in blocks to restrict their scope, enhancing code clarity and preventing potential bugs due to variable hoisting.case EXCEL: { let data = fetchExcelData(); // additional logic } break;Also applies to: 1098-1107, 1109-1109
Line range hint
613-613
: Replace globalisNaN
andisFinite
withNumber.isNaN
andNumber.isFinite
respectively to avoid type coercion and ensure more accurate checks.- if (isNaN(value) || (!isFinite(value) && value !== "")) + if (Number.isNaN(value) || (!Number.isFinite(value) && value !== ""))Also applies to: 946-946, 1127-1127, 1127-1127
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Upload.js (9)
Line range hint
151-165
: Consider simplifying the control flow by removing the unnecessary 'else' clause after 'return' statements.- else { - if (navigationEvent?.name === "next") { - if (currentSectionIndex < sections.length - 1) { - setSelectedSection(sections[currentSectionIndex + 1]); - setCheckDataCompletion("false"); - return; - } - } else if (navigationEvent?.name === "previousStep") { - if (currentSectionIndex > 0) { - setSelectedSection(sections[currentSectionIndex - 1]); - setCheckDataCompletion("false"); - return; - } - } - }
Line range hint
220-220
: Consider using optional chaining to simplify your code and enhance its readability.- if (filteredList?.length === 0) return false; + return filteredList?.length === 0 ? false : true;Also applies to: 283-283, 556-556, 1810-1810
Line range hint
698-703
: The 'else' clause after 'return' statements in previous branches can be omitted to simplify the control flow.- else { - if (navigationEvent?.name === "next") { - if (currentSectionIndex < sections.length - 1) { - setSelectedSection(sections[currentSectionIndex + 1]); - setCheckDataCompletion("false"); - return; - } - } else if (navigationEvent?.name === "previousStep") { - if (currentSectionIndex > 0) { - setSelectedSection(sections[currentSectionIndex - 1]); - setCheckDataCompletion("false"); - return; - } - } - }
Line range hint
1365-1367
: Convert this function expression to an arrow function to enhance readability and maintain consistency in function definitions.- const trimJSON = function(jsonObject) { + const trimJSON = (jsonObject) => {
Line range hint
1385-1385
: ReplacehasOwnProperty
withObject.hasOwn()
for better safety and compliance with modern JavaScript standards.- if (jsonObject.hasOwnProperty(key)) { + if (Object.hasOwn(jsonObject, key)) {Also applies to: 1701-1701
Line range hint
1395-1448
: Avoid using 'async' within Promise executor functions to prevent potential issues with exception handling.- return new Promise(async (resolve, reject) => { + return new Promise((resolve, reject) => {
Line range hint
1462-1464
: Remove unnecessary 'else' clauses after 'return' statements to simplify the control flow.- else { - if (!allFilesMatchRegex) - resolve({ - valid: false, - message: ["ERROR_CONTENT_NAMING_CONVENSION"], - toast: { state: "error", data: geojson, message: t("ERROR_CONTENT_NAMING_CONVENSION") }, - }); - else if (!shpFile) - resolve({ valid: false, message: ["ERROR_SHP_MISSING"], toast: { state: "error", data: geojson, message: t("ERROR_SHP_MISSING") } }); - else if (!dbfFile) - resolve({ valid: false, message: ["ERROR_DBF_MISSING"], toast: { state: "error", data: geojson, message: t("ERROR_DBF_MISSING") } }); - else if (!shxFile) - resolve({ valid: false, message: ["ERROR_SHX_MISSING"], toast: { state: "error", data: geojson, message: t("ERROR_SHX_MISSING") } }); - }Also applies to: 1588-1590
Line range hint
705-705
: Avoid reassigning the catch parameter as it can lead to confusion and potential bugs.- catch (error) { + catch (errorData) {
[!TIP]
Codebase VerificationEnsure that actions triggered by mouse events also have corresponding keyboard events to support accessibility.
- The following
onClick
events in theUpload.js
file do not have corresponding keyboard event handlers:
- Line 190:
<div className={
${selected ? "upload-section-options-active" : "upload-section-options-inactive"}} onClick={handleClick}>
- Line 196:
<div className="link" onClick={setModal}>
To improve accessibility, add appropriate keyboard event handlers (e.g.,
onKeyUp
,onKeyDown
, oronKeyPress
) to these elements.Analysis chain
Line range hint
1126-1126
: Ensure that actions triggered by mouse events also have corresponding keyboard events to support accessibility.Also applies to: 1149-1149
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify that keyboard events are added for all mouse events in the component. rg --type js $'onClick={.*}' -C 5 | grep -v 'onKeyUp|onKeyDown|onKeyPress'Length of output: 179
Script:
#!/bin/bash # Verify that keyboard events are added for all mouse events in the component. rg --type js 'onClick={.*}' -C 5 | grep -v -E 'onKeyUp|onKeyDown|onKeyPress'Length of output: 182
Script:
#!/bin/bash # Verify that keyboard events are added for all mouse events in the component. rg --type js 'onClick={' -C 5 | grep -v -E 'onKeyUp|onKeyDown|onKeyPress'Length of output: 157
Script:
#!/bin/bash # Verify that keyboard events are added for all mouse events in the component. rg --type js 'onClick={' -C 5 | grep -v -E 'onKeyUp|onKeyDown|onKeyPress'Length of output: 157
Script:
#!/bin/bash # Verify that keyboard events are added for all mouse events in the component. rg --type js 'onClick=' -C 5 | grep -v -E 'onKeyUp|onKeyDown|onKeyPress'Length of output: 113799
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js (2 hunks)
- micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js (2 hunks)
- micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Upload.js (1 hunks)
Additional context used
Path-based instructions (3)
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js (1)
Pattern
**/*.js
: checkmicro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js (1)
Pattern
**/*.js
: checkmicro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Upload.js (1)
Pattern
**/*.js
: check
Learnings (1)
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Upload.js (4)
User: siddhant-nawale-egov PR: egovernments/DIGIT-Frontend#845 File: micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Upload.js:460-461 Timestamp: 2024-06-12T08:18:44.708Z Learning: Error handling for Shapefile parsing in `Upload.js` is managed commonly and is handled elsewhere in the codebase, as clarified by the user.
User: siddhant-nawale-egov PR: egovernments/DIGIT-Frontend#204 File: micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/pages/employee/Upload.js:468-481 Timestamp: 2024-03-13T07:33:45.211Z Learning: The error message in the `checkForErrorInUploadedFile` function within `Upload.js` is being localized and improved for better user experience, as clarified by the user.
User: siddhant-nawale-egov PR: egovernments/DIGIT-Frontend#204 File: micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/pages/employee/Upload.js:0-0 Timestamp: 2024-03-13T05:11:36.400Z Learning: A more detailed message for file parsing errors in the `Upload.js` file is displayed elsewhere in the code, as clarified by the user.
User: siddhant-nawale-egov PR: egovernments/DIGIT-Frontend#214 File: micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/pages/employee/Upload.js:14-17 Timestamp: 2024-03-15T12:20:50.090Z Learning: The `geojsonValidations` is a utility developed within the DIGIT-Frontend project, not an external dependency.
Biome
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Hypothesis.js
[error] 61-61: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 73-73: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 132-134: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 396-404: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event. (lint/a11y/useKeyWithClickEvents)
Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.
[error] 501-501: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 507-507: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 378-378: Provide an explicit type prop for the button element. (lint/a11y/useButtonType)
The default type of a button is submit, which causes the submission of a form when placed inside a
form
element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset
[error] 419-419: Provide an explicit type prop for the button element. (lint/a11y/useButtonType)
The default type of a button is submit, which causes the submission of a form when placed inside a
form
element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset
[error] 579-579: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 584-584: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js
[error] 129-129: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 274-274: This var should be declared at the root of the enclosing function. (lint/correctness/noInnerDeclarations)
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
[error] 373-373: This property value named padding is later overwritten by an object member with the same name. (lint/suspicious/noDuplicateObjectKeys)
Overwritten with this value.
If an object property with the same name is defined multiple times (except when combining a getter with a setter), only the last definition makes it into the object and previous definitions are ignored.
Unsafe fix: Remove this property value named padding
[error] 705-707: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 724-733: Avoid unnecessary callback in flatMap call. (lint/correctness/noFlatMapIdentity)
You can just use flat to flatten the array.
Safe fix: Replace unnecessary flatMap call to flat instead.
[error] 737-744: Avoid unnecessary callback in flatMap call. (lint/correctness/noFlatMapIdentity)
You can just use flat to flatten the array.
Safe fix: Replace unnecessary flatMap call to flat instead.
[error] 802-802: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 866-866: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 1048-1050: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 1063-1063: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 1079-1079: Avoid unnecessary callback in flatMap call. (lint/correctness/noFlatMapIdentity)
You can just use flat to flatten the array.
Safe fix: Replace unnecessary flatMap call to flat instead.
[error] 1095-1095: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause. (lint/correctness/noSwitchDeclarations)The declaration is defined in this switch clause:
Unsafe fix: Wrap the declaration in a block.
[error] 1095-1095: This var should be declared at the root of the enclosing function. (lint/correctness/noInnerDeclarations)
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
[error] 1098-1107: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause. (lint/correctness/noSwitchDeclarations)The declaration is defined in this switch clause:
Unsafe fix: Wrap the declaration in a block.
[error] 1109-1109: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause. (lint/correctness/noSwitchDeclarations)The declaration is defined in this switch clause:
Unsafe fix: Wrap the declaration in a block.
[error] 613-613: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 946-946: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 1127-1127: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.
[error] 1127-1127: isFinite is unsafe. It attempts a type coercion. Use Number.isFinite instead. (lint/suspicious/noGlobalIsFinite)
See the MDN documentation for more details.
Unsafe fix: Use Number.isFinite instead.
[error] 1214-1214: isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead. (lint/suspicious/noGlobalIsNan)
See the MDN documentation for more details.
Unsafe fix: Use Number.isNaN instead.micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/Upload.js
[error] 151-165: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 220-220: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 283-283: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 556-556: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 698-703: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 1126-1126: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event. (lint/a11y/useKeyWithClickEvents)
Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.
[error] 1149-1149: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event. (lint/a11y/useKeyWithClickEvents)
Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.
[error] 1217-1220: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 1365-1367: This function expression can be turned into an arrow function. (lint/complexity/useArrowFunction)
Function expressions that don't use this can be turned into arrow functions.
Safe fix: Use an arrow function instead.
[error] 1385-1385: Do not access Object.prototype method 'hasOwnProperty' from target object. (lint/suspicious/noPrototypeBuiltins)
It's recommended using Object.hasOwn() instead of using Object.hasOwnProperty().
See MDN web docs for more details.
[error] 1395-1448: Promise executor functions should not be
async
. (lint/suspicious/noAsyncPromiseExecutor)
[error] 1462-1464: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 1588-1590: This else clause can be omitted because previous branches break early. (lint/style/noUselessElse)
Unsafe fix: Omit the else clause.
[error] 1701-1701: Do not access Object.prototype method 'hasOwnProperty' from target object. (lint/suspicious/noPrototypeBuiltins)
It's recommended using Object.hasOwn() instead of using Object.hasOwnProperty().
See MDN web docs for more details.
[error] 1810-1810: Change to an optional chain. (lint/complexity/useOptionalChain)
Unsafe fix: Change to an optional chain.
[error] 705-705: Reassigning a catch parameter is confusing. (lint/suspicious/noCatchAssign)
The catch parameter is declared here:
Use a local variable instead.
[error] 1147-1147: Missing key property for this element in iterable. (lint/correctness/useJsxKeyInIterable)
The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.
[error] 1239-1239: Provide an explicit type prop for the button element. (lint/a11y/useButtonType)
The default type of a button is submit, which causes the submission of a form when placed inside a
form
element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset
[error] 1278-1278: Provide an explicit type prop for the button element. (lint/a11y/useButtonType)
The default type of a button is submit, which causes the submission of a form when placed inside a
form
element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset
[error] 1295-1295: Provide an explicit type prop for the button element. (lint/a11y/useButtonType)
The default type of a button is submit, which causes the submission of a form when placed inside a
form
element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset
Additional comments not posted (1)
micro-ui/web/micro-ui-internals/packages/modules/hcm-microplanning/src/components/MicroplanPreview.js (1)
411-414
: This validation prevents the hypothesis value from being zero, which aligns with the PR's objective to handle zero values more accurately. However, consider enhancing the user feedback by explaining why zero values are not allowed, possibly through a more detailed error message.
No description provided.