diff --git a/src/components/Project/AssignTask.jsx b/src/components/Project/AssignTask.jsx index 6a746552..0836cbd2 100644 --- a/src/components/Project/AssignTask.jsx +++ b/src/components/Project/AssignTask.jsx @@ -88,6 +88,8 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { // Changed to an array to hold multiple selected roles const [selectedRoles, setSelectedRoles] = useState(["all"]); + // Changed to an array to hold multiple selected roles + // const [selectedRoles, setSelectedRoles] = useState(["all"]); const [displayedSelection, setDisplayedSelection] = useState(""); const { handleSubmit, @@ -224,314 +226,337 @@ const AssignTask = ({ assignData, onClose, setAssigned }) => { }; return ( -
-

Assign Task

-
-
-

- - Work Location : - {[ - assignData?.building?.buildingName, - assignData?.floor?.floorName, - assignData?.workArea?.areaName, - assignData?.workItem?.activityMaster?.activityName, - ] - .filter(Boolean) // Filter out any undefined/null values - .map((item, index, array) => ( - - {item} - {index < array.length - 1 && ( - - )} - - ))} - -

+
+

Assign Task

+
+
+

+ + Work Location : {/* Changed font-bold to fw-bold */} + {[ + assignData?.building?.buildingName, + assignData?.floor?.floorName, + assignData?.workArea?.areaName, + assignData?.workItem?.activityMaster?.activityName, + ] + .filter(Boolean) // Filter out any undefined/null values + .map((item, index, array) => ( + + {item} + {index < array.length - 1 && ( + + )} + + ))} + +

-
-
-
-
-
-
- Select Team -
- + +
+
+
+
+
+ Select Team +
+ - {/* Badge */} - {selectedRolesCount > 0 && ( - - {selectedRolesCount} - - )} - - {/* Dropdown Menu */} -
    -
  • -
    - handleRoleChange(e, e.target.value)} - /> - -
    -
  • - - {jobRolesForDropdown?.map((role) => ( -
  • -
    - handleRoleChange(e, e.target.value)} - /> - -
    -
  • - ))} -
-
-
    0 && ( + -
  • + {selectedRolesCount} + + )} + + {/* Dropdown Menu - Corrected: Removed duplicate ul block */} +
      +
    • {/* Changed key="all" to a unique key if possible, or keep it if "all" is a unique identifier */} +
      + handleRoleChange(e, e.target.value)} + /> + +
      +
    • + + {jobRolesForDropdown?.map((role) => ( +
    • - handleRoleChange(e, e.target.value) - } + id={`checkboxRole-${role.id}`} // Unique ID + value={role.id} + checked={selectedRoles.includes(String(role.id))} + onChange={(e) => handleRoleChange(e, e.target.value)} /> -
    • - {jobRolesForDropdown?.map((role) => ( -
    • -
      - - handleRoleChange(e, e.target.value) - } - /> - -
      -
    • - ))} -
    - -
+ ))} +
+
-
- {selectedRoles?.length > 0 && ( -
- {employeeLoading ? ( -
-

Loading employees...

-
- ) : filteredEmployees?.length > 0 ? ( - filteredEmployees.map((emp) => { - const jobRole = jobRoleData?.find( - (role) => role?.id === emp?.jobRoleId - ); - - return ( -
-
- ( - { - handleCheckboxChange(e, emp); - }} - /> - )} - /> -
-

- {emp.firstName} {emp.lastName} -

- - {loading ? ( - - - - ) : ( - jobRole?.name || "Unknown Role" - )} - -
-
-
- ); - }) - ) : ( -
-

- No employees found for the selected role(s). -

-
- )} +
+
+
+ {selectedRoles?.length > 0 && ( +
+ {employeeLoading ? ( +
+

Loading employees...

- )} -
+ ) : filteredEmployees?.length > 0 ? ( + filteredEmployees.map((emp) => { + const jobRole = jobRoleData?.find( + (role) => role?.id === emp?.jobRoleId + ); -
- {watch("selectedEmployees")?.length > 0 && ( -
-
- {watch("selectedEmployees")?.map((empId) => { - const emp = employees.find((emp) => emp.id === empId); - return ( - emp && ( - +
+ ( + { + handleCheckboxChange(e, emp); + }} + /> + )} + /> +
+

{emp.firstName} {emp.lastName} -

{ - const updatedSelected = watch( - "selectedEmployees" - ).filter((id) => id !== empId); - setValue( - "selectedEmployees", - updatedSelected - ); - trigger("selectedEmployees"); - }} - > - -

- - ) - ); - })} -
+

+ + {loading ? ( + + + + ) : ( + jobRole?.name || "Unknown Role" + )} + +
+
+
+ ); + }) + ) : ( +
+

+ No employees found for the selected role(s). +

)}
+ )} +
- {!loading && errors.selectedEmployees && ( -
-

{errors.selectedEmployees.message}

{" "} +
+ {watch("selectedEmployees")?.length > 0 && ( +
+
+ {watch("selectedEmployees")?.map((empId) => { + const emp = employees.find((emp) => emp.id === empId); + return ( + emp && ( + + {emp.firstName} {emp.lastName} + {/* Changed p tag to button for semantic correctness and accessibility */} + + + ) + ); + })}
- )} +
+ )} +
-
-
-
+ )} + +
+
+ +
+
+ + {/* Target for Today input and validation */} +
+
+ +
+
+ ( +
+ + + {" "} { assignData?.workItem?.activityMaster ?.unitOfMeasurement } - -
+ +
{
- -
-
- - {/* Target for Today input and validation */} -
-
- -
-
- ( -
- - - { - assignData?.workItem?.activityMaster - ?.unitOfMeasurement - } - -
-
-   - - - - -
-
-
- )} - /> -
- - {errors.plannedTask && ( -
- {errors.plannedTask.message}
)} - - {isHelpVisible && ( -
-

- Enter the target value for today's task. -

-
- )} -
- - - ( -