@@ -86,4 +86,75 @@ export default function BuildFirstRover() {
86
86
) }
87
87
</ div >
88
88
) ;
89
- }
89
+ } ;
90
+
91
+ export function ViewRovers ( ) {
92
+ const supabase = useSupabaseClient ( ) ;
93
+ const session = useSession ( ) ;
94
+
95
+ const [ userRovers , setUserRovers ] = useState < any [ ] > ( [ ] ) ;
96
+
97
+ useEffect ( ( ) => {
98
+ getRovers ( ) ;
99
+ } , [ session ] ) ;
100
+
101
+ async function getRovers ( ) {
102
+ try {
103
+ if ( ! session || ! session . user || ! session . user . id ) {
104
+ console . log ( "User session not available" ) ;
105
+ return ;
106
+ }
107
+
108
+ const { data : userRovers , error : userRoversError } = await supabase
109
+ . from ( "inventoryUSERS" )
110
+ . select ( "*" )
111
+ . eq ( "owner" , session . user . id )
112
+ . eq ( "item" , 23 || 24 ) ; // Adjust this condition as needed
113
+
114
+ if ( userRoversError ) {
115
+ throw userRoversError ;
116
+ }
117
+
118
+ if ( userRovers && userRovers . length > 0 ) {
119
+ // Extract item IDs from userRovers
120
+ const itemIds = userRovers . map ( rover => rover . item ) ;
121
+
122
+ // Fetch details of items from inventoryITEMS table
123
+ const { data : items , error : itemsError } = await supabase
124
+ . from ( "inventoryITEMS" )
125
+ . select ( "*" )
126
+ . in ( "id" , itemIds ) ;
127
+
128
+ if ( itemsError ) {
129
+ throw itemsError ;
130
+ }
131
+
132
+ // Merge item details with userRovers
133
+ const mergedRovers = userRovers . map ( rover => {
134
+ const item = items . find ( item => item . id === rover . item ) ;
135
+ return { ...rover , item } ;
136
+ } ) ;
137
+
138
+ setUserRovers ( mergedRovers ) ;
139
+ console . log ( 'Test' , mergedRovers ) ;
140
+ } else {
141
+ setUserRovers ( [ ] ) ;
142
+ }
143
+ } catch ( error ) {
144
+ console . error ( "Error fetching rovers:" , error . message ) ;
145
+ }
146
+ } ;
147
+
148
+
149
+ return (
150
+ < div className = "grid grid-cols-3 gap-4" >
151
+ { userRovers . map ( rover => (
152
+ < div key = { rover . id } className = "border p-4" >
153
+ < img src = { rover . icon_url } alt = { rover . name } className = "h-24 mx-auto mb-2" />
154
+ < p > ID: { rover . id } </ p >
155
+ < p > Name: { rover . name } </ p >
156
+ </ div >
157
+ ) ) }
158
+ </ div >
159
+ ) ;
160
+ } ;
0 commit comments