1
1
"use client" ;
2
2
import AppointmentRequests from "@/components/dashboard/appointments/appointmentRequests" ;
3
3
import CancelledAppointments from "@/components/dashboard/appointments/cancelledAppointments" ;
4
+ import { AppointmentCalendarContext , DateValue } from "@/components/dashboard/appointments/helpers" ;
4
5
import UpcomingAppointments from "@/components/dashboard/appointments/upcomingAppointments" ;
5
6
import Navbar from "@/components/navbar" ;
6
7
import TopBar from "@/components/topbar" ;
@@ -10,91 +11,92 @@ import Calendar from "react-calendar";
10
11
import "react-calendar/dist/Calendar.css" ;
11
12
import { AuthContext } from "../layout" ;
12
13
13
- type ValuePiece = Date | null ;
14
- type DateValue = ValuePiece | [ ValuePiece , ValuePiece ] ;
14
+
15
15
16
16
export default function AppointmentsPage ( ) {
17
17
const currentUser = useContext ( AuthContext ) ;
18
18
const [ date , setDate ] = useState < DateValue > ( new Date ( ) ) ;
19
19
20
20
return (
21
- < main className = " bg-primary-500 flex" >
22
- < div className = "py-[30px] w-[230px]" >
23
- < Navbar />
24
- </ div >
25
- < div className = "bg-[#F8F8F8] p-8 rounded-l-[50px] w-full overflow-hidden" >
26
- < TopBar
27
- firstName = { currentUser ?. firstName ?? "" }
28
- image = { currentUser ?. image ?? "" }
29
- />
30
- < div className = "flex mb-12 mt-6 gap-8" >
31
- < div className = "col flex-[2] overflow-hidden flex flex-col" >
32
- < h1 className = "text-xl mb-6" >
33
- Good morning
34
- < span className = "font-semibold text-3xl text-primary-500" >
35
- Dr. { currentUser ?. firstName } !
36
- </ span >
37
- </ h1 >
38
- < UpcomingAppointments />
39
- </ div >
40
- < div className = "col max-w-[320px]" >
41
- < div className = "bg-white rounded-xl shadow-md p-5 mb-3" >
42
- < div className = "flex justify-between items-center mb-3" >
43
- < h5 className = "font-semibold" > Calendar</ h5 >
44
- < svg
45
- width = "18"
46
- height = "18"
47
- viewBox = "0 0 18 18"
48
- fill = "none"
49
- xmlns = "http://www.w3.org/2000/svg"
50
- >
51
- < path
52
- d = "M4.73976 7.68237C5.08716 7.3325 5.65273 7.3315 6.00137 7.68014L8.68446 10.3632C9.10984 10.7886 9.79952 10.7886 10.2249 10.3632L12.908 7.68014C13.2566 7.3315 13.8222 7.3325 14.1696 7.68237V7.68237C14.5153 8.0305 14.5143 8.59263 14.1674 8.93953L10.2249 12.882C9.79952 13.3074 9.10984 13.3074 8.68446 12.882L4.74198 8.93953C4.39507 8.59263 4.39408 8.0305 4.73976 7.68237V7.68237Z"
53
- fill = "#5F647E"
54
- />
55
- </ svg >
56
- </ div >
57
- < div >
58
- < Calendar
59
- className = { "calendar" }
60
- locale = "en-US"
61
- onChange = { setDate }
62
- />
63
- </ div >
64
- < div className = "flex justify-between items-center pt-4" >
65
- < p className = "font-bold" > Upcoming</ p >
66
- < Link
67
- href = { "" }
68
- className = "text-[12px] text-[#1A71FF] mr-[10px]"
69
- >
70
- View all
71
- </ Link >
72
- </ div >
73
- < div className = "flex gap-[30px] items-center mt-[20px] p-1 bg-[#F0F9FD] rounded-xl" >
74
- < div className = "ml-1 p-2 bg-gradient-to-tr from-[#1A71FF45] to-[#1A71FF] rounded-full h-[40px] w-[40px] flex items-center justify-center" >
75
- < p className = "font-bold text-white" > M</ p >
21
+ < AppointmentCalendarContext . Provider value = { { date, setDate } } >
22
+ < main className = " bg-primary-500 flex" >
23
+ < div className = "py-[30px] w-[230px]" >
24
+ < Navbar />
25
+ </ div >
26
+ < div className = "bg-[#F8F8F8] p-8 rounded-l-[50px] w-full overflow-hidden" >
27
+ < TopBar
28
+ firstName = { currentUser ?. firstName ?? "" }
29
+ image = { currentUser ?. image ?? "" }
30
+ />
31
+ < div className = "flex mb-12 mt-6 gap-8" >
32
+ < div className = "col flex-[2] overflow-hidden flex flex-col" >
33
+ < h1 className = "text-xl mb-6" >
34
+ Good morning
35
+ < span className = "font-semibold text-3xl text-primary-500" >
36
+ Dr. { currentUser ?. firstName } !
37
+ </ span >
38
+ </ h1 >
39
+ < UpcomingAppointments />
40
+ </ div >
41
+ < div className = "col max-w-[320px]" >
42
+ < div className = "bg-white rounded-xl shadow-md p-5 mb-3" >
43
+ < div className = "flex justify-between items-center mb-3" >
44
+ < h5 className = "font-semibold" > Calendar</ h5 >
45
+ < svg
46
+ width = "18"
47
+ height = "18"
48
+ viewBox = "0 0 18 18"
49
+ fill = "none"
50
+ xmlns = "http://www.w3.org/2000/svg"
51
+ >
52
+ < path
53
+ d = "M4.73976 7.68237C5.08716 7.3325 5.65273 7.3315 6.00137 7.68014L8.68446 10.3632C9.10984 10.7886 9.79952 10.7886 10.2249 10.3632L12.908 7.68014C13.2566 7.3315 13.8222 7.3325 14.1696 7.68237V7.68237C14.5153 8.0305 14.5143 8.59263 14.1674 8.93953L10.2249 12.882C9.79952 13.3074 9.10984 13.3074 8.68446 12.882L4.74198 8.93953C4.39507 8.59263 4.39408 8.0305 4.73976 7.68237V7.68237Z"
54
+ fill = "#5F647E"
55
+ />
56
+ </ svg >
76
57
</ div >
77
58
< div >
78
- < p className = "text-[14px] font-semibold" >
79
- Monthly doctor's meet
80
- </ p >
81
- < p className = "text-[12px] text-[#0D0D0D60]" >
82
- 8 April, 2021 | 04:00 PM
83
- </ p >
59
+ < Calendar
60
+ className = { "calendar" }
61
+ locale = "en-US"
62
+ onChange = { setDate }
63
+ />
64
+ </ div >
65
+ < div className = "flex justify-between items-center pt-4" >
66
+ < p className = "font-bold" > Upcoming</ p >
67
+ < Link
68
+ href = { "" }
69
+ className = "text-[12px] text-[#1A71FF] mr-[10px]"
70
+ >
71
+ View all
72
+ </ Link >
73
+ </ div >
74
+ < div className = "flex gap-[30px] items-center mt-[20px] p-1 bg-[#F0F9FD] rounded-xl" >
75
+ < div className = "ml-1 p-2 bg-gradient-to-tr from-[#1A71FF45] to-[#1A71FF] rounded-full h-[40px] w-[40px] flex items-center justify-center" >
76
+ < p className = "font-bold text-white" > M</ p >
77
+ </ div >
78
+ < div >
79
+ < p className = "text-[14px] font-semibold" >
80
+ Monthly doctor's meet
81
+ </ p >
82
+ < p className = "text-[12px] text-[#0D0D0D60]" >
83
+ 8 April, 2021 | 04:00 PM
84
+ </ p >
85
+ </ div >
84
86
</ div >
85
87
</ div >
86
88
</ div >
87
89
</ div >
88
- </ div >
89
- < div className = "flex gap-8 mb-8 " >
90
- < div className = "col flex-[1] overflow-hidden" >
91
- < AppointmentRequests / >
92
- </ div >
93
- < div className = "col flex-[1] overflow-hidden" >
94
- < CancelledAppointments / >
90
+ < div className = "flex gap-8 mb-8" >
91
+ < div className = "col flex-[1] overflow-hidden " >
92
+ < AppointmentRequests / >
93
+ </ div >
94
+ < div className = "col flex-[1] overflow-hidden" >
95
+ < CancelledAppointments / >
96
+ </ div >
95
97
</ div >
96
98
</ div >
97
- </ div >
98
- </ main >
99
+ </ main >
100
+ </ AppointmentCalendarContext . Provider >
99
101
) ;
100
102
}
0 commit comments