Fix dashboard data requests, update dashboard data handling, change login field type, and redesign home button
This commit is contained in:
@@ -5,6 +5,7 @@ import { useState } from "react";
|
|||||||
import userData from "@/data/userData.json";
|
import userData from "@/data/userData.json";
|
||||||
import DashboardPage from "@/components/dashboard";
|
import DashboardPage from "@/components/dashboard";
|
||||||
import UserAccountPage from "./userAccount";
|
import UserAccountPage from "./userAccount";
|
||||||
|
import { request } from "@/services/response";
|
||||||
|
|
||||||
function Content({
|
function Content({
|
||||||
matchedCity,
|
matchedCity,
|
||||||
@@ -17,6 +18,16 @@ function Content({
|
|||||||
const [value, setValue] = useState(Number(params?.sidebar) || 0);
|
const [value, setValue] = useState(Number(params?.sidebar) || 0);
|
||||||
const [isOpenSide, setIsOpenSide] = useState(initialIsOpenSide);
|
const [isOpenSide, setIsOpenSide] = useState(initialIsOpenSide);
|
||||||
const [isTurnsDetails, setIsTurnsDetails] = useState(false);
|
const [isTurnsDetails, setIsTurnsDetails] = useState(false);
|
||||||
|
const [prevData, setPrevData] = useState(dataUser);
|
||||||
|
|
||||||
|
const updateDataUser = () => {
|
||||||
|
request
|
||||||
|
.getUserProfile(userInfo.uuid)
|
||||||
|
.then((res) => {
|
||||||
|
setPrevData(res);
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DashboardPage
|
<DashboardPage
|
||||||
@@ -32,10 +43,11 @@ function Content({
|
|||||||
>
|
>
|
||||||
<UserAccountPage
|
<UserAccountPage
|
||||||
value={value}
|
value={value}
|
||||||
dataUser={dataUser}
|
dataUser={prevData}
|
||||||
userInfo={userInfo}
|
userInfo={userInfo}
|
||||||
user={userData.data}
|
user={userData.data}
|
||||||
setIsOpenSide={setIsOpenSide}
|
setIsOpenSide={setIsOpenSide}
|
||||||
|
updateDataUser={updateDataUser}
|
||||||
isTurnsDetails={isTurnsDetails}
|
isTurnsDetails={isTurnsDetails}
|
||||||
setIsTurnsDetails={setIsTurnsDetails}
|
setIsTurnsDetails={setIsTurnsDetails}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -11,15 +11,17 @@ import Allergies from "./allergies";
|
|||||||
import Surgeries from "./surgeries";
|
import Surgeries from "./surgeries";
|
||||||
import FamilyHistory from "./familyHistory";
|
import FamilyHistory from "./familyHistory";
|
||||||
import Relatives from "./relatives";
|
import Relatives from "./relatives";
|
||||||
|
import { dieses } from "./information/dieses";
|
||||||
|
|
||||||
function DetailUser({
|
function DetailUser({
|
||||||
user,
|
user,
|
||||||
dataUser,
|
dataUser,
|
||||||
userInfo,
|
userInfo,
|
||||||
isTurnsDetails,
|
isTurnsDetails,
|
||||||
|
updateDataUser,
|
||||||
setIsTurnsDetails,
|
setIsTurnsDetails,
|
||||||
}) {
|
}) {
|
||||||
const [tab, setTab] = useState(5);
|
const [tab, setTab] = useState(0);
|
||||||
const initialData = {
|
const initialData = {
|
||||||
name: dataUser?.name,
|
name: dataUser?.name,
|
||||||
description: dataUser?.description,
|
description: dataUser?.description,
|
||||||
@@ -39,6 +41,18 @@ function DetailUser({
|
|||||||
national_code: dataUser?.national_code,
|
national_code: dataUser?.national_code,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!dataUser) {
|
||||||
|
initialData.other = [
|
||||||
|
{
|
||||||
|
disease: dieses,
|
||||||
|
allergies: [],
|
||||||
|
medications: [],
|
||||||
|
surgeries: [],
|
||||||
|
family_history: [],
|
||||||
|
relatives: [],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
const [data, setData] = useState(initialData);
|
const [data, setData] = useState(initialData);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
|
|
||||||
@@ -57,10 +71,10 @@ function DetailUser({
|
|||||||
setLoading(true);
|
setLoading(true);
|
||||||
request
|
request
|
||||||
.patchUserProfile(data, dataUser.uuid)
|
.patchUserProfile(data, dataUser.uuid)
|
||||||
.then((res) => {
|
.then(() => {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch(() => {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -74,6 +88,8 @@ function DetailUser({
|
|||||||
setData={setData}
|
setData={setData}
|
||||||
userInfo={userInfo}
|
userInfo={userInfo}
|
||||||
dataUser={dataUser}
|
dataUser={dataUser}
|
||||||
|
initialData={initialData}
|
||||||
|
updateDataUser={updateDataUser}
|
||||||
isTurnsDetails={isTurnsDetails}
|
isTurnsDetails={isTurnsDetails}
|
||||||
setIsTurnsDetails={setIsTurnsDetails}
|
setIsTurnsDetails={setIsTurnsDetails}
|
||||||
/>,
|
/>,
|
||||||
|
|||||||
@@ -11,23 +11,20 @@ import {
|
|||||||
import AutoSelector from "@/app/component/element/AutoSelector";
|
import AutoSelector from "@/app/component/element/AutoSelector";
|
||||||
|
|
||||||
function Form({ data, userInfo, insurance, changeData, prevData }) {
|
function Form({ data, userInfo, insurance, changeData, prevData }) {
|
||||||
const findVal = (list, name, arr) =>
|
const findVal = (list, name) =>
|
||||||
data &&
|
data && list && list.length && list.find((g) => g.id === data[name]);
|
||||||
list &&
|
|
||||||
list.length &&
|
|
||||||
list.find((g) => g.id === (arr ? data[name][0] : data[name]));
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-[24px]">
|
<div className="grid grid-cols-1 lg:grid-cols-2 gap-[24px]">
|
||||||
<Content title="شماره موبایل" isConfirmed={true}>
|
<Content title="شماره موبایل" isConfirmed={true}>
|
||||||
<Field
|
<Field
|
||||||
isTransparent={true}
|
|
||||||
iconGray={true}
|
|
||||||
type="number"
|
type="number"
|
||||||
|
disable={true}
|
||||||
|
iconGray={true}
|
||||||
|
name="work_phone"
|
||||||
|
isTransparent={true}
|
||||||
changeData={changeData}
|
changeData={changeData}
|
||||||
data={userInfo?.username}
|
data={userInfo?.username}
|
||||||
disable={true}
|
|
||||||
name="work_phone"
|
|
||||||
/>
|
/>
|
||||||
</Content>
|
</Content>
|
||||||
<Content title="کد ملی" isConfirmed={false}>
|
<Content title="کد ملی" isConfirmed={false}>
|
||||||
@@ -81,9 +78,12 @@ function Form({ data, userInfo, insurance, changeData, prevData }) {
|
|||||||
updateData={(name, val) => {
|
updateData={(name, val) => {
|
||||||
changeData([Number(val.id)], "value", name);
|
changeData([Number(val.id)], "value", name);
|
||||||
}}
|
}}
|
||||||
value={findVal(insurance, "basic_insurance", true)?.name}
|
// value={findVal(insurance, "basic_insurance", true)?.name}
|
||||||
label="نوع بیمه"
|
value={insurance?.find(
|
||||||
|
(g) => Number(g.id) === data.basic_insurance[0]
|
||||||
|
)}
|
||||||
name="basic_insurance"
|
name="basic_insurance"
|
||||||
|
label="نوع بیمه"
|
||||||
list={insurance}
|
list={insurance}
|
||||||
/>
|
/>
|
||||||
</Content>
|
</Content>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export const dieses = [
|
|||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
name: "دیابت",
|
name: "دیابت",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 3,
|
id: 3,
|
||||||
@@ -17,17 +17,17 @@ export const dieses = [
|
|||||||
{
|
{
|
||||||
id: 4,
|
id: 4,
|
||||||
name: "بیماری قلبی عروقی",
|
name: "بیماری قلبی عروقی",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 5,
|
id: 5,
|
||||||
name: "سرطان",
|
name: "سرطان",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 6,
|
id: 6,
|
||||||
name: "آلزایمر",
|
name: "آلزایمر",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 7,
|
id: 7,
|
||||||
@@ -37,7 +37,7 @@ export const dieses = [
|
|||||||
{
|
{
|
||||||
id: 8,
|
id: 8,
|
||||||
name: "بیماری کلیوی",
|
name: "بیماری کلیوی",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 9,
|
id: 9,
|
||||||
@@ -57,7 +57,7 @@ export const dieses = [
|
|||||||
{
|
{
|
||||||
id: 12,
|
id: 12,
|
||||||
name: "اضطراب مزمن",
|
name: "اضطراب مزمن",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 13,
|
id: 13,
|
||||||
@@ -72,7 +72,7 @@ export const dieses = [
|
|||||||
{
|
{
|
||||||
id: 15,
|
id: 15,
|
||||||
name: "پرکاری تیروئید",
|
name: "پرکاری تیروئید",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 16,
|
id: 16,
|
||||||
@@ -87,7 +87,7 @@ export const dieses = [
|
|||||||
{
|
{
|
||||||
id: 18,
|
id: 18,
|
||||||
name: "هپاتیت C",
|
name: "هپاتیت C",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 19,
|
id: 19,
|
||||||
@@ -97,17 +97,17 @@ export const dieses = [
|
|||||||
{
|
{
|
||||||
id: 20,
|
id: 20,
|
||||||
name: "COVID-19",
|
name: "COVID-19",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 21,
|
id: 21,
|
||||||
name: "لوپوس",
|
name: "لوپوس",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 22,
|
id: 22,
|
||||||
name: "اماس (MS)",
|
name: "اماس (MS)",
|
||||||
status: "true",
|
status: "false",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 23,
|
id: 23,
|
||||||
|
|||||||
@@ -5,7 +5,15 @@ import ArrowLeftWhiteD from "@/components/icons/ArrowLeftWhiteD";
|
|||||||
import { request } from "@/services/response";
|
import { request } from "@/services/response";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
|
|
||||||
function Information({ user, data, setData, userInfo, dataUser }) {
|
function Information({
|
||||||
|
user,
|
||||||
|
data,
|
||||||
|
setData,
|
||||||
|
userInfo,
|
||||||
|
dataUser,
|
||||||
|
initialData,
|
||||||
|
updateDataUser,
|
||||||
|
}) {
|
||||||
const [disable, setDisable] = useState(true);
|
const [disable, setDisable] = useState(true);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [insurance, setInsurance] = useState();
|
const [insurance, setInsurance] = useState();
|
||||||
@@ -18,7 +26,7 @@ function Information({ user, data, setData, userInfo, dataUser }) {
|
|||||||
setInsurance(res.data);
|
setInsurance(res.data);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {});
|
// .catch((err) => {});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const changeData = (value, type, name) => {
|
const changeData = (value, type, name) => {
|
||||||
@@ -36,6 +44,9 @@ function Information({ user, data, setData, userInfo, dataUser }) {
|
|||||||
dataUser ? dataUser.uuid : Cookies.get("uuid")
|
dataUser ? dataUser.uuid : Cookies.get("uuid")
|
||||||
)
|
)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
if (!dataUser) {
|
||||||
|
updateDataUser();
|
||||||
|
}
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ function UserAccountPage({
|
|||||||
setIsTurnsDetails,
|
setIsTurnsDetails,
|
||||||
value,
|
value,
|
||||||
setIsOpenSide,
|
setIsOpenSide,
|
||||||
|
updateDataUser,
|
||||||
dataUser,
|
dataUser,
|
||||||
userInfo,
|
userInfo,
|
||||||
}) {
|
}) {
|
||||||
@@ -35,6 +36,7 @@ function UserAccountPage({
|
|||||||
dataUser={dataUser}
|
dataUser={dataUser}
|
||||||
userInfo={userInfo}
|
userInfo={userInfo}
|
||||||
isTurnsDetails={isTurnsDetails}
|
isTurnsDetails={isTurnsDetails}
|
||||||
|
updateDataUser={updateDataUser}
|
||||||
setIsTurnsDetails={setIsTurnsDetails}
|
setIsTurnsDetails={setIsTurnsDetails}
|
||||||
/>,
|
/>,
|
||||||
<Turns user={user} loading={false} setIsTurnsDetails={setIsTurnsDetails} />,
|
<Turns user={user} loading={false} setIsTurnsDetails={setIsTurnsDetails} />,
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
|
import Cookies from "js-cookie";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
|
|
||||||
function Head({ user }) {
|
function Head({ user }) {
|
||||||
|
const userInfo = Cookies.get("userInfo");
|
||||||
|
const parsedInfo = JSON.parse(userInfo);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full flex flex-row md:flex-col items-center justify-center md:justify-start gap-[12px] md:gap-[4px]">
|
<div className="w-full flex flex-row md:flex-col items-center justify-center md:justify-start gap-[12px] md:gap-[4px]">
|
||||||
<Image
|
<Image
|
||||||
@@ -11,8 +15,12 @@ function Head({ user }) {
|
|||||||
width={73}
|
width={73}
|
||||||
/>
|
/>
|
||||||
<div className="flex flex-col items-start md:items-center justify-center gap-[8px] md:gap-[4px]">
|
<div className="flex flex-col items-start md:items-center justify-center gap-[8px] md:gap-[4px]">
|
||||||
<p className="text-[#3B3B3B] text-[14px] font-bold">{user.name}</p>
|
<p className="text-[#3B3B3B] text-[14px] font-bold">
|
||||||
<p className="text-[#7E7E7E] text-[14px] font-normal">{user.phone}</p>
|
{parsedInfo.realName}
|
||||||
|
</p>
|
||||||
|
<p className="text-[#7E7E7E] text-[14px] font-normal">
|
||||||
|
{parsedInfo.username}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
function OTPForm({ index, value, onChange, inputRef, isError }) {
|
function OTPForm({ index, value, onChange, inputRef, isError }) {
|
||||||
return (
|
return (
|
||||||
<input
|
<input
|
||||||
ref={inputRef}
|
type="tel"
|
||||||
value={value}
|
value={value}
|
||||||
maxLength={1}
|
maxLength={1}
|
||||||
|
ref={inputRef}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
const val = e.target.value;
|
const val = e.target.value;
|
||||||
if (/^\d?$/.test(val)) {
|
if (/^\d?$/.test(val)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user