Info-icon add

This commit is contained in:
kartik.sharma 2025-05-17 16:10:11 +05:30
parent 1b92c30d33
commit f6cbc3acc9

View File

@ -41,40 +41,29 @@ const AssignRoleModel = ({ assignData, onClose }) => {
const [isHelpVisible, setIsHelpVisible] = useState(false); const [isHelpVisible, setIsHelpVisible] = useState(false);
const handleHelpClickTarget = () => { const infoRef = useRef(null);
setIsHelpVisibleTarget(!isHelpVisibleTarget); const infoRef1 = useRef(null);
};
const [isHelpVisiblePending, setIsHelpVisiblePending] = useState(false);
const helpPopupRefPending = useRef(null);
const handleHelpClickPending = () => {
setIsHelpVisiblePending(!isHelpVisiblePending);
};
const handleClickOutside = (event) => {
if (
helpPopupRefTarget.current &&
!helpPopupRefTarget.current.contains(event.target) &&
isHelpVisibleTarget
) {
setIsHelpVisibleTarget(false);
}
if (
helpPopupRefPending.current &&
!helpPopupRefPending.current.contains(event.target) &&
isHelpVisiblePending
) {
setIsHelpVisiblePending(false);
}
};
useEffect(() => { useEffect(() => {
document.addEventListener("mousedown", handleClickOutside);
return () => { if (infoRef.current) {
document.removeEventListener("mousedown", handleClickOutside); new bootstrap.Popover(infoRef.current, {
}; trigger: 'focus',
}, [isHelpVisibleTarget, isHelpVisiblePending]); placement: 'right',
html: true,
content: `<div>Pending Task assign for today</div>`,
});
}
if (infoRef1.current) {
new bootstrap.Popover(infoRef1.current, {
trigger: 'focus',
placement: 'right',
html: true,
content: `<div>Target task for today</div>`,
});
}
}, []);
const [plannedTask, setPlannedTask] = useState(); const [plannedTask, setPlannedTask] = useState();
@ -387,57 +376,45 @@ const AssignRoleModel = ({ assignData, onClose }) => {
<div className="col-md text-start mx-0 px-0"> <div className="col-md text-start mx-0 px-0">
<div className="form-check form-check-inline mt-3 px-1"> <div className="form-check form-check-inline mt-3 px-1">
<label <label className="form-text text-dark align-items-center d-flex" htmlFor="inlineCheckbox1">
className="form-text text-dark align-items-center d-flex"
htmlFor="inlineCheckbox1"
>
Pending Task of Activity : Pending Task of Activity :
<label <label className="form-check-label fs-7 ms-4" htmlFor="inlineCheckbox1">
className="form-check-label fs-7 ms-4"
htmlFor="inlineCheckbox1"
>
<strong> <strong>
{assignData?.workItem?.workItem?.plannedWork - {assignData?.workItem?.workItem?.plannedWork - assignData?.workItem?.workItem?.completedWork}
assignData?.workItem?.workItem?.completedWork}
</strong>{" "} </strong>{" "}
<u>{assignData?.workItem?.workItem?.activityMaster?.unitOfMeasurement}</u>
<u>
{assignData?.workItem?.workItem?.activityMaster?.unitOfMeasurement}
</u>
</label> </label>
<span
style={{ marginLeft: '8px', cursor: 'pointer' }} <div style={{ display: "flex", alignItems: "center" }}>
onClick={handleHelpClickPending} <div
ref={infoRef}
tabIndex="0"
className="d-flex align-items-center avatar-group justify-content-center ms-2"
data-bs-toggle="popover"
data-bs-trigger="focus"
data-bs-placement="right"
data-bs-html="true"
style={{ cursor: "pointer" }}
> >
&nbsp;
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
width="16" width="13"
height="16" height="13"
fill="currentColor" fill="currentColor"
className="bi bi-question-circle" className="bi bi-info-circle"
viewBox="0 0 16 16" viewBox="0 0 16 16"
> >
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" /> <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" />
<path d="M5.255 5.786a.237.237 0 0 0 .241.247h.03l.208.346c.348.579.957.924 1.468.924.475 0 .826-.164.925-.369.17-.33.109-.935-.346-1.292-.457-.351-.887-.723-1.246-1.02zM6 10.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0z" /> <path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.547 1.11l1.91-2.011c.241-.256.384-.592.287-.984-.172-.439-.58-.827-1.13-.967a.664.664 0 0 1-.58-.309l-.15-.241-.002-.002zM8 4c-.535 0-.943.372-.943.836 0 .464.408.836.943.836.535 0 .943-.372.943-.836 0-.464-.408-.836-.943-.836z" />
</svg> </svg>
</span> </div>
</div>
</label> </label>
</div> </div>
{isHelpVisiblePending && (
<div
className="position-absolute bg-white border p-2 rounded shadow"
style={{ zIndex: 10, marginLeft: '10px' }}
ref={helpPopupRefPending}
>
<p className="mb-0">
Pending Task
</p>
</div> </div>
)}
</div>
<div className="col-md text-start mx-0 px-0"> <div className="col-md text-start mx-0 px-0">
<div className="form-check form-check-inline mt-2 px-1 mb-2 text-start"> <div className="form-check form-check-inline mt-2 px-1 mb-2 text-start">
<label <label
@ -445,7 +422,6 @@ const AssignRoleModel = ({ assignData, onClose }) => {
htmlFor="inlineCheckbox1" htmlFor="inlineCheckbox1"
> >
<span>Target for Today</span>&nbsp;<span style={{ marginLeft: '46px' }}>:</span> <span>Target for Today</span>&nbsp;<span style={{ marginLeft: '46px' }}>:</span>
</label> </label>
</div> </div>
<div className="form-check form-check-inline col-sm-3 mt-2" style={{ marginLeft: '-28px' }}> <div className="form-check form-check-inline col-sm-3 mt-2" style={{ marginLeft: '-28px' }}>
@ -464,25 +440,36 @@ const AssignRoleModel = ({ assignData, onClose }) => {
<span style={{ paddingLeft: '6px' }}> <span style={{ paddingLeft: '6px' }}>
{assignData?.workItem?.workItem?.activityMaster?.unitOfMeasurement} {assignData?.workItem?.workItem?.activityMaster?.unitOfMeasurement}
</span> </span>
<span <div style={{ display: "flex", alignItems: "center" }}>
style={{ marginLeft: "8px", cursor: "pointer" }} <div
onClick={handleHelpClickPending} ref={infoRef1}
tabIndex="0"
className="d-flex align-items-center avatar-group justify-content-center ms-2"
data-bs-toggle="popover"
data-bs-trigger="focus"
data-bs-placement="right"
data-bs-html="true"
style={{ cursor: "pointer" }}
> >
&nbsp;
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
width="16" width="13"
height="16" height="13"
fill="currentColor" fill="currentColor"
className="bi bi-question-circle" className="bi bi-info-circle"
viewBox="0 0 16 16" viewBox="0 0 16 16"
> >
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" /> <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" />
<path d="M5.255 5.786a.237.237 0 0 0 .241.247h.03l.208.346c.348.579.957.924 1.468.924.475 0 .826-.164.925-.369.17-.33.109-.935-.346-1.292-.457-.351-.887-.723-1.246-1.02zM6 10.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0z" /> <path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.547 1.11l1.91-2.011c.241-.256.384-.592.287-.984-.172-.439-.58-.827-1.13-.967a.664.664 0 0 1-.58-.309l-.15-.241-.002-.002zM8 4c-.535 0-.943.372-.943.836 0 .464.408.836.943.836.535 0 .943-.372.943-.836 0-.464-.408-.836-.943-.836z" />
</svg> </svg>
</span> </div>
</div>
</div> </div>
)} )}
/> />
</div> </div>
{errors.plannedTask && ( {errors.plannedTask && (