Skip to content

Commit

Permalink
Feat: add review count
Browse files Browse the repository at this point in the history
  • Loading branch information
psh320 committed Jul 11, 2022
1 parent d2994e3 commit bcdc775
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 41 deletions.
74 changes: 37 additions & 37 deletions src/api/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ export const getStoreData = async (storeId?: number) => {

export const getStoreReviewImages = async ({pageParam = 0}, storeId?: number) => {
const response = await customAxios().get(`/api/v1/reviews/images/${storeId}`, {
params: {page: pageParam, size: 3},
params: {page: pageParam, size: 9},
});
return response;
};

export const getStoreReviewList = async ({pageParam = 0}, storeId?: number) => {
const response = await customAxios().get(`/api/v1/reviews/${storeId}`, {
params: {page: pageParam, size: 3},
params: {page: pageParam, size: 5},
});
return response;
};
Expand All @@ -52,37 +52,8 @@ export const postReview = async (data: {storeId: number; rate: number; content:
return response.data;
};

export const postReviewImages = async (imageList: imageData[], reviewId: number) => {
const token = await AsyncStorage.getItem('accessToken');
var formdata = new FormData();
imageList.map((image) => {
let photo;
Platform.OS === 'ios'
? (photo = {
uri: image.uri.replace('file://', ''),
type: 'image/jpg',
name: 'image',
})
: (photo = {
uri: image.uri,
type: 'image/jpeg',
name: 'image',
});
formdata.append('reviewImage', photo);
});
try {
const response = await fetch(`https://bobpossible.shop/api/v1/reviews/me/images/${reviewId}`, {
method: 'POST',
headers: {Authorization: `Bearer ${token}`, 'Content-Type': 'multipart/form-data'},
body: formdata,
});
console.log('image register 성공:', response);
} catch (error) {
console.log('image register:', error);
}
};

// export const postReviewImages = async (imageList: imageData[], reviewId: number) => {
// const token = await AsyncStorage.getItem('accessToken');
// var formdata = new FormData();
// imageList.map((image) => {
// let photo;
Expand All @@ -99,9 +70,38 @@ export const postReviewImages = async (imageList: imageData[], reviewId: number)
// });
// formdata.append('reviewImage', photo);
// });

// const response = await customAxios().post(`/api/v1/reviews/me/images/${reviewId}`, formdata, {
// headers: {'Content-Type': 'multipart/form-data'},
// });
// return response;
// try {
// const response = await fetch(`https://bobpossible.shop/api/v1/reviews/me/images/${reviewId}`, {
// method: 'POST',
// headers: {Authorization: `Bearer ${token}`, 'Content-Type': 'multipart/form-data'},
// body: formdata,
// });
// console.log('image register 성공:', response);
// } catch (error) {
// console.log('image register:', error);
// }
// };

export const postReviewImages = async (imageList: imageData[], reviewId: number) => {
var formdata = new FormData();
imageList.map((image) => {
let photo;
Platform.OS === 'ios'
? (photo = {
uri: image.uri.replace('file://', ''),
type: 'image/jpg',
name: 'image',
})
: (photo = {
uri: image.uri,
type: 'image/jpeg',
name: 'image',
});
formdata.append('reviewImage', photo);
});

const response = await customAxios().post(`/api/v1/reviews/me/images/${reviewId}`, formdata, {
headers: {'Content-Type': 'multipart/form-data'},
});
return response;
};
6 changes: 5 additions & 1 deletion src/components/Map/MapReviewToggleButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ type MapReviewToggleButtonProps = {
toggleReview: () => void;
togglePhoto: () => void;
isReview: boolean;
reviewCount: number;
};

export const MapReviewToggleButton: FC<MapReviewToggleButtonProps> = ({
toggleReview,
togglePhoto,
isReview,
reviewCount,
}) => {
return (
<View style={[styles.ToggleWrap]}>
Expand All @@ -27,7 +29,9 @@ export const MapReviewToggleButton: FC<MapReviewToggleButtonProps> = ({
{marginLeft: 34},
]}
>
<Text style={[isReview ? styles.toggleTextOn : styles.toggleTextOff]}>리뷰 100</Text>
<Text style={[isReview ? styles.toggleTextOn : styles.toggleTextOff]}>
리뷰 {reviewCount}
</Text>
</View>
</TouchableOpacity>
</View>
Expand Down
10 changes: 9 additions & 1 deletion src/components/Map/MapStoreReviewList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,16 @@ type props = {
isReview: boolean;
setIsReview: React.Dispatch<React.SetStateAction<boolean>>;
offset: Animated.Value;
reviewCount?: number;
};

export const MapStoreReviewList = ({storeData, isReview, setIsReview, offset}: props) => {
export const MapStoreReviewList = ({
storeData,
isReview,
setIsReview,
offset,
reviewCount,
}: props) => {
const [photoModal, setPhotoModal] = useState(false);
const [reviewPhoto, setReviewPhoto] = useState<{uri: string}>({uri: 'string'});
const openPhotoModal = (imageSource: string) => {
Expand Down Expand Up @@ -70,6 +77,7 @@ export const MapStoreReviewList = ({storeData, isReview, setIsReview, offset}: p
toggleReview={() => setIsReview(true)}
togglePhoto={() => setIsReview(false)}
isReview={isReview}
reviewCount={reviewCount}
/>
</View>
</>
Expand Down
12 changes: 10 additions & 2 deletions src/components/Map/MapStoreReviewPhoto.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,16 @@ type props = {
isReview: boolean;
setIsReview: React.Dispatch<React.SetStateAction<boolean>>;
offset: Animated.Value;
reviewCount?: number;
};

export const MapStoreReviewPhoto = ({storeData, isReview, setIsReview, offset}: props) => {
export const MapStoreReviewPhoto = ({
storeData,
isReview,
setIsReview,
offset,
reviewCount,
}: props) => {
const [photoModal, setPhotoModal] = useState(false);
const [reviewPhoto, setReviewPhoto] = useState<{uri: string}>({uri: 'string'});

Expand Down Expand Up @@ -82,14 +89,15 @@ export const MapStoreReviewPhoto = ({storeData, isReview, setIsReview, offset}:
toggleReview={() => setIsReview(true)}
togglePhoto={() => setIsReview(false)}
isReview={isReview}
reviewCount={reviewCount}
/>
</View>
</>
}
data={reviewImages.data?.pages}
renderItem={({item}) => {
return (
<View style={{flexDirection: 'row'}}>
<View style={{flexDirection: 'row', flexWrap: 'wrap'}}>
{item.data.result.content.map((image: any) => (
<TouchableOpacity onPress={() => openPhotoModal(image.imageUrl)}>
<View style={{borderColor: '#FFFFFF', borderWidth: 1}}>
Expand Down
2 changes: 2 additions & 0 deletions src/modal/StoreModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,15 @@ const StoreModal: FC<StoreModalProps> = ({storeId, visible, closeStoreModal}) =>
isReview={isReview}
setIsReview={setIsReview}
offset={offset1}
reviewCount={storeData.data?.reviewCount}
/>
) : (
<MapStoreReviewPhoto
storeData={storeData.data}
isReview={isReview}
setIsReview={setIsReview}
offset={offset1}
reviewCount={storeData.data?.reviewCount}
/>
)}
{isReview && (
Expand Down

0 comments on commit bcdc775

Please sign in to comment.