1
+ "use client" ;
2
+
3
+ import { useEffect , useState } from "react" ;
1
4
import { Metadata } from "next" ;
2
5
import Image from "next/image" ;
3
6
import { Button } from "@/components/ui/button" ;
@@ -8,17 +11,34 @@ import {
8
11
CardHeader ,
9
12
CardTitle ,
10
13
} from "@/components/ui/card" ;
14
+ import {
15
+ Dialog ,
16
+ DialogContent ,
17
+ DialogDescription ,
18
+ DialogHeader ,
19
+ DialogTitle ,
20
+ DialogTrigger ,
21
+ } from "@/components/ui/dialog" ;
11
22
import {
12
23
ResizableHandle ,
13
24
ResizablePanel ,
14
25
ResizablePanelGroup ,
15
26
} from "@/components/ui/resizable" ;
16
27
import { ScrollArea } from "@/components/ui/scroll-area" ;
28
+ import {
29
+ Select ,
30
+ SelectContent ,
31
+ SelectItem ,
32
+ SelectTrigger ,
33
+ SelectValue ,
34
+ } from "@/components/ui/select" ;
17
35
import { Separator } from "@/components/ui/separator" ;
18
36
import { Tabs , TabsContent , TabsList , TabsTrigger } from "@/components/ui/tabs" ;
37
+ import { trpc } from "@/lib/utils/trpc" ;
19
38
20
39
// import { allEvents } from "../matches/getEvents";
21
40
import { allEvents } from "../matches/getEvents" ;
41
+ import { addEvents } from "./actions" ;
22
42
import Assignments from "./Assignments" ;
23
43
import { CalendarDateRangePicker } from "./components/date-range-picker" ;
24
44
import { MainNav } from "./components/main-nav" ;
@@ -28,19 +48,107 @@ import { Search } from "./components/search";
28
48
import TeamSwitcher from "./components/team-switcher" ;
29
49
import { UserNav } from "./components/user-nav" ;
30
50
31
- export const metadata : Metadata = {
32
- title : "Dashboard" ,
33
- description : "Example dashboard app built using the components." ,
51
+ // export const metadata: Metadata = {
52
+ // title: "Dashboard",
53
+ // description: "Example dashboard app built using the components.",
54
+ // };
55
+
56
+ const ModalSelectComponent = ( { events, selectedEvent, setSelectedEvent } ) => {
57
+ const handleValueChange = ( value ) => {
58
+ setSelectedEvent ( value ) ;
59
+ } ;
60
+
61
+ return (
62
+ < div >
63
+ < Dialog >
64
+ < DialogTrigger asChild >
65
+ < Button > { selectedEvent } </ Button >
66
+ </ DialogTrigger >
67
+ < DialogContent >
68
+ < DialogHeader >
69
+ < DialogTitle > Select an Option</ DialogTitle >
70
+ </ DialogHeader >
71
+ < Select onValueChange = { handleValueChange } >
72
+ < SelectTrigger className = "w-[180px]" >
73
+ < SelectValue placeholder = "Choose One" />
74
+ </ SelectTrigger >
75
+ { /* <SelectTrigger className="w-[180px]">
76
+ <SelectValue>
77
+ {selectedEvent ? selectedEvent : "Choose one"}
78
+ </SelectValue>
79
+ </SelectTrigger> */ }
80
+ < SelectContent >
81
+ { events . map ( ( event ) => (
82
+ < SelectItem
83
+ key = { event . name }
84
+ value = { event . key }
85
+ onSelect = { ( ) => console . log ( event ) }
86
+ >
87
+ { event . name }
88
+ </ SelectItem >
89
+ ) ) }
90
+ </ SelectContent >
91
+ < Button onClick = { ( ) => console . log ( "PLEASE: " , selectedEvent ) } >
92
+ test
93
+ </ Button >
94
+ </ Select >
95
+ </ DialogContent >
96
+ </ Dialog >
97
+ </ div >
98
+ ) ;
34
99
} ;
35
100
36
- export default function DashboardPage ( ) {
101
+ function DashboardPage ( ) {
102
+ const [ events , setEvents ] = useState ( [ ] ) ;
103
+ // const [keys, setKeys] = useState([]);
104
+ const [ selectedEvent , setSelectedEvent ] = useState ( "Choose one" ) ;
105
+
106
+ useEffect ( ( ) => {
107
+ handleSubmit ( ) ;
108
+ } , [ ] ) ;
109
+
110
+ const { data, refetch } = trpc . tba . teamEvents . useQuery (
111
+ {
112
+ teamKey : "frc3256" ,
113
+ year : 2023 ,
114
+ } ,
115
+ { enabled : false } ,
116
+ ) ;
117
+
118
+ const handleSubmit = async ( ) => {
119
+ try {
120
+ refetch ( ) ;
121
+ setEvents ( data . map ( ( event ) => ( { name : event . name , key : event . key } ) ) ) ;
122
+
123
+ // setKeys(data.map((event) => event.key));
124
+ console . log ( "I AM RIGH THERE: " , selectedEvent ) ;
125
+ // addEvents({ events: { name: "test", key: "test" } });
126
+ for ( let i = 0 ; i < events . length ; i ++ ) {
127
+ console . log ( "EVENTS: " , events [ i ] ) ;
128
+ addEvents ( { event : events [ i ] } ) ;
129
+ }
130
+ } catch ( error ) {
131
+ console . error ( "Error fetching events:" , error ) ;
132
+ }
133
+ } ;
37
134
return (
38
135
< div className = "flex-1 space-y-4 p-8 pt-6" >
39
136
< div className = "flex items-center justify-between space-y-2" >
40
137
< h2 className = "text-3xl font-bold tracking-tight" > Dashboard</ h2 >
41
138
< div className = "flex items-center space-x-2" >
42
- < CalendarDateRangePicker />
43
- < Button > Download</ Button >
139
+ < ModalSelectComponent
140
+ events = { events }
141
+ selectedEvent = { selectedEvent }
142
+ setSelectedEvent = { setSelectedEvent }
143
+ />
144
+ { /* <CalendarDateRangePicker /> */ }
145
+ { /* <Button>Download</Button> */ }
146
+ { /* <button type="button" onClick={handleSubmit}>
147
+ hello
148
+ </button> */ }
149
+ < Button type = "button" onClick = { handleSubmit } >
150
+ Fetch Events
151
+ </ Button >
44
152
{ /* <p>DATA: </p> */ }
45
153
{ /* {allEvents("frc3256", 2024)} */ }
46
154
{ /* <allEvents team="frc3256" y={2024} /> */ }
@@ -60,7 +168,7 @@ export default function DashboardPage() {
60
168
</ TabsTrigger >
61
169
</ TabsList >
62
170
< TabsContent value = "assignments" className = "h-[75vh] space-y-4" >
63
- < Assignments />
171
+ < Assignments selectedEvent = { selectedEvent } />
64
172
</ TabsContent >
65
173
{ /* <TabsContent value="overview" className="space-y-4">
66
174
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
@@ -192,3 +300,5 @@ export default function DashboardPage() {
192
300
</ div >
193
301
) ;
194
302
}
303
+
304
+ export default trpc . withTRPC ( DashboardPage ) ;
0 commit comments