51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
"use client";
|
|
|
|
import AppContext from "@ctx/AppContext";
|
|
import React, { useContext, useEffect, useState } from "react";
|
|
|
|
const page = ({ title, detail, value }) => {
|
|
const CTX = useContext(AppContext);
|
|
const permissionsChoose = CTX.state.permissionsChoose;
|
|
const roleData = CTX.state.roleData;
|
|
|
|
const [isChecked, setIsChecked] = useState(false);
|
|
|
|
const handlePermissionsChoose = (e) => {
|
|
setIsChecked(e.target.checked);
|
|
if (e.target.checked) {
|
|
CTX.setPermissionsChoose((current) => [...current, value]);
|
|
} else {
|
|
CTX.setPermissionsChoose(permissionsChoose.filter((el) => el !== value));
|
|
}
|
|
};
|
|
|
|
useEffect(() => {
|
|
if (!!permissionsChoose?.find((e) => e == value)) {
|
|
setIsChecked(true);
|
|
}
|
|
}, [permissionsChoose]);
|
|
|
|
return (
|
|
<div className="flex rtl mt-4">
|
|
<div>
|
|
<input
|
|
type="checkbox"
|
|
className="w-[40px] h-[40px] !rounded-xl mx-2 custom-checkbox mt-1"
|
|
checked={isChecked ? true : false}
|
|
defaultValue={isChecked}
|
|
name="hasSchengenRelative"
|
|
// onClick={checkBoxEvent}
|
|
onChange={(e) => handlePermissionsChoose(e)}
|
|
/>
|
|
</div>
|
|
|
|
<div>
|
|
<h2 className="font-bold text-textMain-100">{title}</h2>
|
|
<p className="mb-0 text-textMain-100 text-right text-sm">{detail} </p>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default page;
|