@@ -17,28 +17,52 @@ import { useLocalSearchParams, useNavigation, useRouter } from "expo-router";
1717import { getRestaurant } from "@/api/restaurant" ;
1818import { TRestaurant } from "@/types/restaurant" ;
1919import { Skeleton } from "moti/skeleton" ;
20- import { getReviews } from "@/api/reviews" ;
20+ import { getRestaurantReviews , getRestaurantReviewsByUser , getReviews } from "@/api/reviews" ;
21+ import { TReview } from "@/types/review" ;
22+ import { useUser } from "@/context/user-context" ;
2123
2224export default function Route ( ) {
2325 const restaurantTags = [ "Fast Food" , "Fried Chicken" , "Chicken Sandwiches" , "Order Online" ] ;
2426 const [ activeTab , setActiveTab ] = React . useState ( 0 ) ;
2527 const [ filterTab , setFilterTab ] = React . useState ( 0 ) ;
2628
29+ const [ reviews , setReviews ] = React . useState < TReview [ ] > ( [ ] ) ;
30+ const [ myReviews , setMyReviews ] = React . useState < TReview [ ] > ( [ ] ) ;
31+
2732 const router = useRouter ( ) ;
2833
2934 const { id } = useLocalSearchParams < {
3035 id : string ;
3136 } > ( ) ;
3237
38+ // get the user id
39+ const { user } = useUser ( ) ;
40+
3341 const [ restaurant , setRestaurant ] = React . useState < TRestaurant | null > ( null ) ;
3442 const [ loading , setLoading ] = React . useState ( true ) ;
3543 const navigation = useNavigation ( ) ;
3644
3745 useEffect ( ( ) => {
46+ console . log ( "bang" ) ;
47+ if ( ! user ) {
48+ return ;
49+ }
50+ console . log ( "bang 2" ) ;
3851 getRestaurant ( id ) . then ( async ( res ) => {
3952 setRestaurant ( res ) ;
4053 } ) ;
41- new Promise ( ( resolve ) => setTimeout ( resolve , 1500 ) ) . then ( ( ) => setLoading ( false ) ) ;
54+
55+ getRestaurantReviews ( id ) . then ( ( res ) => {
56+ console . log ( res ) ;
57+ setReviews ( res ) ;
58+ } ) ;
59+
60+ getRestaurantReviewsByUser ( id , user . id ) . then ( ( res ) => {
61+ console . log ( res ) ;
62+ setMyReviews ( res ) ;
63+ } ) ;
64+
65+ new Promise ( ( resolve ) => setTimeout ( resolve , 500 ) ) . then ( ( ) => setLoading ( false ) ) ;
4266 navigation . setOptions ( { headerShown : false } ) ;
4367 } , [ navigation ] ) ;
4468
@@ -127,33 +151,54 @@ export default function Route() {
127151
128152 < Skeleton colorMode = { "light" } >
129153 < ThemedView >
130- { filterTab == 0 && (
131- < >
132- < ThemedView style = { { paddingVertical : 12 } } >
133- < FeedTabs
134- tabs = { [ "Friends" , "Top Reviews" , "My Reviews" ] }
135- activeTab = { activeTab }
136- setActiveTab = { setActiveTab }
137- />
138- </ ThemedView >
139- < TouchableOpacity onPress = { ( ) => router . push ( "/(review)/827b36v4b234" ) } >
140- < ReviewPreview
141- plateName = { "Big Whopper" }
142- reviewId = { "827b36v4b234" }
143- restaurantName = { "Burger King" }
144- tags = { [ "juicy" , "artificial" , "fake meat" ] }
145- rating = { 4 }
146- content = {
147- "This is fake meat and is not good for you. Not sure why we are even serving it."
148- }
149- authorName = { "First Last" }
150- authorAvatar = { "https://placehold.co/600x400/png?text=P" }
151- authorUsername = { "username" }
152- authorId = { "" }
153- />
154- </ TouchableOpacity >
155- </ >
156- ) }
154+ { filterTab == 2 ||
155+ ( filterTab == 0 && (
156+ < >
157+ < ThemedView style = { { paddingVertical : 12 } } >
158+ < FeedTabs
159+ tabs = { [ "Friends" , "Top Reviews" , "My Reviews" ] }
160+ activeTab = { activeTab }
161+ setActiveTab = { setActiveTab }
162+ />
163+ </ ThemedView >
164+ { activeTab == 0 &&
165+ myReviews . map ( ( review ) => (
166+ < ReviewPreview
167+ key = { review . _id }
168+ reviewId = { review . _id }
169+ plateName = { review . menuItemName }
170+ authorId = { review . reviewer . _id }
171+ authorUsername = { review . reviewer . username }
172+ restaurantName = { review . restaurantName }
173+ tags = { [ ] }
174+ rating = { review . rating . overall }
175+ content = { review . content }
176+ authorName = { review . reviewer . username }
177+ authorAvatar = {
178+ review . reviewer . pfp || "https://placehold.co/600x400/png?text=P"
179+ }
180+ />
181+ ) ) }
182+ { activeTab == 1 &&
183+ reviews . map ( ( review ) => (
184+ < ReviewPreview
185+ key = { review . _id }
186+ reviewId = { review . _id }
187+ plateName = { review . menuItemName }
188+ authorId = { review . reviewer . _id }
189+ authorUsername = { review . reviewer . username }
190+ restaurantName = { review . restaurantName }
191+ tags = { [ ] }
192+ rating = { review . rating . overall }
193+ content = { review . content }
194+ authorName = { review . reviewer . username }
195+ authorAvatar = {
196+ review . reviewer . pfp || "https://placehold.co/600x400/png?text=P"
197+ }
198+ />
199+ ) ) }
200+ </ >
201+ ) ) }
157202
158203 { filterTab == 1 && < > { /* TODO MENU ITEM PREVIEW */ } </ > }
159204 </ ThemedView >
0 commit comments