page add panel/doctor role agent && save data crop img && upload img && just roles agent can access panel && save data doctor && add field phone number && remove two tab
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { useState } from "react";
|
||||
|
||||
import { convertToJalali } from "@/helper";
|
||||
import EditField from "@/app/component/EditField";
|
||||
import ButtonDate from "@/app/component/ButtonDate";
|
||||
import CalendarPD from "@/components/icons/CalendarPD";
|
||||
import ContentText from "@/app/component/ContentText";
|
||||
|
||||
function FieldDate({ changeListData, data }) {
|
||||
const [anchorEl, setAnchorEl] = useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const id = open ? "simple-popover" : undefined;
|
||||
|
||||
const updateDate = (newDate) => {
|
||||
const jalaliDate = newDate
|
||||
? convertToJalali(newDate)
|
||||
: "تاریخ مد نظر پیدا نشد...";
|
||||
changeListData(jalaliDate, "value", "time_work");
|
||||
};
|
||||
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
|
||||
return (
|
||||
<ContentText text="زمان شروع به کار">
|
||||
<ButtonDate
|
||||
setAnchorEl={setAnchorEl}
|
||||
updateDate={updateDate}
|
||||
anchorEl={anchorEl}
|
||||
open={open}
|
||||
id={id}
|
||||
>
|
||||
<div className="relative w-full">
|
||||
<EditField
|
||||
placeholder="انتخاب کنید..."
|
||||
changeData={changeListData}
|
||||
data={data}
|
||||
icon={<CalendarPD />}
|
||||
isTransparent={true}
|
||||
iconGray={true}
|
||||
name="time_work"
|
||||
/>
|
||||
<span
|
||||
className="absolute left-0 top-0 w-full h-full bg-transparent z-10 cursor-pointer"
|
||||
onClick={handleClick}
|
||||
></span>
|
||||
</div>
|
||||
</ButtonDate>
|
||||
</ContentText>
|
||||
);
|
||||
}
|
||||
|
||||
export default FieldDate;
|
||||
@@ -0,0 +1,32 @@
|
||||
import { FormControlLabel, Radio, RadioGroup } from "@mui/material";
|
||||
|
||||
function RadioGender({ changeData, name }) {
|
||||
return (
|
||||
<RadioGroup
|
||||
dir="ltr"
|
||||
className="!flex radio-mui !flex-row !gap-[36px] !items-center !justify-start"
|
||||
defaultValue="woman"
|
||||
onChange={(e) => changeData(e.target.value, "value", name)}
|
||||
sx={{
|
||||
"& .muirtl-j204z7-MuiFormControlLabel-root": {
|
||||
marginLeft: "0 !important",
|
||||
},
|
||||
}}
|
||||
>
|
||||
<FormControlLabel
|
||||
label="مرد"
|
||||
value="man"
|
||||
control={<Radio />}
|
||||
className="!text-[#A1A1A1]"
|
||||
/>
|
||||
<FormControlLabel
|
||||
label="زن"
|
||||
value="woman"
|
||||
control={<Radio />}
|
||||
className="!text-[#A1A1A1]"
|
||||
/>
|
||||
</RadioGroup>
|
||||
);
|
||||
}
|
||||
|
||||
export default RadioGender;
|
||||
@@ -0,0 +1,83 @@
|
||||
import BottomSelect from "@/components/icons/BottomSelect";
|
||||
import { Autocomplete, Button, TextField } from "@mui/material";
|
||||
import { styleTextSelectRight } from "@/mui";
|
||||
|
||||
function Selector({ updateData, nameKey, label, name, list }) {
|
||||
return (
|
||||
<Autocomplete
|
||||
disablePortal
|
||||
options={list}
|
||||
getOptionLabel={(option) => option[nameKey] || ""}
|
||||
isOptionEqualToValue={(option, value) => option.id === value.id}
|
||||
className="!w-full !rounded-lg auto-complete-selector "
|
||||
onChange={(e, newValue) => {
|
||||
if (newValue) {
|
||||
updateData && updateData(newValue.id, "value", name);
|
||||
}
|
||||
}}
|
||||
sx={{
|
||||
...styleTextSelectRight,
|
||||
// Hide Icon Number
|
||||
"& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button":
|
||||
{
|
||||
display: "none",
|
||||
},
|
||||
"& input[type=number]": {
|
||||
MozAppearance: "textfield",
|
||||
},
|
||||
"& .MuiInputBase-input": { padding: "12.5px 14px !important" },
|
||||
"& .MuiInputBase-root": {
|
||||
borderRadius: 2,
|
||||
padding: "0 !important",
|
||||
height: {
|
||||
xs: "43px !important",
|
||||
sm: "43px !important",
|
||||
md: "46px !important",
|
||||
lg: "48px !important",
|
||||
},
|
||||
},
|
||||
"& .MuiOutlinedInput-notchedOutline": {
|
||||
border: "1px solid #D7D7D7",
|
||||
},
|
||||
"& .MuiInput-underline:hover:not(.Mui-disabled):before, .MuiOutlinedInput-notchedOutline":
|
||||
{
|
||||
borderColor: "#D7D7D7 !important",
|
||||
},
|
||||
"& .muirtl-1kiro5a-MuiInputBase-root-MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline":
|
||||
{
|
||||
border: "1px solid #5559CE !important",
|
||||
},
|
||||
}}
|
||||
renderOption={(props, option) => (
|
||||
<Button
|
||||
fullWidth
|
||||
{...props}
|
||||
key={option.id || props.id}
|
||||
className="!flex !justify-start !p-[8px] !text-start !text-[#A1A1A1] hover:dark:!bg-[#35343D] !bg-[#FFF] dark:!bg-[#1F1D2B]"
|
||||
>
|
||||
{option.name || option.label}
|
||||
</Button>
|
||||
)}
|
||||
renderInput={(params) => (
|
||||
<TextField
|
||||
fullWidth
|
||||
{...params}
|
||||
InputProps={{
|
||||
...params.InputProps,
|
||||
endAdornment: (
|
||||
<div className="absolute left-4">
|
||||
<BottomSelect />
|
||||
</div>
|
||||
),
|
||||
}}
|
||||
placeholder={label}
|
||||
sx={{
|
||||
borderRadius: "8px",
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default Selector;
|
||||
Reference in New Issue
Block a user