diff --git a/android/app/src/main/assets/fonts/AntDesign.ttf b/android/app/src/main/assets/fonts/AntDesign.ttf new file mode 100644 index 0000000..2abf035 Binary files /dev/null and b/android/app/src/main/assets/fonts/AntDesign.ttf differ diff --git a/android/app/src/main/assets/fonts/Entypo.ttf b/android/app/src/main/assets/fonts/Entypo.ttf new file mode 100644 index 0000000..76d91cb Binary files /dev/null and b/android/app/src/main/assets/fonts/Entypo.ttf differ diff --git a/android/app/src/main/assets/fonts/EvilIcons.ttf b/android/app/src/main/assets/fonts/EvilIcons.ttf new file mode 100644 index 0000000..6868f7b Binary files /dev/null and b/android/app/src/main/assets/fonts/EvilIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/Feather.ttf b/android/app/src/main/assets/fonts/Feather.ttf new file mode 100644 index 0000000..49698e7 Binary files /dev/null and b/android/app/src/main/assets/fonts/Feather.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome.ttf b/android/app/src/main/assets/fonts/FontAwesome.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf b/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf new file mode 100644 index 0000000..fc567cd Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf b/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf new file mode 100644 index 0000000..d1ac9ba Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf b/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf new file mode 100644 index 0000000..f33e816 Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf differ diff --git a/android/app/src/main/assets/fonts/Fontisto.ttf b/android/app/src/main/assets/fonts/Fontisto.ttf new file mode 100644 index 0000000..96e2e81 Binary files /dev/null and b/android/app/src/main/assets/fonts/Fontisto.ttf differ diff --git a/android/app/src/main/assets/fonts/Foundation.ttf b/android/app/src/main/assets/fonts/Foundation.ttf new file mode 100644 index 0000000..6cce217 Binary files /dev/null and b/android/app/src/main/assets/fonts/Foundation.ttf differ diff --git a/android/app/src/main/assets/fonts/Ionicons.ttf b/android/app/src/main/assets/fonts/Ionicons.ttf new file mode 100644 index 0000000..719442d Binary files /dev/null and b/android/app/src/main/assets/fonts/Ionicons.ttf differ diff --git a/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf b/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf new file mode 100644 index 0000000..ba87359 Binary files /dev/null and b/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/MaterialIcons.ttf b/android/app/src/main/assets/fonts/MaterialIcons.ttf new file mode 100644 index 0000000..e50801b Binary files /dev/null and b/android/app/src/main/assets/fonts/MaterialIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/Octicons.ttf b/android/app/src/main/assets/fonts/Octicons.ttf new file mode 100644 index 0000000..f8daedc Binary files /dev/null and b/android/app/src/main/assets/fonts/Octicons.ttf differ diff --git a/android/app/src/main/assets/fonts/SimpleLineIcons.ttf b/android/app/src/main/assets/fonts/SimpleLineIcons.ttf new file mode 100644 index 0000000..6ecb686 Binary files /dev/null and b/android/app/src/main/assets/fonts/SimpleLineIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/Zocial.ttf b/android/app/src/main/assets/fonts/Zocial.ttf new file mode 100644 index 0000000..e2b5fbb Binary files /dev/null and b/android/app/src/main/assets/fonts/Zocial.ttf differ diff --git a/ios/BOB_FrontEnd.xcodeproj/project.pbxproj b/ios/BOB_FrontEnd.xcodeproj/project.pbxproj index 1fbee5a..4884a3c 100644 --- a/ios/BOB_FrontEnd.xcodeproj/project.pbxproj +++ b/ios/BOB_FrontEnd.xcodeproj/project.pbxproj @@ -20,6 +20,22 @@ D6D041C14C1D4CC0B3849B2B /* Pretendard-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 11C955E157164BEF96CBCC24 /* Pretendard-Regular.ttf */; }; DA0493B728749E5000F9CA59 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DA0493B628749E5000F9CA59 /* GoogleService-Info.plist */; }; F2D1474B88BC47BDBF1013E0 /* Poppins-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 193D3C47DC2D49CAB80AA0A8 /* Poppins-Bold.ttf */; }; + 6CB264AA692B4AEFB2475816 /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AB29969CCF5C45729D257948 /* AntDesign.ttf */; }; + 7CCD38732D4546C5BABE082C /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 95A10581A6E5497183069B78 /* Entypo.ttf */; }; + 25104ACB2C9D4E3498B09075 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 135919F2E51D45A7A64A2AC1 /* EvilIcons.ttf */; }; + 4FCC7E6FACC1407C8C5F4D17 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8B10C459CDB2422AB46C83AE /* Feather.ttf */; }; + 56D81CF80C424BF18A91EC03 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 433C4D4CA8BD4244A6FC0FDB /* FontAwesome.ttf */; }; + 6DA22487D36B4F1591843B3A /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C91FF1DD1BEC40E19D6D5078 /* FontAwesome5_Brands.ttf */; }; + C4F43563150940E98C4F45DF /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65804A0215C24F68AFD191C8 /* FontAwesome5_Regular.ttf */; }; + 71DE553589D9488AAB1C8F75 /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 00F06B92B5EA48588F7EE670 /* FontAwesome5_Solid.ttf */; }; + 10AFCA0D59EE467CB50E0BF1 /* Fontisto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 18685C684C5A4E708DDB4D85 /* Fontisto.ttf */; }; + 6D8DC285BA9042B4A2374CEB /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4E83435083EF43A487C8F855 /* Foundation.ttf */; }; + 149CD750285B4871BFDB5C13 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E1E1E9ABA3E64968B2FC2DF7 /* Ionicons.ttf */; }; + 2DCDB51F094D4BED8414E418 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7EDEAA066F234A01B2B902D0 /* MaterialCommunityIcons.ttf */; }; + EBCB002CA1A3499B87782B28 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE9DC890F7954C72946E018D /* MaterialIcons.ttf */; }; + 28C9468AD0AE4577B35A59AA /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 54307F30170F4B96955FB328 /* Octicons.ttf */; }; + 36F29F65030C432A84913AC6 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0D86B869BDB94AF3B5A79E00 /* SimpleLineIcons.ttf */; }; + 047872599EB84D8DBB2E68C1 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B207D65268FE400BB754CDE5 /* Zocial.ttf */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -57,6 +73,22 @@ DA0493B628749E5000F9CA59 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; DA4D399328742AD400BCAFF5 /* BOB_FrontEnd.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = BOB_FrontEnd.entitlements; path = BOB_FrontEnd/BOB_FrontEnd.entitlements; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + AB29969CCF5C45729D257948 /* AntDesign.ttf */ = {isa = PBXFileReference; name = "AntDesign.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 95A10581A6E5497183069B78 /* Entypo.ttf */ = {isa = PBXFileReference; name = "Entypo.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 135919F2E51D45A7A64A2AC1 /* EvilIcons.ttf */ = {isa = PBXFileReference; name = "EvilIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 8B10C459CDB2422AB46C83AE /* Feather.ttf */ = {isa = PBXFileReference; name = "Feather.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 433C4D4CA8BD4244A6FC0FDB /* FontAwesome.ttf */ = {isa = PBXFileReference; name = "FontAwesome.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + C91FF1DD1BEC40E19D6D5078 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Brands.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 65804A0215C24F68AFD191C8 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Regular.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 00F06B92B5EA48588F7EE670 /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; name = "FontAwesome5_Solid.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 18685C684C5A4E708DDB4D85 /* Fontisto.ttf */ = {isa = PBXFileReference; name = "Fontisto.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 4E83435083EF43A487C8F855 /* Foundation.ttf */ = {isa = PBXFileReference; name = "Foundation.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + E1E1E9ABA3E64968B2FC2DF7 /* Ionicons.ttf */ = {isa = PBXFileReference; name = "Ionicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 7EDEAA066F234A01B2B902D0 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; name = "MaterialCommunityIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + BE9DC890F7954C72946E018D /* MaterialIcons.ttf */ = {isa = PBXFileReference; name = "MaterialIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 54307F30170F4B96955FB328 /* Octicons.ttf */ = {isa = PBXFileReference; name = "Octicons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 0D86B869BDB94AF3B5A79E00 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; name = "SimpleLineIcons.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + B207D65268FE400BB754CDE5 /* Zocial.ttf */ = {isa = PBXFileReference; name = "Zocial.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -161,6 +193,22 @@ 11C955E157164BEF96CBCC24 /* Pretendard-Regular.ttf */, 4752C974ABD44F989EB7740B /* Pretendard-SemiBold.ttf */, 193D3C47DC2D49CAB80AA0A8 /* Poppins-Bold.ttf */, + AB29969CCF5C45729D257948 /* AntDesign.ttf */, + 95A10581A6E5497183069B78 /* Entypo.ttf */, + 135919F2E51D45A7A64A2AC1 /* EvilIcons.ttf */, + 8B10C459CDB2422AB46C83AE /* Feather.ttf */, + 433C4D4CA8BD4244A6FC0FDB /* FontAwesome.ttf */, + C91FF1DD1BEC40E19D6D5078 /* FontAwesome5_Brands.ttf */, + 65804A0215C24F68AFD191C8 /* FontAwesome5_Regular.ttf */, + 00F06B92B5EA48588F7EE670 /* FontAwesome5_Solid.ttf */, + 18685C684C5A4E708DDB4D85 /* Fontisto.ttf */, + 4E83435083EF43A487C8F855 /* Foundation.ttf */, + E1E1E9ABA3E64968B2FC2DF7 /* Ionicons.ttf */, + 7EDEAA066F234A01B2B902D0 /* MaterialCommunityIcons.ttf */, + BE9DC890F7954C72946E018D /* MaterialIcons.ttf */, + 54307F30170F4B96955FB328 /* Octicons.ttf */, + 0D86B869BDB94AF3B5A79E00 /* SimpleLineIcons.ttf */, + B207D65268FE400BB754CDE5 /* Zocial.ttf */, ); name = Resources; sourceTree = ""; @@ -279,6 +327,22 @@ D6D041C14C1D4CC0B3849B2B /* Pretendard-Regular.ttf in Resources */, 1361569F6A8C4E128DF3EC4A /* Pretendard-SemiBold.ttf in Resources */, F2D1474B88BC47BDBF1013E0 /* Poppins-Bold.ttf in Resources */, + 6CB264AA692B4AEFB2475816 /* AntDesign.ttf in Resources */, + 7CCD38732D4546C5BABE082C /* Entypo.ttf in Resources */, + 25104ACB2C9D4E3498B09075 /* EvilIcons.ttf in Resources */, + 4FCC7E6FACC1407C8C5F4D17 /* Feather.ttf in Resources */, + 56D81CF80C424BF18A91EC03 /* FontAwesome.ttf in Resources */, + 6DA22487D36B4F1591843B3A /* FontAwesome5_Brands.ttf in Resources */, + C4F43563150940E98C4F45DF /* FontAwesome5_Regular.ttf in Resources */, + 71DE553589D9488AAB1C8F75 /* FontAwesome5_Solid.ttf in Resources */, + 10AFCA0D59EE467CB50E0BF1 /* Fontisto.ttf in Resources */, + 6D8DC285BA9042B4A2374CEB /* Foundation.ttf in Resources */, + 149CD750285B4871BFDB5C13 /* Ionicons.ttf in Resources */, + 2DCDB51F094D4BED8414E418 /* MaterialCommunityIcons.ttf in Resources */, + EBCB002CA1A3499B87782B28 /* MaterialIcons.ttf in Resources */, + 28C9468AD0AE4577B35A59AA /* Octicons.ttf in Resources */, + 36F29F65030C432A84913AC6 /* SimpleLineIcons.ttf in Resources */, + 047872599EB84D8DBB2E68C1 /* Zocial.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/BOB_FrontEnd/Info.plist b/ios/BOB_FrontEnd/Info.plist index a22596b..445af76 100644 --- a/ios/BOB_FrontEnd/Info.plist +++ b/ios/BOB_FrontEnd/Info.plist @@ -68,6 +68,22 @@ Pretendard-Medium.ttf Pretendard-Regular.ttf Pretendard-SemiBold.ttf + AntDesign.ttf + Entypo.ttf + EvilIcons.ttf + Feather.ttf + FontAwesome.ttf + FontAwesome5_Brands.ttf + FontAwesome5_Regular.ttf + FontAwesome5_Solid.ttf + Fontisto.ttf + Foundation.ttf + Ionicons.ttf + MaterialCommunityIcons.ttf + MaterialIcons.ttf + Octicons.ttf + SimpleLineIcons.ttf + Zocial.ttf UIBackgroundModes diff --git a/package-lock.json b/package-lock.json index be7f92d..e8fb795 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18354,12 +18354,14 @@ "@firebase/auth-interop-types": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz", - "integrity": "sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g==" + "integrity": "sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g==", + "requires": {} }, "@firebase/auth-types": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.11.0.tgz", - "integrity": "sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw==" + "integrity": "sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw==", + "requires": {} }, "@firebase/component": { "version": "0.5.15", @@ -18435,7 +18437,8 @@ "@firebase/firestore-types": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.0.tgz", - "integrity": "sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA==" + "integrity": "sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA==", + "requires": {} }, "@firebase/functions": { "version": "0.8.2", @@ -18619,7 +18622,8 @@ "@firebase/storage-types": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.6.0.tgz", - "integrity": "sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA==" + "integrity": "sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA==", + "requires": {} }, "@firebase/util": { "version": "1.6.1", @@ -20450,7 +20454,8 @@ "@react-native-community/masked-view": { "version": "0.1.11", "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.11.tgz", - "integrity": "sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==" + "integrity": "sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==", + "requires": {} }, "@react-native-firebase/app": { "version": "14.11.1", @@ -20465,7 +20470,8 @@ "@react-native-firebase/auth": { "version": "14.11.1", "resolved": "https://registry.npmjs.org/@react-native-firebase/auth/-/auth-14.11.1.tgz", - "integrity": "sha512-IzgFakon2jkuC4FEP8q9wruz8Yu0yem/Yk0v8IwndV2h/5lYmmij/f5Pyk74U3tadGOr9UrBsGkrWZMceiAjHQ==" + "integrity": "sha512-IzgFakon2jkuC4FEP8q9wruz8Yu0yem/Yk0v8IwndV2h/5lYmmij/f5Pyk74U3tadGOr9UrBsGkrWZMceiAjHQ==", + "requires": {} }, "@react-native-firebase/messaging": { "version": "14.11.1", @@ -20475,7 +20481,8 @@ "@react-native-google-signin/google-signin": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/@react-native-google-signin/google-signin/-/google-signin-7.2.2.tgz", - "integrity": "sha512-FqSJAEYz+SNeIOyokFX3e7nbBgK0js/Hye0YNY+cV0Qf1NxKw1vRt2MQB3kfuVWFCb+OSovgQCl6W8dhYvsblw==" + "integrity": "sha512-FqSJAEYz+SNeIOyokFX3e7nbBgK0js/Hye0YNY+cV0Qf1NxKw1vRt2MQB3kfuVWFCb+OSovgQCl6W8dhYvsblw==", + "requires": {} }, "@react-native/assets": { "version": "1.0.0", @@ -20529,7 +20536,8 @@ "@react-navigation/elements": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.3.tgz", - "integrity": "sha512-Lv2lR7si5gNME8dRsqz57d54m4FJtrwHRjNQLOyQO546ZxO+g864cSvoLC6hQedQU0+IJnPTsZiEI2hHqfpEpw==" + "integrity": "sha512-Lv2lR7si5gNME8dRsqz57d54m4FJtrwHRjNQLOyQO546ZxO+g864cSvoLC6hQedQU0+IJnPTsZiEI2hHqfpEpw==", + "requires": {} }, "@react-navigation/native": { "version": "6.0.10", @@ -21067,7 +21075,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "7.2.0", @@ -21312,7 +21321,8 @@ "babel-core": { "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==" + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "requires": {} }, "babel-eslint": { "version": "10.1.0", @@ -22775,7 +22785,8 @@ "version": "22.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz", "integrity": "sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-prettier": { "version": "3.1.2", @@ -22833,7 +22844,8 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz", "integrity": "sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-react-native": { "version": "3.11.0", @@ -24864,7 +24876,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "26.0.0", @@ -26690,7 +26703,8 @@ "moment-with-locales-es6": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/moment-with-locales-es6/-/moment-with-locales-es6-1.0.1.tgz", - "integrity": "sha512-aKHuk7hHGVGk1X86rhu4aVwSEpBEwL3Lo5BEvZnqGueZeVK9pfpTrlLT3qN4A64vMkiKkxWpwQCcyg2YpoZGaQ==" + "integrity": "sha512-aKHuk7hHGVGk1X86rhu4aVwSEpBEwL3Lo5BEvZnqGueZeVK9pfpTrlLT3qN4A64vMkiKkxWpwQCcyg2YpoZGaQ==", + "requires": {} }, "ms": { "version": "2.1.2", @@ -27490,12 +27504,14 @@ "react-freeze": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.0.tgz", - "integrity": "sha512-yQaiOqDmoKqks56LN9MTgY06O0qQHgV4FUrikH357DydArSZHQhl0BJFqGKIZoTqi8JizF9Dxhuk1FIZD6qCaw==" + "integrity": "sha512-yQaiOqDmoKqks56LN9MTgY06O0qQHgV4FUrikH357DydArSZHQhl0BJFqGKIZoTqi8JizF9Dxhuk1FIZD6qCaw==", + "requires": {} }, "react-hook-form": { "version": "7.32.2", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.32.2.tgz", - "integrity": "sha512-F1A6n762xaRhvtQH5SkQQhMr19cCkHZYesTcKJJeNmrphiZp/cYFTIzC05FnQry0SspM54oPJ9tXFXlzya8VNQ==" + "integrity": "sha512-F1A6n762xaRhvtQH5SkQQhMr19cCkHZYesTcKJJeNmrphiZp/cYFTIzC05FnQry0SspM54oPJ9tXFXlzya8VNQ==", + "requires": {} }, "react-is": { "version": "17.0.2", @@ -27573,12 +27589,14 @@ "react-native-config": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/react-native-config/-/react-native-config-1.4.5.tgz", - "integrity": "sha512-5oiAsoW88SOYDg/0cleJ2vJDqv98FJUbFQYEnH4sdMtEn3AAT3lb7BkTGW8HO/t3Vk9VOruwxUUnO4tzuxzCsw==" + "integrity": "sha512-5oiAsoW88SOYDg/0cleJ2vJDqv98FJUbFQYEnH4sdMtEn3AAT3lb7BkTGW8HO/t3Vk9VOruwxUUnO4tzuxzCsw==", + "requires": {} }, "react-native-fast-image": { "version": "8.5.11", "resolved": "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-8.5.11.tgz", - "integrity": "sha512-cNW4bIJg3nvKaheG8vGMfqCt5LMWX9MS5+wMudgKIHbGO51spRr4sgnlhVgwHLcZ5aeNOVJ8CPRxDIWKRq/0QA==" + "integrity": "sha512-cNW4bIJg3nvKaheG8vGMfqCt5LMWX9MS5+wMudgKIHbGO51spRr4sgnlhVgwHLcZ5aeNOVJ8CPRxDIWKRq/0QA==", + "requires": {} }, "react-native-gesture-handler": { "version": "2.4.2", @@ -27600,12 +27618,14 @@ "react-native-image-picker": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-4.8.4.tgz", - "integrity": "sha512-Mjh2j/sddyolb16EpmprWzbtyeFvW8Xgzr/8WNi9d6bR2FC/kL78cY/a+7Yzujg5ZDtT1MWys+eWw/qtfwgGiw==" + "integrity": "sha512-Mjh2j/sddyolb16EpmprWzbtyeFvW8Xgzr/8WNi9d6bR2FC/kL78cY/a+7Yzujg5ZDtT1MWys+eWw/qtfwgGiw==", + "requires": {} }, "react-native-iphone-x-helper": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz", - "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==" + "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==", + "requires": {} }, "react-native-keyboard-aware-scroll-view": { "version": "0.9.5", @@ -27669,12 +27689,14 @@ "react-native-responsive-screen": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/react-native-responsive-screen/-/react-native-responsive-screen-1.4.2.tgz", - "integrity": "sha512-BLYz0UUpeohrib7jbz6wDmtBD5OmiuMRko4IT8kIF63taXPod/c5iZgmWnr5qOnK8hMuKiGMvsM3sC+eHX/lEQ==" + "integrity": "sha512-BLYz0UUpeohrib7jbz6wDmtBD5OmiuMRko4IT8kIF63taXPod/c5iZgmWnr5qOnK8hMuKiGMvsM3sC+eHX/lEQ==", + "requires": {} }, "react-native-safe-area-context": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.2.5.tgz", - "integrity": "sha512-nUil2de1gk/8ZB9IzIxFyGCiKeAYcHzJb/Tks2NzSkev1qH4MNR05DWYDSmW6vLT+y4mospLVyG/H5dyUd+KQQ==" + "integrity": "sha512-nUil2de1gk/8ZB9IzIxFyGCiKeAYcHzJb/Tks2NzSkev1qH4MNR05DWYDSmW6vLT+y4mospLVyG/H5dyUd+KQQ==", + "requires": {} }, "react-native-screens": { "version": "3.13.1", @@ -29870,7 +29892,8 @@ "ws": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", - "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==" + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "requires": {} }, "xcode": { "version": "3.0.1", diff --git a/src/components/Map/MapStoreReviewList.tsx b/src/components/Map/MapStoreReviewList.tsx index e327f1f..511d4fa 100644 --- a/src/components/Map/MapStoreReviewList.tsx +++ b/src/components/Map/MapStoreReviewList.tsx @@ -9,6 +9,8 @@ import {MapReviewToggleButton} from './MapReviewToggleButton'; import {MapStoreInfo} from '..'; import {ImageSwiper} from '../Common/ImageSwiper'; import {IStoreData, IStoreReview} from '../../data'; +import {DesignSystem} from '../../assets/DesignSystem'; +import {ReviewNo} from '../ReviewNo'; type props = { storeData?: IStoreData; @@ -37,7 +39,6 @@ export const MapStoreReviewList = ({ ({pageParam}) => getStoreReviewList({pageParam}, storeData?.storeId), { getNextPageParam: (lastPage, pages) => { - console.log('페이지들:', pages.length); if (lastPage.data.result.last === false) { return pages.length + 1; } else { @@ -47,81 +48,105 @@ export const MapStoreReviewList = ({ }, ); - return ( - { - Animated.event([{nativeEvent: {contentOffset: {y: offset}}}], { - useNativeDriver: false, - })(event); - }} - ListHeaderComponent={ - <> - - - setPhotoModal(false)} - /> - - - - - setIsReview(true)} - togglePhoto={() => setIsReview(false)} - isReview={isReview} - reviewCount={reviewCount} - /> - - - } - data={reviewList.data?.pages} - renderItem={({item, index}) => { - return ( - - {item.data.result.content.map((review: IStoreReview) => ( - + + + setPhotoModal(false)} + /> + + + + + setIsReview(true)} + togglePhoto={() => setIsReview(false)} + isReview={isReview} + reviewCount={reviewCount} + /> + + + + + + ); + } else { + return ( + { + Animated.event([{nativeEvent: {contentOffset: {y: offset}}}], { + useNativeDriver: false, + })(event); + }} + ListHeaderComponent={ + <> + + + setPhotoModal(false)} /> - ))} - - ); - }} - contentContainerStyle={styles.reviewListWrap} - onEndReached={() => { - if (reviewList.hasNextPage) { - reviewList.fetchNextPage(); + + + + + setIsReview(true)} + togglePhoto={() => setIsReview(false)} + isReview={isReview} + reviewCount={reviewCount} + /> + + } - }} - ListFooterComponent={ - <>{reviewList.isFetching && !reviewList.isFetchingNextPage && } - } - /> - ); - - // return ( - // - // {renderedReviews(dummyReviews)} - // setPhotoModal(false)} - // /> - // - // ); + data={reviewList.data?.pages} + renderItem={({item, index}) => { + return ( + + {item.data.result.content.map((review: IStoreReview) => ( + + ))} + + ); + }} + contentContainerStyle={styles.reviewListWrap} + onEndReached={() => { + if (reviewList.hasNextPage) { + reviewList.fetchNextPage(); + } + }} + ListFooterComponent={ + <>{reviewList.isFetching && !reviewList.isFetchingNextPage && } + } + /> + ); + } }; const styles = StyleSheet.create({ diff --git a/src/components/Map/MapStoreReviewPhoto.tsx b/src/components/Map/MapStoreReviewPhoto.tsx index 6f9d07b..99d59e0 100644 --- a/src/components/Map/MapStoreReviewPhoto.tsx +++ b/src/components/Map/MapStoreReviewPhoto.tsx @@ -4,8 +4,6 @@ import { View, Dimensions, TouchableOpacity, - FlatList, - Image, Animated, ActivityIndicator, } from 'react-native'; @@ -14,10 +12,12 @@ import FastImage from 'react-native-fast-image'; import {useInfiniteQuery} from 'react-query'; import {queryKey} from '../../api/queryKey'; import {getStoreReviewImages} from '../../api/store'; -import {IStoreData, IStoreReviewImages} from '../../data'; +import {IStoreData} from '../../data'; import {MapStoreInfo} from './MapStoreInfo'; import {ImageSwiper} from '../Common/ImageSwiper'; import {MapReviewToggleButton} from './MapReviewToggleButton'; +import {ReviewNo} from '../ReviewNo'; +import {DesignSystem} from '../../assets/DesignSystem'; const WIDTH = Dimensions.get('window').width; const IMAGESIZE = WIDTH / 3; @@ -44,7 +44,7 @@ export const MapStoreReviewPhoto = ({ ({pageParam}) => getStoreReviewImages({pageParam}, storeData?.storeId), { getNextPageParam: (lastPage, pages) => { - console.log('페이지들:', pages.length); + // console.log('페이지들:', pages.length); if (lastPage.data.result.last === false) { return pages.length + 1; } else { @@ -53,75 +53,111 @@ export const MapStoreReviewPhoto = ({ }, }, ); - const openPhotoModal = (imageSource: string) => { setReviewPhoto({uri: imageSource}); setPhotoModal(true); }; - return ( - { - Animated.event([{nativeEvent: {contentOffset: {y: offset}}}], { - useNativeDriver: false, - })(event); - }} - ListHeaderComponent={ - <> - - - setPhotoModal(false)} - /> - - - - - setIsReview(true)} - togglePhoto={() => setIsReview(false)} - isReview={isReview} - reviewCount={reviewCount} - /> - - - } - data={reviewImages.data?.pages} - renderItem={({item}) => { - return ( - - {item.data.result.content.map((image: any) => ( - openPhotoModal(image.imageUrl)}> - - - - - ))} - - ); - }} - contentContainerStyle={styles.reviewPhotoWrap} - onEndReached={() => { - if (reviewImages.hasNextPage) { - reviewImages.fetchNextPage(); + //리뷰없는경우 ---------------------------- + if (reviewCount === 0) { + return ( + <> + + + setPhotoModal(false)} + /> + + + + + setIsReview(true)} + togglePhoto={() => setIsReview(false)} + isReview={isReview} + reviewCount={reviewCount} + /> + + + + + + ); + } else { + return ( + { + Animated.event([{nativeEvent: {contentOffset: {y: offset}}}], { + useNativeDriver: false, + })(event); + }} + ListHeaderComponent={ + <> + + + setPhotoModal(false)} + /> + + + + + setIsReview(true)} + togglePhoto={() => setIsReview(false)} + isReview={isReview} + reviewCount={reviewCount} + /> + + } - }} - ListFooterComponent={ - <>{reviewImages.isFetching && !reviewImages.isFetchingNextPage && } - } - /> - ); + data={reviewImages.data?.pages} + renderItem={({item}) => { + return ( + + {item.data.result.content.map((image: any, index: number) => ( + openPhotoModal(image.imageUrl)}> + + + + + ))} + + ); + }} + contentContainerStyle={styles.reviewPhotoWrap} + onEndReached={() => { + if (reviewImages.hasNextPage) { + reviewImages.fetchNextPage(); + } + }} + ListFooterComponent={ + <> + {reviewImages.isFetching && !reviewImages.isFetchingNextPage && } + + } + /> + ); + } }; const styles = StyleSheet.create({ diff --git a/src/components/My/MyReviewEach.tsx b/src/components/My/MyReviewEach.tsx index cfd9011..d6afc44 100644 --- a/src/components/My/MyReviewEach.tsx +++ b/src/components/My/MyReviewEach.tsx @@ -4,11 +4,39 @@ import {View, StyleSheet, Text, TouchableOpacity} from 'react-native'; import {DesignSystem} from '../../assets/DesignSystem'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import {IMyReviewEachProps} from '../../data'; +import FastImage from 'react-native-fast-image'; + +type MyReviewEachType = { + images: {imageUrl: string}[]; + name: string; + date: string; + rate: number; + content: string; + reply: {date: string; reply: string; reviewReplyId: number}[]; + openPhotoModal: (imageSource: string) => void; +}; //prettier-ignore -export const MyReviewEach: FC = ({name, date, rate, content, images, reply, reviewId}) => { +export const MyReviewEach: FC = ({ + name, date, rate, content, images, reply, openPhotoModal +}) => { + const renderedImage = (imagedata: {imageUrl: string}[]) => { + return ( + + {imagedata.map((item, index) => { + return ( + openPhotoModal(item.imageUrl)}> + + + + + ); + })} + + ); + }; return ( - + @@ -30,10 +58,7 @@ export const MyReviewEach: FC = ({name, date, rate, content, {content} - - 🚨🚨🚨🚨🚨🚨🚨🚨🚨리뷰사진🚨🚨🚨🚨🚨 - {/* images.imageUrl */} - + {renderedImage(images)} {reply.length !== 0 && ( @@ -60,7 +85,6 @@ const styles = StyleSheet.create({ }, customerWrap: { flexDirection: 'column', - marginBottom: 16, }, title: { flexDirection: 'row', @@ -70,13 +94,9 @@ const styles = StyleSheet.create({ }, stars: { flexDirection: 'row', - marginBottom: 10, }, reviewContents: { - marginBottom: 10, - }, - reviewImg: { - flexDirection: 'column', + marginTop: 10, }, ownerWrap: { flexDirection: 'column', @@ -96,4 +116,10 @@ const styles = StyleSheet.create({ marginTop: 12, marginBottom: 12, }, + reviewRow3: {flexDirection: 'row', alignItems: 'center', marginTop: 8}, + reviewImageWrap: {marginRight: 8}, + imageSize: { + height: 80, + width: 80, + }, }); diff --git a/src/components/My/MyWriteInquiry.tsx b/src/components/My/MyWriteInquiry.tsx index 6cdda64..ec62c8b 100644 --- a/src/components/My/MyWriteInquiry.tsx +++ b/src/components/My/MyWriteInquiry.tsx @@ -1,5 +1,6 @@ import React, {useState} from 'react'; import {Image, StyleSheet, Text, TextInput, View, TouchableOpacity, KeyboardAvoidingView, Platform} from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import {widthPercentageToDP as wp, heightPercentageToDP as hp} from 'react-native-responsive-screen'; import {calHeight, calWidth} from '../../assets/CalculateLength'; @@ -19,39 +20,41 @@ export const MyWriteInquiry = () => { style={[{flex: 1}]} behavior={Platform.OS === 'ios' ? 'padding' : 'height'} > - - { - setTitle(text); - }} - value={title} - placeholder="문의 제목 입력" - selectionColor={'#6C69FF'} - onBlur={() => setFocusedTitle(false)} - onFocus={() => setFocusedTitle(true)} - /> - setTitle('')} style={[styles.titleXView]}> - + + { + setTitle(text); + }} + value={title} + placeholder="문의 제목 입력" + selectionColor={'#6C69FF'} + onBlur={() => setFocusedTitle(false)} + onFocus={() => setFocusedTitle(true)} /> - - - - { - setBody(text); - }} - value={body} - placeholder="문의 내용 작성" - multiline={true} - selectionColor={'#6C69FF'} - onBlur={() => setFocusedBody(false)} - onFocus={() => setFocusedBody(true)} - /> - + setTitle('')} style={[styles.titleXView]}> + + + + + { + setBody(text); + }} + value={body} + placeholder="문의 내용 작성" + multiline={true} + selectionColor={'#6C69FF'} + onBlur={() => setFocusedBody(false)} + onFocus={() => setFocusedBody(true)} + /> + + = ({isPhoto}) => { + return ( + + + {isPhoto === 1 ? '아직 리뷰 사진이 없어요!' : '아직 리뷰가 없어요!'} + + + + ); +}; diff --git a/src/modal/ReviewModal.tsx b/src/modal/ReviewModal.tsx index 6426e1d..62b4a92 100644 --- a/src/modal/ReviewModal.tsx +++ b/src/modal/ReviewModal.tsx @@ -1,14 +1,6 @@ import React, {useState} from 'react'; import type {FC} from 'react'; -import { - Modal, - SafeAreaView, - StyleSheet, - Text, - TouchableOpacity, - View, - Platform, -} from 'react-native'; +import {Modal, SafeAreaView, StyleSheet, Text, TouchableOpacity, View} from 'react-native'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import {ReviewRate} from '../components/ReviewRate'; import {ReviewWrite} from '../components/ReviewWrite'; @@ -23,7 +15,6 @@ type ReviewModalProps = { storeId: number; visible: boolean; closeReviewModal: () => void; - openDoneModal?: () => void; }; type imageData = { uri: string; diff --git a/src/modal/StoreModal.tsx b/src/modal/StoreModal.tsx index 0078488..21f594f 100644 --- a/src/modal/StoreModal.tsx +++ b/src/modal/StoreModal.tsx @@ -10,18 +10,12 @@ import { Animated, } from 'react-native'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; -import { - MapStoreInfo, - MapReviewToggleButton, - MapStoreReviewList, - MapStoreReviewPhoto, -} from '../components'; +import {MapStoreReviewList, MapStoreReviewPhoto} from '../components'; import ReviewModal from './ReviewModal'; import {useStyle} from '../hooks'; -import {ImageSwiper} from '../components/Common/ImageSwiper'; -import {useInfiniteQuery, useQuery} from 'react-query'; +import {useQuery} from 'react-query'; import {queryKey} from '../api/queryKey'; -import {getStoreData, getStoreReviewImages} from '../api/store'; +import {getStoreData} from '../api/store'; import {IStoreData} from '../data'; type StoreModalProps = { @@ -49,7 +43,7 @@ const StoreModal: FC = ({storeId, visible, closeStoreModal}) => extrapolate: 'clamp', }), }); - + // console.log('------------------', storeData.data); //undefined 인ㅇ지로 반편 return ( @@ -69,7 +63,7 @@ const StoreModal: FC = ({storeId, visible, closeStoreModal}) => - {isReview ? ( + {isReview ? ( //리뷰 = ({storeId, visible, closeStoreModal}) => reviewCount={storeData.data?.reviewCount} /> ) : ( + //리뷰사진 { console.log('가게 리스트 받기 성공: ', data); }, onError(err) { + setNoMission(true); console.log('가게 리스트 받기 실패: ', err); }, }, @@ -69,7 +70,6 @@ const Map = () => { closeStoreModal={() => setStoreModal(false)} storeId={storeId} /> - setAddressModal(true)} style={[styles.header]}> @@ -89,7 +89,7 @@ const Map = () => { 내 주변 가게 - {noMission ? ( + {DataUser.isError ? ( 주변에 미션이 없어요🥺 diff --git a/src/screens/my/MyNotificationsSetting.tsx b/src/screens/my/MyNotificationsSetting.tsx index a11cf52..8e0e0e5 100644 --- a/src/screens/my/MyNotificationsSetting.tsx +++ b/src/screens/my/MyNotificationsSetting.tsx @@ -12,9 +12,9 @@ export const MyNotificationsSetting = ({navigation}: Props) => { const goBack = () => { navigation.goBack(); }; - const [onNewevent, setOnNewevent] = useState(false); - const [onReview, setOnReview] = useState(false); - const [onInquiry, setOnInquiry] = useState(false); + const [onNewevent, setOnNewevent] = useState(true); + const [onReview, setOnReview] = useState(true); + const [onInquiry, setOnInquiry] = useState(true); console.log(onNewevent, onReview, onInquiry); return ( diff --git a/src/screens/my/MyPoint.tsx b/src/screens/my/MyPoint.tsx index 1313850..d663f3c 100644 --- a/src/screens/my/MyPoint.tsx +++ b/src/screens/my/MyPoint.tsx @@ -25,31 +25,6 @@ export type PointsListType = { // nextPage: number; pageNumber: number; }; -const dummyMission = [ - { - date: '2022-12-03T16:01:34.864Z', - title: '마라마라마라탕', - subTitle: '20000원 이상 식사', - point: -500, - }, - { - date: '2022-12-03T16:01:34.864Z', - title: '어쩌고 맛집', - subTitle: '15000원 이상', - point: 3000, - }, - { - date: '2022-11-13T16:01:34.864Z', - title: '포인트 전환', - point: -400, - }, - { - date: '2022-06-02T16:01:34.864Z', - title: '와라라라 맛집', - subTitle: '18000원 이상', - point: 500, - }, -]; export const MyPoint = ({navigation, route}: Props) => { const [point, setPoint] = useState(route.params.point); diff --git a/src/screens/my/MyReview.tsx b/src/screens/my/MyReview.tsx index 067b161..94f9f95 100644 --- a/src/screens/my/MyReview.tsx +++ b/src/screens/my/MyReview.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, {useState} from 'react'; import {View, StyleSheet, SafeAreaView, FlatList} from 'react-native'; import type {NativeStackScreenProps} from '@react-navigation/native-stack'; import {MyStackParamList} from '../../nav/MyNavigator'; @@ -8,52 +8,78 @@ import {useInfiniteQuery} from 'react-query'; import {queryKey} from '../../api/queryKey'; import {getReviewsMe} from '../../api'; import {IReviewsType} from '../../data'; +import {PhotoModal} from '../../modal'; +import {ReviewNo} from '../../components/ReviewNo'; +import { DesignSystem } from '../../assets/DesignSystem'; type Props = NativeStackScreenProps; export const MyReview = ({navigation}: Props) => { - const DataReviews = useInfiniteQuery([queryKey.REVIEWSME], getReviewsMe, { + const [photoModal, setPhotoModal] = useState(false); + const [reviewPhoto, setReviewPhoto] = useState<{uri: string}>({uri: 'string'}); + const openPhotoModal = (imageSource: string) => { + setReviewPhoto({uri: imageSource}); + setPhotoModal(true); + }; + const goBack = () => { + navigation.goBack(); + }; + + const DataReviews = useInfiniteQuery([queryKey.REVIEWSME], getReviewsMe, { getNextPageParam: (lastPage, pages) => { return pages.length; }, }); - const goBack = () => { - navigation.goBack(); - }; + // console.log(DataReviews.data?.pages.length); return ( - - - { - DataReviews.fetchNextPage(); - }} - renderItem={({item}) => ( - <> - {/* {console.log('iiiiiiiiiiiiii', item.content)} */} - {item.content.map((e: any, i: number) => { - return ( - - - - ); - })} - + <> + + + + {DataReviews.data?.pages.length !== 0 ? ( //리뷰없는경우 + + + + ) : ( + { + if (DataReviews.hasNextPage) { + DataReviews.fetchNextPage(); + } + }} + renderItem={({item}) => ( + <> + {/* {console.log('iiiiiiiiiiiiii', item.content)} */} + {item.content.map((e: any, i: number) => { + return ( + + + + ); + })} + + )} + /> )} - ItemSeparatorComponent={() => } - /> - + setPhotoModal(false)} + /> + + ); }; diff --git a/yarn.lock b/yarn.lock index 51f70e2..46425dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,7 +41,7 @@ "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz" "version" "7.17.10" -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.7.5": +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.4.0-0", "@babel/core@^7.7.5": "integrity" "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==" "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz" "version" "7.18.2" @@ -806,7 +806,7 @@ "minimatch" "^3.0.4" "strip-json-comments" "^3.1.1" -"@expo/config-plugins@^4.1.5": +"@expo/config-plugins@^4.1.0", "@expo/config-plugins@^4.1.5": "integrity" "sha512-RVvU40RtZt12HavuDAe+LDIq9lHj7sheOfMEHdmpJ/uTA8pgvkbc56XF6JHQD+yRr6+uhhb+JnAasGq49dsQbw==" "resolved" "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.1.5.tgz" "version" "4.1.5" @@ -914,7 +914,7 @@ "@firebase/util" "1.6.1" "tslib" "^2.1.0" -"@firebase/app-compat@0.1.27": +"@firebase/app-compat@0.1.27", "@firebase/app-compat@0.x": "integrity" "sha512-0A5ENP/KK0Eev94qPuxaclfOE0oA6hyCVQTdi0ox1bPm+VzGGD/jXP6Bzw+IUmy33ChjP/639bm6Myh8AG4PwA==" "resolved" "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.1.27.tgz" "version" "0.1.27" @@ -925,12 +925,12 @@ "@firebase/util" "1.6.1" "tslib" "^2.1.0" -"@firebase/app-types@0.7.0": +"@firebase/app-types@0.7.0", "@firebase/app-types@0.x": "integrity" "sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==" "resolved" "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz" "version" "0.7.0" -"@firebase/app@0.7.26": +"@firebase/app@0.7.26", "@firebase/app@0.x": "integrity" "sha512-FmJ4uaUyazmOZZWJO9OviKfnw+lrwMPQbWBMutymSQT8Gx783Ddnhs5IdmfV0NeLrlGy4ZwfP6/+RJyy2wGDXw==" "resolved" "https://registry.npmjs.org/@firebase/app/-/app-0.7.26.tgz" "version" "0.7.26" @@ -1210,7 +1210,7 @@ "node-fetch" "2.6.7" "tslib" "^2.1.0" -"@firebase/util@1.6.1": +"@firebase/util@1.6.1", "@firebase/util@1.x": "integrity" "sha512-+eDE6uG5GgvXYHbAzfP1mpJUX1VDBD+A8CjBeBoNAKAVAApMSDxDODqRcOq7NW7kFJXSUkMzDJWhnUIifX2R8w==" "resolved" "https://registry.npmjs.org/@firebase/util/-/util-1.6.1.tgz" "version" "1.6.1" @@ -1784,7 +1784,7 @@ "sudo-prompt" "^9.0.0" "wcwidth" "^1.0.1" -"@react-native-community/datetimepicker@^6.1.3": +"@react-native-community/datetimepicker@^6.1.3", "@react-native-community/datetimepicker@>=3.0.0": "integrity" "sha512-3e20BPQy8QiQeIGJL4zoJaRsGWB31hl9i7oTZECWxnK6nVUeqGt/G+JRJlJinmqL6z4WePHC6RSUMgpC64OOwg==" "resolved" "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.1.3.tgz" "version" "6.1.3" @@ -1820,7 +1820,7 @@ "resolved" "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.11.tgz" "version" "0.1.11" -"@react-native-firebase/app@^14.11.1": +"@react-native-firebase/app@^14.11.1", "@react-native-firebase/app@14.11.1", "@react-native-firebase/app@15.1.1": "integrity" "sha512-fkvOK8c7e8MxIbfb2076kO3GtGUc3ZXNEkPyfamRKBnPgANpmnjQaTVIraXpeuIIOfjj5uDK4uw32znWiDusGA==" "resolved" "https://registry.npmjs.org/@react-native-firebase/app/-/app-14.11.1.tgz" "version" "14.11.1" @@ -1892,7 +1892,7 @@ "@react-navigation/elements" "^1.3.3" "warn-once" "^0.1.0" -"@react-navigation/native@^6.0.10": +"@react-navigation/native@^6.0.0", "@react-navigation/native@^6.0.10": "integrity" "sha512-H6QhLeiieGxNcAJismIDXIPZgf1myr7Og8v116tezIGmincJTOcWavTd7lPHGnMMXaZg94LlVtbaBRIx9cexqw==" "resolved" "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.10.tgz" "version" "6.0.10" @@ -2173,7 +2173,7 @@ "eslint-scope" "^5.0.0" "eslint-utils" "^2.0.0" -"@typescript-eslint/parser@^3.1.0": +"@typescript-eslint/parser@^3.0.0", "@typescript-eslint/parser@^3.1.0": "integrity" "sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==" "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz" "version" "3.10.1" @@ -2184,7 +2184,7 @@ "@typescript-eslint/typescript-estree" "3.10.1" "eslint-visitor-keys" "^1.1.0" -"@typescript-eslint/parser@^5.17.0": +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.17.0": "integrity" "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==" "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz" "version" "5.26.0" @@ -2328,7 +2328,7 @@ "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" "version" "7.2.0" -"acorn@^7.1.1", "acorn@^7.4.0": +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.1", "acorn@^7.4.0": "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" "version" "7.4.1" @@ -3773,7 +3773,7 @@ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" "version" "3.3.0" -"eslint@^7.32.0": +"eslint@*", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^3.17.0 || ^4 || ^5 || ^6 || ^7", "eslint@^5.0.0 || ^6.0.0 || ^7.0.0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^7.32.0", "eslint@>= 4.12.1", "eslint@>= 5.0.0", "eslint@>=2.0.0", "eslint@>=3.14.1", "eslint@>=4.19.1", "eslint@>=5", "eslint@>=6": "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==" "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" "version" "7.32.0" @@ -5225,7 +5225,7 @@ "jest-regex-util" "^26.0.0" "jest-snapshot" "^26.6.2" -"jest-resolve@^26.6.2": +"jest-resolve@*", "jest-resolve@^26.6.2": "integrity" "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==" "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz" "version" "26.6.2" @@ -6215,7 +6215,7 @@ "resolved" "https://registry.npmjs.org/moment-with-locales-es6/-/moment-with-locales-es6-1.0.1.tgz" "version" "1.0.1" -"moment@^2.29.3": +"moment@^2.0.0", "moment@^2.29.3": "integrity" "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" "resolved" "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz" "version" "2.29.3" @@ -6797,7 +6797,7 @@ dependencies: "fast-diff" "^1.1.2" -"prettier@^2.0.2": +"prettier@^2.0.2", "prettier@>= 1.13.0": "integrity" "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==" "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz" "version" "2.6.2" @@ -6973,7 +6973,7 @@ "resolved" "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-8.5.11.tgz" "version" "8.5.11" -"react-native-gesture-handler@^2.4.2": +"react-native-gesture-handler@*", "react-native-gesture-handler@^2.4.2", "react-native-gesture-handler@>= 1.0.0", "react-native-gesture-handler@>=1.10.1": "integrity" "sha512-K3oMiQV7NOVB5RvNlxkyJxU1Gn6m1cYu53MoFA542FVDSTR491d1eQkWDdqy4lW52rfF7IK7eE1LCi+kTJx7jw==" "resolved" "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.4.2.tgz" "version" "2.4.2" @@ -7030,7 +7030,7 @@ dependencies: "lodash" "^4.17.15" -"react-native-reanimated@^2.8.0": +"react-native-reanimated@^2.8.0", "react-native-reanimated@>=2.0.0", "react-native-reanimated@>=2.2.0": "integrity" "sha512-kJvf/UWLBMaGCs9X66MKq5zdFMgwx8D0nHnolbHR7s8ZnbLdb7TlQ/yuzIXqn/9wABfnwtNRI3CyaP1aHWMmZg==" "resolved" "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.8.0.tgz" "version" "2.8.0" @@ -7057,12 +7057,12 @@ "resolved" "https://registry.npmjs.org/react-native-responsive-screen/-/react-native-responsive-screen-1.4.2.tgz" "version" "1.4.2" -"react-native-safe-area-context@^4.2.5": +"react-native-safe-area-context@^4.2.5", "react-native-safe-area-context@>= 3.0.0": "integrity" "sha512-nUil2de1gk/8ZB9IzIxFyGCiKeAYcHzJb/Tks2NzSkev1qH4MNR05DWYDSmW6vLT+y4mospLVyG/H5dyUd+KQQ==" "resolved" "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.2.5.tgz" "version" "4.2.5" -"react-native-screens@^3.13.1": +"react-native-screens@^3.13.1", "react-native-screens@>= 3.0.0": "integrity" "sha512-xcrnuUs0qUrGpc2gOTDY4VgHHADQwp80mwR1prU/Q0JqbZN5W3koLhuOsT6FkSRKjR5t40l+4LcjhHdpqRB2HA==" "resolved" "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.13.1.tgz" "version" "3.13.1" @@ -7077,7 +7077,7 @@ dependencies: "polished" "^4.1.4" -"react-native-svg@^12.3.0": +"react-native-svg@^12.1.0", "react-native-svg@^12.3.0", "react-native-svg@>=7.0.0": "integrity" "sha512-ESG1g1j7/WLD7X3XRFTQHVv0r6DpbHNNcdusngAODIxG88wpTWUZkhcM3A2HJTb+BbXTFDamHv7FwtRKWQ/ALg==" "resolved" "https://registry.npmjs.org/react-native-svg/-/react-native-svg-12.3.0.tgz" "version" "12.3.0" @@ -7092,7 +7092,7 @@ dependencies: "prop-types" "^15.5.10" -"react-native-vector-icons@^9.1.0": +"react-native-vector-icons@*", "react-native-vector-icons@^9.1.0": "integrity" "sha512-2AHZ/h9d/+rC0odz+OwbGNlc1Lik/pHhSixn4HfC8RtQ8CxfSBZ6gg7bTLcZhdSvZN+ZEGi30Fj+ZnOSQy+smg==" "resolved" "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.1.0.tgz" "version" "9.1.0" @@ -7108,7 +7108,7 @@ "escape-string-regexp" "2.0.0" "invariant" "2.2.4" -"react-native@0.68.2": +"react-native@*", "react-native@^0.0.0-0 || 0.60 - 0.68 || 1000.0.0", "react-native@>=0.35", "react-native@>=0.42.0", "react-native@>=0.48.4", "react-native@>=0.50.0", "react-native@>=0.57", "react-native@>=0.60.0", "react-native@>=0.65.0", "react-native@0.68.2": "integrity" "sha512-qNMz+mdIirCEmlrhapAtAG+SWVx6MAiSfCbFNhfHqiqu1xw1OKXdzIrjaBEPihRC2pcORCoCHduHGQe/Pz9Yuw==" "resolved" "https://registry.npmjs.org/react-native/-/react-native-0.68.2.tgz" "version" "0.68.2" @@ -7178,7 +7178,7 @@ "react-shallow-renderer" "^16.13.1" "scheduler" "^0.20.2" -"react@17.0.2": +"react@*", "react@^16.0.0 || ^17.0.0", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.6 || ^17.0.0", "react@^17.0.0", "react@>=16.0", "react@>=16.0.0", "react@>=16.13.1", "react@>=16.3.0", "react@17.0.2": "integrity" "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==" "resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz" "version" "17.0.2" @@ -8282,7 +8282,7 @@ dependencies: "is-typedarray" "^1.0.0" -"typescript@^4.4.4": +"typescript@^4.4.4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": "integrity" "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==" "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz" "version" "4.7.2"