From 9ef1f5404ea41508a3e17b345fc00bc7e7ea2b4c Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Fri, 15 Jan 2021 14:27:37 -0500 Subject: [PATCH 01/14] Adds collections --- src/Navigation/Stacks.tsx | 2 ++ src/Navigation/schema.ts | 1 + src/Scenes/Home/Home.tsx | 4 +++- src/fragmentTypes.json | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Navigation/Stacks.tsx b/src/Navigation/Stacks.tsx index ce98f1caa..1c1f87442 100644 --- a/src/Navigation/Stacks.tsx +++ b/src/Navigation/Stacks.tsx @@ -1,5 +1,6 @@ import { createBottomTabNavigator } from "@react-navigation/bottom-tabs" import { createStackNavigator, TransitionPresets } from "@react-navigation/stack" +import { Collection } from "@seasons/eclipse" import { ExtendPauseConfirmation, PauseConfirmation, ResumeConfirmation } from "App/Components/Pause" import { Schema } from "App/Navigation" import { @@ -147,6 +148,7 @@ const HomeStackScreen = () => { + diff --git a/src/Navigation/schema.ts b/src/Navigation/schema.ts index 701101094..7ea9cfbdb 100644 --- a/src/Navigation/schema.ts +++ b/src/Navigation/schema.ts @@ -27,6 +27,7 @@ export enum PageNames { Brand = "Brand", Brands = "Brands", FitPicDetail = "FitPicDetail", + Collection = "Collection", // Browse Browse = "Browse", diff --git a/src/Scenes/Home/Home.tsx b/src/Scenes/Home/Home.tsx index a9586f4ce..f003fc282 100644 --- a/src/Scenes/Home/Home.tsx +++ b/src/Scenes/Home/Home.tsx @@ -15,9 +15,9 @@ import styled from "styled-components/native" import { ReservationFeedbackPopUp, ReservationFeedbackReminder } from "../ReservationFeedback/Components" import { HomeBlogContent, HomeBottomSheet } from "./Components" import { Homepage_fitPics } from "App/generated/Homepage" -import { GET_HOMEPAGE } from "./queries/homeQueries" import analytics from "@segment/analytics-react-native" import { userSessionToIdentifyPayload } from "App/utils/auth" +import { GET_HOMEPAGE } from "@seasons/eclipse" export const Home = screenTrack()(({ navigation, route }) => { const [showLoader, toggleLoader] = useState(true) @@ -29,6 +29,8 @@ export const Home = screenTrack()(({ navigation, route }) => { const [showSplash, setShowSplash] = useState(true) const network = useContext(NetworkContext) + console.log("data", data) + const totalFitPics = data?.fitPicsCount?.aggregate?.count ?? 0 const fitPicsReceived = data?.fitPics?.length ?? 0 diff --git a/src/fragmentTypes.json b/src/fragmentTypes.json index c4e0f90ac..1eb0a69ba 100644 --- a/src/fragmentTypes.json +++ b/src/fragmentTypes.json @@ -1 +1 @@ -{"__schema":{"types":[{"kind":"UNION","name":"SearchResultData","possibleTypes":[{"name":"ProductSearchResultData"},{"name":"PhysicalProductSearchResultData"}]},{"kind":"UNION","name":"HomepageResult","possibleTypes":[{"name":"Product"},{"name":"Collection"},{"name":"Brand"},{"name":"Category"},{"name":"HomepageProductRail"}]}]}} \ No newline at end of file +{"__schema":{"types":[{"kind":"INTERFACE","name":"Node","possibleTypes":[{"name":"Collection"},{"name":"Category"},{"name":"ProductMaterialCategory"},{"name":"ProductModel"},{"name":"TopSize"},{"name":"BottomSize"},{"name":"Color"},{"name":"Location"},{"name":"EmailReceipt"},{"name":"CustomerDetail"},{"name":"StylePreferences"},{"name":"BillingInfo"},{"name":"PaymentPlan"},{"name":"BagItem"},{"name":"Package"},{"name":"Label"},{"name":"PackageTransitEvent"},{"name":"ReservationFeedback"},{"name":"ProductVariantFeedback"},{"name":"ProductVariantFeedbackQuestion"},{"name":"ShippingOption"},{"name":"ShippingMethod"},{"name":"CustomerMembership"},{"name":"PauseRequest"},{"name":"CustomerAdmissionsData"},{"name":"UTMData"},{"name":"PushNotificationReceipt"},{"name":"UserPushNotification"},{"name":"UserPushNotificationInterest"},{"name":"WarehouseLocation"},{"name":"WarehouseLocationConstraint"},{"name":"ProductSeason"},{"name":"Season"},{"name":"Tag"},{"name":"ProductFunction"},{"name":"ProductNotification"},{"name":"ProductRequest"},{"name":"HomepageProductRail"},{"name":"FitPicReport"},{"name":"InterestedUser"},{"name":"ReservationReceipt"},{"name":"ReservationReceiptItem"},{"name":"RecentlyViewedProduct"},{"name":"ProductVariantWant"},{"name":"ActiveAdminUser"},{"name":"CollectionGroup"},{"name":"SmsReceipt"},{"name":"SyncTiming"}]},{"kind":"UNION","name":"SearchResultData","possibleTypes":[{"name":"ProductSearchResultData"},{"name":"PhysicalProductSearchResultData"}]},{"kind":"UNION","name":"HomepageResult","possibleTypes":[{"name":"Product"},{"name":"Collection"},{"name":"Brand"},{"name":"Category"},{"name":"HomepageProductRail"}]}]}} \ No newline at end of file From 6f7b5d007fa96c2d1ae829f439f4a828836b8a1d Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Mon, 18 Jan 2021 16:35:16 -0500 Subject: [PATCH 02/14] Adds collection rail --- .../Home/Components/HomeBottomSheet.tsx | 38 +++++++++++++------ src/fragmentTypes.json | 2 +- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/Scenes/Home/Components/HomeBottomSheet.tsx b/src/Scenes/Home/Components/HomeBottomSheet.tsx index 823e60afb..aba0fda6d 100644 --- a/src/Scenes/Home/Components/HomeBottomSheet.tsx +++ b/src/Scenes/Home/Components/HomeBottomSheet.tsx @@ -11,9 +11,10 @@ import ScrollBottomSheet from "react-native-scroll-bottom-sheet" import { useNavigation } from "@react-navigation/native" -import { BrandsRail, CategoriesRail, FitPicCollection, HomeFooter, ProductsRail, TagsRail } from "./" +import { BrandsRail, CategoriesRail, FitPicCollection, HomeFooter, TagsRail } from "./" import { AddPhotoButton } from "./AddPhotoButton" import { FitPicCollectionRef } from "./FitPicCollection" +import { ProductsRail } from "@seasons/eclipse" const dimensions = Dimensions.get("window") @@ -26,6 +27,7 @@ enum SectionType { FitPics = "FitPics", Categories = "Categories", ProductsByTag = "ProductsByTag", + Collection = "Collection", } const sectionsFrom = (data: any) => { @@ -72,15 +74,16 @@ const sectionsFrom = (data: any) => { if (data?.justAddedBottoms?.length) { sections.push({ type: SectionType.Products, results: data?.justAddedBottoms, title: "Just added bottoms" }) } - if (data?.homepage?.sections?.length) { + if (data?.collections?.length > 0) { + console.log("true") sections.push( - ...data?.homepage?.sections + ...data?.collections .map((section) => { - switch (section.type) { - case SectionType.ProductsByTag: - return { - ...section, - } + return { + type: SectionType.Collection, + title: section.title, + results: section.products, + id: section.id, } }) .filter(Boolean) @@ -122,6 +125,7 @@ const sectionsFrom = (data: any) => { if (data?.fitPics?.length) { sections.push({ type: SectionType.FitPics, results: data?.fitPics }) } + console.log("sections", sections) return sections } @@ -153,9 +157,21 @@ export const HomeBottomSheet: React.FC = ({ data, fetchMor return case SectionType.ArchivalProducts: return - case SectionType.ProductsByTag: - const tagData = { title: item.title, tag: item.tagData?.tagName, description: item.tagData?.description } - return + case SectionType.Collection: + console.log("item", item) + return ( + { + navigation.navigate(Schema.StackNames.HomeStack, { + screen: Schema.PageNames.Collection, + params: { collectionID: item.id }, + }) + }} + /> + ) case SectionType.Products: return case SectionType.Categories: diff --git a/src/fragmentTypes.json b/src/fragmentTypes.json index 1eb0a69ba..c4e0f90ac 100644 --- a/src/fragmentTypes.json +++ b/src/fragmentTypes.json @@ -1 +1 @@ -{"__schema":{"types":[{"kind":"INTERFACE","name":"Node","possibleTypes":[{"name":"Collection"},{"name":"Category"},{"name":"ProductMaterialCategory"},{"name":"ProductModel"},{"name":"TopSize"},{"name":"BottomSize"},{"name":"Color"},{"name":"Location"},{"name":"EmailReceipt"},{"name":"CustomerDetail"},{"name":"StylePreferences"},{"name":"BillingInfo"},{"name":"PaymentPlan"},{"name":"BagItem"},{"name":"Package"},{"name":"Label"},{"name":"PackageTransitEvent"},{"name":"ReservationFeedback"},{"name":"ProductVariantFeedback"},{"name":"ProductVariantFeedbackQuestion"},{"name":"ShippingOption"},{"name":"ShippingMethod"},{"name":"CustomerMembership"},{"name":"PauseRequest"},{"name":"CustomerAdmissionsData"},{"name":"UTMData"},{"name":"PushNotificationReceipt"},{"name":"UserPushNotification"},{"name":"UserPushNotificationInterest"},{"name":"WarehouseLocation"},{"name":"WarehouseLocationConstraint"},{"name":"ProductSeason"},{"name":"Season"},{"name":"Tag"},{"name":"ProductFunction"},{"name":"ProductNotification"},{"name":"ProductRequest"},{"name":"HomepageProductRail"},{"name":"FitPicReport"},{"name":"InterestedUser"},{"name":"ReservationReceipt"},{"name":"ReservationReceiptItem"},{"name":"RecentlyViewedProduct"},{"name":"ProductVariantWant"},{"name":"ActiveAdminUser"},{"name":"CollectionGroup"},{"name":"SmsReceipt"},{"name":"SyncTiming"}]},{"kind":"UNION","name":"SearchResultData","possibleTypes":[{"name":"ProductSearchResultData"},{"name":"PhysicalProductSearchResultData"}]},{"kind":"UNION","name":"HomepageResult","possibleTypes":[{"name":"Product"},{"name":"Collection"},{"name":"Brand"},{"name":"Category"},{"name":"HomepageProductRail"}]}]}} \ No newline at end of file +{"__schema":{"types":[{"kind":"UNION","name":"SearchResultData","possibleTypes":[{"name":"ProductSearchResultData"},{"name":"PhysicalProductSearchResultData"}]},{"kind":"UNION","name":"HomepageResult","possibleTypes":[{"name":"Product"},{"name":"Collection"},{"name":"Brand"},{"name":"Category"},{"name":"HomepageProductRail"}]}]}} \ No newline at end of file From 57e6e5b16088c068cda0ed758a19e29b2ed6fb91 Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Mon, 18 Jan 2021 16:35:45 -0500 Subject: [PATCH 03/14] Removes logs --- src/Scenes/Home/Components/HomeBottomSheet.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Scenes/Home/Components/HomeBottomSheet.tsx b/src/Scenes/Home/Components/HomeBottomSheet.tsx index aba0fda6d..c5db6a4e1 100644 --- a/src/Scenes/Home/Components/HomeBottomSheet.tsx +++ b/src/Scenes/Home/Components/HomeBottomSheet.tsx @@ -75,7 +75,6 @@ const sectionsFrom = (data: any) => { sections.push({ type: SectionType.Products, results: data?.justAddedBottoms, title: "Just added bottoms" }) } if (data?.collections?.length > 0) { - console.log("true") sections.push( ...data?.collections .map((section) => { @@ -125,7 +124,6 @@ const sectionsFrom = (data: any) => { if (data?.fitPics?.length) { sections.push({ type: SectionType.FitPics, results: data?.fitPics }) } - console.log("sections", sections) return sections } @@ -158,7 +156,6 @@ export const HomeBottomSheet: React.FC = ({ data, fetchMor case SectionType.ArchivalProducts: return case SectionType.Collection: - console.log("item", item) return ( Date: Mon, 18 Jan 2021 17:15:59 -0500 Subject: [PATCH 04/14] Creates collection scene --- src/Navigation/ErrorPopUp/PopUpContext.ts | 2 +- src/Navigation/ErrorPopUp/PopUpProvider.tsx | 12 +-------- src/Navigation/Stacks.tsx | 8 ++++-- src/Scenes/Collection/CollectionScene.tsx | 17 ++++++++++++ src/Scenes/Collection/index.tsx | 1 + src/Scenes/Product/Queries.ts | 30 --------------------- src/utils/track/schema.ts | 1 + 7 files changed, 27 insertions(+), 44 deletions(-) create mode 100644 src/Scenes/Collection/CollectionScene.tsx create mode 100644 src/Scenes/Collection/index.tsx diff --git a/src/Navigation/ErrorPopUp/PopUpContext.ts b/src/Navigation/ErrorPopUp/PopUpContext.ts index 38f5de8ce..274b5e784 100644 --- a/src/Navigation/ErrorPopUp/PopUpContext.ts +++ b/src/Navigation/ErrorPopUp/PopUpContext.ts @@ -1,5 +1,5 @@ +import { PopUpData } from "@seasons/eclipse" import React, { useContext } from "react" -import { PopUpData } from "./PopUpProvider" export const usePopUpContext = () => useContext(PopUpContext) diff --git a/src/Navigation/ErrorPopUp/PopUpProvider.tsx b/src/Navigation/ErrorPopUp/PopUpProvider.tsx index bea60e431..7071052f0 100644 --- a/src/Navigation/ErrorPopUp/PopUpProvider.tsx +++ b/src/Navigation/ErrorPopUp/PopUpProvider.tsx @@ -1,17 +1,7 @@ +import { PopUpData } from "@seasons/eclipse" import React, { useReducer } from "react" import PopUpContext from "./PopUpContext" -export interface PopUpData { - title?: string - icon?: JSX.Element - note?: string - buttonText?: string - onClose: any - theme?: "light" | "dark" - secondaryButtonText?: string - secondaryButtonOnPress?: () => void -} - enum PopUpAction { Show = "SHOW", Hide = "HIDE", diff --git a/src/Navigation/Stacks.tsx b/src/Navigation/Stacks.tsx index 1c1f87442..5328e7123 100644 --- a/src/Navigation/Stacks.tsx +++ b/src/Navigation/Stacks.tsx @@ -1,6 +1,5 @@ import { createBottomTabNavigator } from "@react-navigation/bottom-tabs" import { createStackNavigator, TransitionPresets } from "@react-navigation/stack" -import { Collection } from "@seasons/eclipse" import { ExtendPauseConfirmation, PauseConfirmation, ResumeConfirmation } from "App/Components/Pause" import { Schema } from "App/Navigation" import { @@ -19,6 +18,7 @@ import { SurpriseMe } from "App/Scenes/Bag/SurpriseMe" import { Brand } from "App/Scenes/Brand" import { Brands } from "App/Scenes/Brands" import { Browse, Filters } from "App/Scenes/Browse" +import { CollectionScene } from "App/Scenes/Collection" import { CreateAccount } from "App/Scenes/CreateAccount" import { ApplyPromoCode } from "App/Scenes/CreateAccount/Admitted/ApplyPromoCode/ApplyPromoCode" import { EditPaymentModal } from "App/Scenes/CreateAccount/Admitted/ChoosePlanPane/EditPaymentModal" @@ -148,7 +148,11 @@ const HomeStackScreen = () => { - + diff --git a/src/Scenes/Collection/CollectionScene.tsx b/src/Scenes/Collection/CollectionScene.tsx new file mode 100644 index 000000000..f1932216e --- /dev/null +++ b/src/Scenes/Collection/CollectionScene.tsx @@ -0,0 +1,17 @@ +import React from "react" +import { Schema, screenTrack } from "App/utils/track" +import { Collection } from "@seasons/eclipse" +import { useAuthContext } from "App/Navigation/AuthContext" +import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" + +export const CollectionScene = screenTrack({ + entityType: Schema.EntityTypes.Collection, +})((props: any) => { + const { route } = props + const { authState } = useAuthContext() + const { showPopUp, hidePopUp } = usePopUpContext() + + const collectionID = route?.params?.collectionID + + return +}) diff --git a/src/Scenes/Collection/index.tsx b/src/Scenes/Collection/index.tsx new file mode 100644 index 000000000..ba643543e --- /dev/null +++ b/src/Scenes/Collection/index.tsx @@ -0,0 +1 @@ +export { CollectionScene } from "./CollectionScene" diff --git a/src/Scenes/Product/Queries.ts b/src/Scenes/Product/Queries.ts index 715b5bd6d..1e81c5711 100644 --- a/src/Scenes/Product/Queries.ts +++ b/src/Scenes/Product/Queries.ts @@ -121,33 +121,3 @@ export const GET_PRODUCT = gql` } ${commonProductVariantFragment} ` - -export const GET_COLLECTION = gql` - query GetCollection($collectionID: ID!) { - collection(where: { id: $collectionID }) { - id - slug - images - title - subTitle - products { - id - slug - name - description - retailPrice - modelSize { - display - } - modelHeight - brand { - name - } - images { - id - url - } - } - } - } -` diff --git a/src/utils/track/schema.ts b/src/utils/track/schema.ts index 35101407a..f62a2817c 100644 --- a/src/utils/track/schema.ts +++ b/src/utils/track/schema.ts @@ -72,6 +72,7 @@ export enum PageNames { } export enum EntityTypes { + Collection = "Collection", Brand = "Brand", Product = "Product", Reservation = "Reservation", From 48b515887a295e34d2fd9c6241a69e124e7f2abc Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Tue, 19 Jan 2021 14:19:58 -0500 Subject: [PATCH 05/14] Upgrades Apollo to @apollo/client --- package.json | 8 +- src/Apollo/index.ts | 60 +++-- src/Apollo/resolvers.ts | 2 +- src/App.tsx | 4 +- src/Components/Pause/PauseButtons.tsx | 2 +- src/Notifications/NotificationsProvider.tsx | 2 +- src/Scenes/Account/Account.tsx | 2 +- .../Account/Components/NotificationToggle.tsx | 2 +- .../EditShippingAddress.tsx | 2 +- .../EditStylePreferences.tsx | 2 +- .../Account/InviteFriends/InviteFriends.tsx | 4 +- .../Account/MembershipInfo/MembershipInfo.tsx | 2 +- .../MembershipInfo/UpdatePaymentPlanModal.tsx | 2 +- .../EditPaymentAndShipping.tsx | 2 +- .../PaymentAndShipping/PaymentAndShipping.tsx | 2 +- .../PersonalPreferences.tsx | 2 +- src/Scenes/Bag/Bag.tsx | 2 +- src/Scenes/Bag/Components/BagItem.tsx | 2 +- src/Scenes/Bag/Components/BagTab.tsx | 2 +- src/Scenes/Bag/Components/SavedItem.tsx | 2 +- src/Scenes/Bag/CurrentRotation.tsx | 2 +- src/Scenes/Bag/SurpriseMe.tsx | 4 +- src/Scenes/Brand/Brand.tsx | 2 +- src/Scenes/Brands/Brands.tsx | 2 +- src/Scenes/Browse/Browse.tsx | 2 +- src/Scenes/Collection/CollectionScene.tsx | 5 +- .../ApplyPromoCode/ApplyPromoCodePane.tsx | 4 +- .../ChoosePlanPane/ChoosePlanPane.tsx | 2 +- .../ChoosePlanPane/EditPaymentModal.tsx | 2 +- .../CreditCardFormPane/CreditCardFormPane.tsx | 2 +- src/Scenes/CreateAccount/CreateAccount.tsx | 2 +- .../CreateAccountPane/CreateAccountPane.tsx | 2 +- .../GetMeasurementsPane.tsx | 2 +- .../SendCodePane/SendCodePane.tsx | 2 +- .../Undetermined/TriagePane/TriagePane.tsx | 2 +- .../VerifyCodePane/VerifyCodePane.tsx | 2 +- src/Scenes/Faq/Faq.tsx | 2 +- src/Scenes/Home/Components/AddPhotoButton.tsx | 2 +- src/Scenes/Home/Components/FitPicDetail.tsx | 2 +- src/Scenes/Home/Home.tsx | 2 +- .../Product/Components/AddToBagButton.tsx | 2 +- .../Product/Components/SaveProductButton.tsx | 2 +- src/Scenes/Product/Components/SizeWarning.tsx | 2 +- src/Scenes/Product/Product.tsx | 2 +- src/Scenes/Product/SaveProduct.tsx | 2 +- src/Scenes/ProductRequest/ProductRequest.tsx | 2 +- src/Scenes/Reservation/Reservation.tsx | 2 +- .../Reservation/ReservationConfirmation.tsx | 2 +- .../Reservation/ShareReservationToIG.tsx | 4 +- .../Components/ReservationFeedbackPopUp.tsx | 2 +- .../ReservationFeedback.tsx | 2 +- .../ReservationFeedbackConfirmation.tsx | 2 +- src/Scenes/SignIn/LogIn.tsx | 2 +- src/Scenes/SignIn/ResetPassword.tsx | 2 +- src/Scenes/Tag/Tag.tsx | 2 +- src/storybook/stories/index.tsx | 4 +- yarn.lock | 240 ++++++------------ 57 files changed, 176 insertions(+), 255 deletions(-) diff --git a/package.json b/package.json index d8a9cda25..630525a05 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "build:fastlane": "fastlane ios beta" }, "dependencies": { - "@apollo/react-hooks": "^3.1.1", + "@apollo/client": "^3.3.6", "@expo/react-native-action-sheet": "^3.8.0", "@material-ui/core": "^4.11.1", "@react-native-community/async-storage": "~1.12.0", @@ -41,13 +41,10 @@ "@sentry/react-native": "^1.1.0", "@types/jest": "^24.0.18", "@types/luxon": "^1.24.3", - "apollo-boost": "^0.4.4", "apollo-cache": "^1.3.2", "apollo-cache-persist": "^0.1.1", - "apollo-client": "2.6.4", - "apollo-link": "^1.2.12", "apollo-link-context": "^1.0.19", - "apollo-link-error": "^1.1.12", + "apollo-link-error": "^1.1.13", "apollo-upload-client": "^14.1.1", "apollo-utilities": "^1.3.2", "aws-sdk": "^2.639.0", @@ -58,7 +55,6 @@ "node-fetch": "^2.6.0", "querystring": "^0.2.0", "react": "16.13.1", - "react-apollo": "^3.1.1", "react-dom": "16.13.1", "react-native": "0.63.3", "react-native-animatable": "^1.3.3", diff --git a/src/Apollo/index.ts b/src/Apollo/index.ts index b99f77c0d..0f2273246 100644 --- a/src/Apollo/index.ts +++ b/src/Apollo/index.ts @@ -1,14 +1,13 @@ -import { InMemoryCache, IntrospectionFragmentMatcher } from "apollo-cache-inmemory" -import { persistCache } from "apollo-cache-persist" -import { ApolloClient } from "apollo-client" -import { ApolloLink, Observable } from "apollo-link" +// import { IntrospectionFragmentMatcher } from "apollo-cache-inmemory" +// import { persistCache } from "apollo-cache-persist" +import { ApolloLink, Observable, ApolloClient, InMemoryCache, HttpLink } from "@apollo/client" import { setContext } from "apollo-link-context" import { onError } from "apollo-link-error" import { createUploadLink } from "apollo-upload-client" import { getAccessTokenFromSession, getNewToken } from "App/utils/auth" import { config, Env } from "App/utils/config" import { Platform } from "react-native" -import unfetch from "unfetch" +// import unfetch from "unfetch" import AsyncStorage from "@react-native-community/async-storage" import * as Sentry from "@sentry/react-native" @@ -17,17 +16,21 @@ import introspectionQueryResultData from "../fragmentTypes.json" import { resolvers, typeDefs } from "./resolvers" export const setupApolloClient = async () => { - const fragmentMatcher = new IntrospectionFragmentMatcher({ - introspectionQueryResultData, - }) + // const fragmentMatcher = new IntrospectionFragmentMatcher({ + // introspectionQueryResultData, + // }) - const cache = new InMemoryCache({ fragmentMatcher }) + const cache = new InMemoryCache() - const link = createUploadLink({ - uri: config.get(Env.MONSOON_ENDPOINT) || "http://localhost:4000/", - // FIXME: unfetch here is being used for this fix https://github.com/jhen0409/react-native-debugger/issues/432 - fetch: unfetch, - }) + // const link = createUploadLink({ + // uri: config.get(Env.MONSOON_ENDPOINT) || "http://localhost:4000/", + // // FIXME: unfetch here is being used for this fix https://github.com/jhen0409/react-native-debugger/issues/432 + // fetch: unfetch, + // }) + + const httpLink = new HttpLink({ + uri: process.env.MONSOON_ENDPOINT || "http://localhost:4000/", // Server URL (must be absolute) + }) as any const authLink = setContext(async (_, { headers: oldHeaders }) => { const headers = { ...oldHeaders, application: "harvest", platform: Platform.OS } @@ -49,6 +52,7 @@ export const setupApolloClient = async () => { // return the headers to the context so createUploadLink can read them }) + // @ts-ignore const errorLink = onError(({ graphQLErrors, networkError, operation, forward, response }) => { if (graphQLErrors) { console.log("graphQLErrors", graphQLErrors) @@ -78,7 +82,7 @@ export const setupApolloClient = async () => { if (networkError) { console.log("networkError", JSON.stringify(networkError)) // User access token has expired - if (networkError.statusCode === 401) { + if ((networkError as any).statusCode === 401) { // We assume we have both tokens needed to run the async request // Let's refresh token through async request return new Observable((observer) => { @@ -112,25 +116,25 @@ export const setupApolloClient = async () => { } }) - const accessToken = await getAccessTokenFromSession() - cache.writeData({ - data: { - isLoggedIn: !!accessToken, - localBagItems: [], - }, - }) + // const accessToken = await getAccessTokenFromSession() + // cache.writeData({ + // data: { + // isLoggedIn: !!accessToken, + // localBagItems: [], + // }, + // }) - await persistCache({ - cache, - storage: AsyncStorage, - }) + // await persistCache({ + // cache, + // storage: AsyncStorage, + // }) return new ApolloClient({ // Provide required constructor fields - cache, - link: ApolloLink.from([authLink, errorLink, link]), + link: ApolloLink.from([authLink, errorLink, httpLink]) as any, typeDefs, resolvers, + cache, // Provide some optional constructor fields name: "react-web-client", version: "1.3", diff --git a/src/Apollo/resolvers.ts b/src/Apollo/resolvers.ts index 2c5aa30c2..e921032bc 100644 --- a/src/Apollo/resolvers.ts +++ b/src/Apollo/resolvers.ts @@ -28,7 +28,7 @@ interface AppResolvers extends Resolvers { // We will update this with our app's resolvers later } -export const resolvers = { +export const resolvers: any = { localBagItems: (_, __, { cache }) => { const queryResult = cache.readQuery({ query: GET_LOCAL_BAG, diff --git a/src/App.tsx b/src/App.tsx index 46879812a..812c66c7a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -5,11 +5,9 @@ import DeviceInfo from "react-native-device-info" import { SafeAreaProvider } from "react-native-safe-area-context" import { enableScreens } from "react-native-screens" import stripe from "tipsi-stripe" - -import { ApolloProvider } from "@apollo/react-hooks" +import { ApolloProvider } from "@apollo/client" import AsyncStorage from "@react-native-community/async-storage" import * as Sentry from "@sentry/react-native" - import { setupApolloClient } from "./Apollo" import { NetworkProvider } from "./NetworkProvider" import { config, Env } from "./utils/config" diff --git a/src/Components/Pause/PauseButtons.tsx b/src/Components/Pause/PauseButtons.tsx index 4e88963fc..a77e5b3ac 100644 --- a/src/Components/Pause/PauseButtons.tsx +++ b/src/Components/Pause/PauseButtons.tsx @@ -3,7 +3,7 @@ import React, { useState } from "react" import { Linking } from "react-native" import { ButtonVariant } from "../Button" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import gql from "graphql-tag" import { DateTime } from "luxon" import { GET_MEMBERSHIP_INFO } from "App/Scenes/Account/MembershipInfo/MembershipInfo" diff --git a/src/Notifications/NotificationsProvider.tsx b/src/Notifications/NotificationsProvider.tsx index 28db12f83..78655b1e7 100644 --- a/src/Notifications/NotificationsProvider.tsx +++ b/src/Notifications/NotificationsProvider.tsx @@ -6,7 +6,7 @@ import { Platform } from "react-native" import gql from "graphql-tag" import NotificationsContext from "./NotificationsContext" import RNPusherPushNotifications from "react-native-pusher-push-notifications" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { useNavigation } from "@react-navigation/native" import { getUserSession } from "App/utils/auth" diff --git a/src/Scenes/Account/Account.tsx b/src/Scenes/Account/Account.tsx index fbd8887f8..09e7ef066 100644 --- a/src/Scenes/Account/Account.tsx +++ b/src/Scenes/Account/Account.tsx @@ -19,7 +19,7 @@ import { import gql from "graphql-tag" import { DateTime } from "luxon" import { default as React, useEffect } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { Linking, Platform, ScrollView, StatusBar } from "react-native" import * as Animatable from "react-native-animatable" import Share from "react-native-share" diff --git a/src/Scenes/Account/Components/NotificationToggle.tsx b/src/Scenes/Account/Components/NotificationToggle.tsx index f69c56e59..93b9a466b 100644 --- a/src/Scenes/Account/Components/NotificationToggle.tsx +++ b/src/Scenes/Account/Components/NotificationToggle.tsx @@ -6,7 +6,7 @@ import { Text, Linking, AppState } from "react-native" import { checkNotifications } from "react-native-permissions" import { useNotificationsContext } from "App/Notifications/NotificationsContext" import { useTracking, Schema } from "App/utils/track" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import * as Sentry from "@sentry/react-native" import { GetUser_me_customer_user_pushNotification } from "App/generated/getUser" diff --git a/src/Scenes/Account/EditShippingAddress/EditShippingAddress.tsx b/src/Scenes/Account/EditShippingAddress/EditShippingAddress.tsx index 39ef0583e..956ad6901 100644 --- a/src/Scenes/Account/EditShippingAddress/EditShippingAddress.tsx +++ b/src/Scenes/Account/EditShippingAddress/EditShippingAddress.tsx @@ -6,7 +6,7 @@ import { FlatList, Keyboard, KeyboardAvoidingView } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" import { StatePickerPopUp } from "./StatePickerPopup" import gql from "graphql-tag" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import { FadeBottom2 } from "Assets/svgs/FadeBottom2" diff --git a/src/Scenes/Account/EditStylePreferences/EditStylePreferences.tsx b/src/Scenes/Account/EditStylePreferences/EditStylePreferences.tsx index f1d3efb0e..a67ea820e 100644 --- a/src/Scenes/Account/EditStylePreferences/EditStylePreferences.tsx +++ b/src/Scenes/Account/EditStylePreferences/EditStylePreferences.tsx @@ -8,7 +8,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context" import { areIndicesEqual, Index, Item, Section, sections } from "./Sections" import gql from "graphql-tag" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" const UPDATE_STYLE_PREFERENCES = gql` diff --git a/src/Scenes/Account/InviteFriends/InviteFriends.tsx b/src/Scenes/Account/InviteFriends/InviteFriends.tsx index 5c1276168..4170a95a0 100644 --- a/src/Scenes/Account/InviteFriends/InviteFriends.tsx +++ b/src/Scenes/Account/InviteFriends/InviteFriends.tsx @@ -1,11 +1,11 @@ import Clipboard from "@react-native-community/clipboard" -import { gql } from "apollo-boost" +import gql from "graphql-tag" import { Box, Button, Container, FixedBackArrow, Flex, Sans, Separator, Spacer } from "App/Components" import { PopUp } from "App/Components/PopUp" import { color } from "App/utils" import { screenTrack } from "App/utils/track" import React, { useState } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { Dimensions, Share, TouchableOpacity } from "react-native" import Contacts from "react-native-contacts" import { useSafeArea } from "react-native-safe-area-context" diff --git a/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx b/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx index 896e85cd1..a4a8f4406 100644 --- a/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx +++ b/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx @@ -1,6 +1,6 @@ import gql from "graphql-tag" import React from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { ScrollView } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" import { Box, Button, Container, FixedBackArrow, Sans, Separator, Spacer } from "App/Components" diff --git a/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx b/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx index 4d3514b0d..9320d4e89 100644 --- a/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx +++ b/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx @@ -3,7 +3,7 @@ import { Loader } from "App/Components/Loader" import { ChoosePlanPane } from "App/Scenes/CreateAccount/Admitted" import { GET_PLANS } from "App/Scenes/CreateAccount/CreateAccount" import React, { useEffect, useState } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { screenTrack } from "App/utils/track" export const UpdatePaymentPlanModal = screenTrack()(({ navigation, route }) => { diff --git a/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx b/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx index 80f64e5c6..9600595e0 100644 --- a/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx +++ b/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx @@ -1,6 +1,6 @@ import gql from "graphql-tag" import React, { useState } from "react" -import { useMutation, useQuery } from "react-apollo" +import { useMutation, useQuery } from "@apollo/client" import { Dimensions, Keyboard, KeyboardAvoidingView } from "react-native" import { KeyboardAwareFlatList } from "react-native-keyboard-aware-scroll-view" import { useSafeAreaInsets } from "react-native-safe-area-context" diff --git a/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx b/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx index 67e4ce6c5..420148139 100644 --- a/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx +++ b/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx @@ -2,7 +2,7 @@ import { Box, Container, FixedBackArrow, FixedButton, Sans, Spacer, Separator } import { Loader } from "App/Components/Loader" import gql from "graphql-tag" import React, { useEffect } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { FlatList } from "react-native" import { screenTrack } from "App/utils/track" import { color } from "App/utils" diff --git a/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx b/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx index 7565fbc40..c59e3273e 100644 --- a/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx +++ b/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx @@ -2,7 +2,7 @@ import { Box, Container, FixedBackArrow, Sans, Flex } from "App/Components" import { Loader } from "App/Components/Loader" import gql from "graphql-tag" import React, { useEffect, useState } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { screenTrack } from "App/utils/track" import { TabBar } from "App/Components/TabBar" import { PersonalTab } from "./PersonalTab" diff --git a/src/Scenes/Bag/Bag.tsx b/src/Scenes/Bag/Bag.tsx index fb7b1d991..80d5c924a 100644 --- a/src/Scenes/Bag/Bag.tsx +++ b/src/Scenes/Bag/Bag.tsx @@ -13,7 +13,7 @@ import { Container } from "Components/Container" import { TabBar } from "Components/TabBar" import { assign, fill } from "lodash" import React, { useEffect, useState } from "react" -import { useMutation, useQuery } from "react-apollo" +import { useMutation, useQuery } from "@apollo/client" import { FlatList, RefreshControl, StatusBar } from "react-native" import { State as CreateAccountState, UserState as CreateAccountUserState } from "../CreateAccount/CreateAccount" import { CHECK_ITEMS, GET_BAG, GET_LOCAL_BAG, REMOVE_FROM_BAG, REMOVE_FROM_BAG_AND_SAVE_ITEM } from "./BagQueries" diff --git a/src/Scenes/Bag/Components/BagItem.tsx b/src/Scenes/Bag/Components/BagItem.tsx index 1ca999890..67905b071 100644 --- a/src/Scenes/Bag/Components/BagItem.tsx +++ b/src/Scenes/Bag/Components/BagItem.tsx @@ -11,7 +11,7 @@ import { get, head } from "lodash" import React, { useState } from "react" import { TouchableOpacity, TouchableWithoutFeedback } from "react-native" import styled from "styled-components/native" -import { useMutation } from "@apollo/react-hooks" +import { useMutation } from "@apollo/client" import { ADD_OR_REMOVE_FROM_LOCAL_BAG, GET_BAG } from "../BagQueries" import { GET_BROWSE_PRODUCTS } from "App/Scenes/Browse/queries/browseQueries" diff --git a/src/Scenes/Bag/Components/BagTab.tsx b/src/Scenes/Bag/Components/BagTab.tsx index b2ee0a15a..980db0f2b 100644 --- a/src/Scenes/Bag/Components/BagTab.tsx +++ b/src/Scenes/Bag/Components/BagTab.tsx @@ -13,7 +13,7 @@ import { AddSlot, DarkInstagram, Stylist, SurpriseMe } from "Assets/svgs" import { assign, fill } from "lodash" import { DateTime } from "luxon" import React, { useEffect, useState } from "react" -import { useLazyQuery, useMutation } from "react-apollo" +import { useLazyQuery, useMutation } from "@apollo/client" import { Linking } from "react-native" import { GET_BAG, GET_LOCAL_BAG_ITEMS } from "../BagQueries" import { BagCardButton } from "./BagCardButton" diff --git a/src/Scenes/Bag/Components/SavedItem.tsx b/src/Scenes/Bag/Components/SavedItem.tsx index 1fd83cb56..0c38e977d 100644 --- a/src/Scenes/Bag/Components/SavedItem.tsx +++ b/src/Scenes/Bag/Components/SavedItem.tsx @@ -7,7 +7,7 @@ import { color } from "App/utils" import { Schema, useTracking } from "App/utils/track" import { CheckCircled } from "Assets/svgs" import React, { useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { TouchableWithoutFeedback } from "react-native" import styled from "styled-components/native" import * as Sentry from "@sentry/react-native" diff --git a/src/Scenes/Bag/CurrentRotation.tsx b/src/Scenes/Bag/CurrentRotation.tsx index 2564550f3..fbc043ac5 100644 --- a/src/Scenes/Bag/CurrentRotation.tsx +++ b/src/Scenes/Bag/CurrentRotation.tsx @@ -5,7 +5,7 @@ import { Sans } from "Components/Typography" import { get } from "lodash" import { DateTime } from "luxon" import React, { useEffect } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { FlatList } from "react-native" import * as Animatable from "react-native-animatable" import { Bag } from "./Bag" diff --git a/src/Scenes/Bag/SurpriseMe.tsx b/src/Scenes/Bag/SurpriseMe.tsx index ce7b38bf3..c88fbedb6 100644 --- a/src/Scenes/Bag/SurpriseMe.tsx +++ b/src/Scenes/Bag/SurpriseMe.tsx @@ -1,8 +1,8 @@ -import { gql } from "apollo-boost" +import gql from "graphql-tag" import { Button, CloseButton, Container, FadeInImage, Flex, Sans, Separator, Spacer } from "App/Components" import { Box } from "App/Components/Box" import React, { useEffect, useState } from "react" -import { useMutation, useQuery } from "react-apollo" +import { useMutation, useQuery } from "@apollo/client" import { shuffle, clone } from "lodash" import { PRODUCT_ASPECT_RATIO } from "App/helpers/constants" import { Dimensions, ScrollView } from "react-native" diff --git a/src/Scenes/Brand/Brand.tsx b/src/Scenes/Brand/Brand.tsx index e679853be..9e04f45d8 100644 --- a/src/Scenes/Brand/Brand.tsx +++ b/src/Scenes/Brand/Brand.tsx @@ -1,4 +1,4 @@ -import { useQuery } from "@apollo/react-hooks" +import { useQuery } from "@apollo/client" import { Container, FixedBackArrow } from "App/Components" import { GetBrand } from "App/generated/GetBrand" import { Schema, screenTrack } from "App/utils/track" diff --git a/src/Scenes/Brands/Brands.tsx b/src/Scenes/Brands/Brands.tsx index 1a3a75098..d17875ae7 100644 --- a/src/Scenes/Brands/Brands.tsx +++ b/src/Scenes/Brands/Brands.tsx @@ -1,7 +1,7 @@ import React, { useRef, useState, useEffect } from "react" import gql from "graphql-tag" import { AlphabetScrubber } from "App/Components/AlphabetScrubber" -import { useQuery } from "@apollo/react-hooks" +import { useQuery } from "@apollo/client" import { Container, Box, Spacer, Sans, FixedBackArrow, Flex, Separator } from "App/Components" import { FlatList, TouchableOpacity } from "react-native" import { GetBrands } from "App/generated/GetBrands" diff --git a/src/Scenes/Browse/Browse.tsx b/src/Scenes/Browse/Browse.tsx index fb3b8528c..dcfadb651 100644 --- a/src/Scenes/Browse/Browse.tsx +++ b/src/Scenes/Browse/Browse.tsx @@ -1,4 +1,4 @@ -import { useQuery } from "@apollo/react-hooks" +import { useQuery } from "@apollo/client" import { useFocusEffect } from "@react-navigation/native" import { Box, Flex, ProductGridItem } from "App/Components" import { Spinner } from "App/Components/Spinner" diff --git a/src/Scenes/Collection/CollectionScene.tsx b/src/Scenes/Collection/CollectionScene.tsx index f1932216e..c8c9074e0 100644 --- a/src/Scenes/Collection/CollectionScene.tsx +++ b/src/Scenes/Collection/CollectionScene.tsx @@ -12,6 +12,7 @@ export const CollectionScene = screenTrack({ const { showPopUp, hidePopUp } = usePopUpContext() const collectionID = route?.params?.collectionID - - return + return <> }) + +// return diff --git a/src/Scenes/CreateAccount/Admitted/ApplyPromoCode/ApplyPromoCodePane.tsx b/src/Scenes/CreateAccount/Admitted/ApplyPromoCode/ApplyPromoCodePane.tsx index 9bd6ea738..fb452baa7 100644 --- a/src/Scenes/CreateAccount/Admitted/ApplyPromoCode/ApplyPromoCodePane.tsx +++ b/src/Scenes/CreateAccount/Admitted/ApplyPromoCode/ApplyPromoCodePane.tsx @@ -1,11 +1,11 @@ import * as Sentry from "@sentry/react-native" -import { gql } from "apollo-boost" +import gql from "graphql-tag" import { Box, Button, CloseButton, Container, Sans, Spacer, TextInput } from "App/Components" import { TextInputRef } from "App/Components/TextInput" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import { Schema as TrackSchema, useTracking } from "App/utils/track" import React, { useEffect, useRef, useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { Keyboard, KeyboardAvoidingView } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" diff --git a/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/ChoosePlanPane.tsx b/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/ChoosePlanPane.tsx index 0253c39be..8a876a82e 100644 --- a/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/ChoosePlanPane.tsx +++ b/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/ChoosePlanPane.tsx @@ -11,7 +11,7 @@ import { TabBar } from "Components/TabBar" import gql from "graphql-tag" import { uniq } from "lodash" import React, { useEffect, useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { useSafeAreaInsets } from "react-native-safe-area-context" import { Dimensions, Linking, ScrollView, TouchableOpacity } from "react-native" import styled from "styled-components" diff --git a/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/EditPaymentModal.tsx b/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/EditPaymentModal.tsx index 41861e1b2..2efea524f 100644 --- a/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/EditPaymentModal.tsx +++ b/src/Scenes/CreateAccount/Admitted/ChoosePlanPane/EditPaymentModal.tsx @@ -7,7 +7,7 @@ import { color } from "App/utils/color" import { CheckCircled } from "Assets/svgs/CheckCircled" import { String } from "aws-sdk/clients/augmentedairuntime" import React, { useEffect, useRef, useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { Dimensions, FlatList, Keyboard } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" import styled from "styled-components" diff --git a/src/Scenes/CreateAccount/Admitted/CreditCardFormPane/CreditCardFormPane.tsx b/src/Scenes/CreateAccount/Admitted/CreditCardFormPane/CreditCardFormPane.tsx index fccca3df9..8946825bc 100644 --- a/src/Scenes/CreateAccount/Admitted/CreditCardFormPane/CreditCardFormPane.tsx +++ b/src/Scenes/CreateAccount/Admitted/CreditCardFormPane/CreditCardFormPane.tsx @@ -24,7 +24,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context" import styled from "styled-components" import stripe, { PaymentCardTextField } from "tipsi-stripe" -import { useMutation } from "@apollo/react-hooks" +import { useMutation } from "@apollo/client" import * as Sentry from "@sentry/react-native" import { Coupon, State } from "../../CreateAccount" diff --git a/src/Scenes/CreateAccount/CreateAccount.tsx b/src/Scenes/CreateAccount/CreateAccount.tsx index 599c55618..38805a60e 100644 --- a/src/Scenes/CreateAccount/CreateAccount.tsx +++ b/src/Scenes/CreateAccount/CreateAccount.tsx @@ -4,7 +4,7 @@ import { screenTrack } from "App/utils/track" import gql from "graphql-tag" import { get, pick } from "lodash" import React, { MutableRefObject, useEffect, useRef, useState } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { Dimensions, FlatList, Modal } from "react-native" import { ChoosePlanPane, WelcomePane } from "./Admitted" import { CreateAccountPane, GetMeasurementsPane, SendCodePane, TriagePane, VerifyCodePane } from "./Undetermined" diff --git a/src/Scenes/CreateAccount/Undetermined/CreateAccountPane/CreateAccountPane.tsx b/src/Scenes/CreateAccount/Undetermined/CreateAccountPane/CreateAccountPane.tsx index 3b82d42f9..fe558bef8 100644 --- a/src/Scenes/CreateAccount/Undetermined/CreateAccountPane/CreateAccountPane.tsx +++ b/src/Scenes/CreateAccount/Undetermined/CreateAccountPane/CreateAccountPane.tsx @@ -9,7 +9,7 @@ import { FadeBottom2 } from "Assets/svgs/FadeBottom2" import { Text } from "Components/Typography" import gql from "graphql-tag" import React, { MutableRefObject, useEffect, useRef, useState } from "react" -import { useLazyQuery, useMutation, useQuery } from "react-apollo" +import { useLazyQuery, useMutation, useQuery } from "@apollo/client" import { Keyboard, KeyboardAvoidingView, ScrollView, TouchableWithoutFeedback } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" diff --git a/src/Scenes/CreateAccount/Undetermined/GetMeasurementsPane/GetMeasurementsPane.tsx b/src/Scenes/CreateAccount/Undetermined/GetMeasurementsPane/GetMeasurementsPane.tsx index db9d5fd31..53c84892f 100644 --- a/src/Scenes/CreateAccount/Undetermined/GetMeasurementsPane/GetMeasurementsPane.tsx +++ b/src/Scenes/CreateAccount/Undetermined/GetMeasurementsPane/GetMeasurementsPane.tsx @@ -8,7 +8,7 @@ import { ScrollView } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" import gql from "graphql-tag" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import { useTracking, Schema } from "App/utils/track" import { MultiSelectionTable } from "App/Components/MultiSelectionTable" diff --git a/src/Scenes/CreateAccount/Undetermined/SendCodePane/SendCodePane.tsx b/src/Scenes/CreateAccount/Undetermined/SendCodePane/SendCodePane.tsx index ee86316c6..c6a9bbbce 100644 --- a/src/Scenes/CreateAccount/Undetermined/SendCodePane/SendCodePane.tsx +++ b/src/Scenes/CreateAccount/Undetermined/SendCodePane/SendCodePane.tsx @@ -4,7 +4,7 @@ import { KeyboardAvoidingView, Keyboard } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" import gql from "graphql-tag" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import { TextInputRef } from "App/Components/TextInput" import { useTracking, Schema } from "App/utils/track" diff --git a/src/Scenes/CreateAccount/Undetermined/TriagePane/TriagePane.tsx b/src/Scenes/CreateAccount/Undetermined/TriagePane/TriagePane.tsx index 349e6ad4e..3459a7799 100644 --- a/src/Scenes/CreateAccount/Undetermined/TriagePane/TriagePane.tsx +++ b/src/Scenes/CreateAccount/Undetermined/TriagePane/TriagePane.tsx @@ -2,7 +2,7 @@ import { Container } from "App/Components" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import gql from "graphql-tag" import React, { useEffect, useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import * as Sentry from "@sentry/react-native" import { TriageProgressScreen } from "./TriageProgressScreen" import { GET_PLANS } from "../../CreateAccount" diff --git a/src/Scenes/CreateAccount/Undetermined/VerifyCodePane/VerifyCodePane.tsx b/src/Scenes/CreateAccount/Undetermined/VerifyCodePane/VerifyCodePane.tsx index a90e858e8..1c50a2082 100644 --- a/src/Scenes/CreateAccount/Undetermined/VerifyCodePane/VerifyCodePane.tsx +++ b/src/Scenes/CreateAccount/Undetermined/VerifyCodePane/VerifyCodePane.tsx @@ -7,7 +7,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context" import { animated, useSpring } from "react-spring" import gql from "graphql-tag" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import { START_VERIFICATION } from "../SendCodePane/" import { TextInputRef } from "App/Components/TextInput" diff --git a/src/Scenes/Faq/Faq.tsx b/src/Scenes/Faq/Faq.tsx index 94c1f30de..4deb53aab 100644 --- a/src/Scenes/Faq/Faq.tsx +++ b/src/Scenes/Faq/Faq.tsx @@ -1,7 +1,7 @@ import React from "react" import { ContactUsButton, Container, Spacer, FixedBackArrow, Flex } from "App/Components" import gql from "graphql-tag" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { Loader } from "App/Components/Loader" import { FlatList } from "react-native" import { FaqSection } from "./Components/FaqSection" diff --git a/src/Scenes/Home/Components/AddPhotoButton.tsx b/src/Scenes/Home/Components/AddPhotoButton.tsx index ae7defbc7..2d959285d 100644 --- a/src/Scenes/Home/Components/AddPhotoButton.tsx +++ b/src/Scenes/Home/Components/AddPhotoButton.tsx @@ -5,7 +5,7 @@ import styled from "styled-components/native" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" import * as Sentry from "@sentry/react-native" import ImagePicker from "react-native-image-picker" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import gql from "graphql-tag" import { useAuthContext } from "App/Navigation/AuthContext" import { ReactNativeFile } from "apollo-upload-client" diff --git a/src/Scenes/Home/Components/FitPicDetail.tsx b/src/Scenes/Home/Components/FitPicDetail.tsx index 48441f038..23ddf2d36 100644 --- a/src/Scenes/Home/Components/FitPicDetail.tsx +++ b/src/Scenes/Home/Components/FitPicDetail.tsx @@ -6,7 +6,7 @@ import { CloseXSVG, More } from "Assets/svgs" import { useActionSheet } from "@expo/react-native-action-sheet" import { Homepage_fitPics as FitPic } from "src/generated/Homepage" import { usePopUpContext } from "App/Navigation/ErrorPopUp/PopUpContext" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import gql from "graphql-tag" import { useAuthContext } from "App/Navigation/AuthContext" import { SharedElement } from "react-navigation-shared-element" diff --git a/src/Scenes/Home/Home.tsx b/src/Scenes/Home/Home.tsx index f003fc282..5f5c44a7b 100644 --- a/src/Scenes/Home/Home.tsx +++ b/src/Scenes/Home/Home.tsx @@ -8,7 +8,7 @@ import { color } from "App/utils" import { screenTrack } from "App/utils/track" import { Container } from "Components/Container" import React, { useContext, useEffect, useState } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { StatusBar } from "react-native" import SplashScreen from "react-native-splash-screen" import styled from "styled-components/native" diff --git a/src/Scenes/Product/Components/AddToBagButton.tsx b/src/Scenes/Product/Components/AddToBagButton.tsx index 35e19b1c8..4d7b28be7 100644 --- a/src/Scenes/Product/Components/AddToBagButton.tsx +++ b/src/Scenes/Product/Components/AddToBagButton.tsx @@ -8,7 +8,7 @@ import { CheckCircled } from "Assets/svgs" import { head } from "lodash" import React, { useState } from "react" -import { useMutation, useQuery } from "@apollo/react-hooks" +import { useMutation, useQuery } from "@apollo/client" import { useNavigation } from "@react-navigation/native" import { GET_PRODUCT } from "../Queries" diff --git a/src/Scenes/Product/Components/SaveProductButton.tsx b/src/Scenes/Product/Components/SaveProductButton.tsx index 171170718..69694f81d 100644 --- a/src/Scenes/Product/Components/SaveProductButton.tsx +++ b/src/Scenes/Product/Components/SaveProductButton.tsx @@ -6,7 +6,7 @@ import { GET_BAG } from "App/Scenes/Bag/BagQueries" import { SaveIcon } from "Assets/icons" import gql from "graphql-tag" import React, { useEffect, useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { TouchableOpacity } from "react-native" import { useNavigation } from "@react-navigation/native" import { useAuthContext } from "App/Navigation/AuthContext" diff --git a/src/Scenes/Product/Components/SizeWarning.tsx b/src/Scenes/Product/Components/SizeWarning.tsx index 69ea01e00..a73aeb6d7 100644 --- a/src/Scenes/Product/Components/SizeWarning.tsx +++ b/src/Scenes/Product/Components/SizeWarning.tsx @@ -5,7 +5,7 @@ import { Text } from "react-native" import styled from "styled-components/native" import { color } from "App/utils/color" import { TouchableWithoutFeedback } from "react-native-gesture-handler" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { ADD_OR_REMOVE_FROM_LOCAL_BAG, ADD_TO_BAG, GET_BAG } from "App/Scenes/Bag/BagQueries" import { useAuthContext } from "App/Navigation/AuthContext" import { GET_PRODUCT } from "../Queries" diff --git a/src/Scenes/Product/Product.tsx b/src/Scenes/Product/Product.tsx index cf34ddf40..196eda100 100644 --- a/src/Scenes/Product/Product.tsx +++ b/src/Scenes/Product/Product.tsx @@ -12,7 +12,7 @@ import { Dimensions, FlatList, StatusBar } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" import { animated, useSpring } from "react-spring" import styled from "styled-components/native" -import { useMutation, useQuery } from "@apollo/react-hooks" +import { useMutation, useQuery } from "@apollo/client" import analytics from "@segment/analytics-react-native" import * as Sentry from "@sentry/react-native" import { GET_HOMEPAGE } from "../Home/queries/homeQueries" diff --git a/src/Scenes/Product/SaveProduct.tsx b/src/Scenes/Product/SaveProduct.tsx index 513a4099d..a1d80c8d2 100644 --- a/src/Scenes/Product/SaveProduct.tsx +++ b/src/Scenes/Product/SaveProduct.tsx @@ -1,4 +1,4 @@ -import { useMutation } from "@apollo/react-hooks" +import { useMutation } from "@apollo/client" import React, { useState } from "react" import { Dimensions, FlatList, TouchableWithoutFeedback } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" diff --git a/src/Scenes/ProductRequest/ProductRequest.tsx b/src/Scenes/ProductRequest/ProductRequest.tsx index 79104d66d..b5238b677 100644 --- a/src/Scenes/ProductRequest/ProductRequest.tsx +++ b/src/Scenes/ProductRequest/ProductRequest.tsx @@ -1,6 +1,6 @@ import gql from "graphql-tag" import React, { useState, useEffect } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { Keyboard, KeyboardAvoidingView, TouchableWithoutFeedback } from "react-native" import { Box, FixedButton, Flex, Sans, Spacer, TextInput, FixedBackArrow, Container } from "App/Components" import { color, space } from "App/utils" diff --git a/src/Scenes/Reservation/Reservation.tsx b/src/Scenes/Reservation/Reservation.tsx index d6875b436..ce76a815f 100644 --- a/src/Scenes/Reservation/Reservation.tsx +++ b/src/Scenes/Reservation/Reservation.tsx @@ -6,7 +6,7 @@ import { color, space } from "App/utils" import { Schema, screenTrack, useTracking } from "App/utils/track" import gql from "graphql-tag" import React, { useState } from "react" -import { useMutation, useQuery } from "react-apollo" +import { useMutation, useQuery } from "@apollo/client" import * as Sentry from "@sentry/react-native" import { ScrollView, TouchableWithoutFeedback } from "react-native" import { BagItemFragment } from "../Bag/Components/BagItem" diff --git a/src/Scenes/Reservation/ReservationConfirmation.tsx b/src/Scenes/Reservation/ReservationConfirmation.tsx index 37c479f41..40c720558 100644 --- a/src/Scenes/Reservation/ReservationConfirmation.tsx +++ b/src/Scenes/Reservation/ReservationConfirmation.tsx @@ -5,7 +5,7 @@ import { Schema, screenTrack, useTracking } from "App/utils/track" import { CheckCircled, Instagram } from "Assets/svgs" import gql from "graphql-tag" import React from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { ScrollView, TouchableWithoutFeedback } from "react-native" import Rate, { AndroidMarket } from "react-native-rate" import { ReservationItem } from "./Components/ReservationItem" diff --git a/src/Scenes/Reservation/ShareReservationToIG.tsx b/src/Scenes/Reservation/ShareReservationToIG.tsx index bc67806d1..e9dd7cbc9 100644 --- a/src/Scenes/Reservation/ShareReservationToIG.tsx +++ b/src/Scenes/Reservation/ShareReservationToIG.tsx @@ -1,11 +1,11 @@ import CameraRoll from "@react-native-community/cameraroll" -import { gql } from "apollo-boost" +import gql from "graphql-tag" import { Box, Button, CloseButton, Display, FadeInImage, FixedBackArrow, Flex, Spacer } from "App/Components" import { color, space } from "App/utils" import { Schema, screenTrack, useTracking } from "App/utils/track" import { SeasonsCircleSVG } from "Assets/svgs" import React, { MutableRefObject, useEffect, useRef, useState } from "react" -import { useQuery } from "react-apollo" +import { useQuery } from "@apollo/client" import { Dimensions, FlatList } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" import Share from "react-native-share" diff --git a/src/Scenes/ReservationFeedback/Components/ReservationFeedbackPopUp.tsx b/src/Scenes/ReservationFeedback/Components/ReservationFeedbackPopUp.tsx index 2758381cb..6e1bb3407 100644 --- a/src/Scenes/ReservationFeedback/Components/ReservationFeedbackPopUp.tsx +++ b/src/Scenes/ReservationFeedback/Components/ReservationFeedbackPopUp.tsx @@ -1,4 +1,4 @@ -import { useMutation } from "@apollo/react-hooks" +import { useMutation } from "@apollo/client" import gql from "graphql-tag" import React, { useEffect, useState } from "react" import { Dimensions } from "react-native" diff --git a/src/Scenes/ReservationFeedback/ReservationFeedback.tsx b/src/Scenes/ReservationFeedback/ReservationFeedback.tsx index 23f015087..f66d00d91 100644 --- a/src/Scenes/ReservationFeedback/ReservationFeedback.tsx +++ b/src/Scenes/ReservationFeedback/ReservationFeedback.tsx @@ -1,4 +1,4 @@ -import { useMutation } from "@apollo/react-hooks" +import { useMutation } from "@apollo/client" import React, { useState } from "react" import { Dimensions, FlatList, Text, TouchableWithoutFeedback } from "react-native" diff --git a/src/Scenes/ReservationFeedback/ReservationFeedbackConfirmation.tsx b/src/Scenes/ReservationFeedback/ReservationFeedbackConfirmation.tsx index c06a6f661..f26271afa 100644 --- a/src/Scenes/ReservationFeedback/ReservationFeedbackConfirmation.tsx +++ b/src/Scenes/ReservationFeedback/ReservationFeedbackConfirmation.tsx @@ -1,4 +1,4 @@ -import { useMutation } from "@apollo/react-hooks" +import { useMutation } from "@apollo/client" import React, { useState } from "react" import { Dimensions, Keyboard, KeyboardAvoidingView, TouchableWithoutFeedback } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" diff --git a/src/Scenes/SignIn/LogIn.tsx b/src/Scenes/SignIn/LogIn.tsx index 653126f6f..139f831b5 100644 --- a/src/Scenes/SignIn/LogIn.tsx +++ b/src/Scenes/SignIn/LogIn.tsx @@ -7,7 +7,7 @@ import { color } from "App/utils" import { Text } from "Components/Typography" import gql from "graphql-tag" import React, { useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { Keyboard, TouchableWithoutFeedback } from "react-native" import { checkNotifications } from "react-native-permissions" diff --git a/src/Scenes/SignIn/ResetPassword.tsx b/src/Scenes/SignIn/ResetPassword.tsx index 0437b39e9..b55ab285a 100644 --- a/src/Scenes/SignIn/ResetPassword.tsx +++ b/src/Scenes/SignIn/ResetPassword.tsx @@ -1,6 +1,6 @@ import gql from "graphql-tag" import React, { useState } from "react" -import { useMutation } from "react-apollo" +import { useMutation } from "@apollo/client" import { Keyboard, TouchableWithoutFeedback } from "react-native" import { Box, Button, Flex, CloseButton, Sans, Spacer, TextInput, Container } from "../../Components" import { isValidEmail } from "../../helpers/regex" diff --git a/src/Scenes/Tag/Tag.tsx b/src/Scenes/Tag/Tag.tsx index 700ef14cb..a14ebccff 100644 --- a/src/Scenes/Tag/Tag.tsx +++ b/src/Scenes/Tag/Tag.tsx @@ -1,4 +1,4 @@ -import { useQuery } from "@apollo/react-hooks" +import { useQuery } from "@apollo/client" import { Box, Container, FixedBackArrow, ProductGridItem, Sans, Spacer } from "App/Components" import { ReadMore } from "App/Components/ReadMore" import { space } from "App/utils" diff --git a/src/storybook/stories/index.tsx b/src/storybook/stories/index.tsx index 179299ca4..21c9a5e13 100644 --- a/src/storybook/stories/index.tsx +++ b/src/storybook/stories/index.tsx @@ -3,8 +3,8 @@ import { config, Env } from "App/utils/config" import React from "react" import { SafeAreaProvider } from "react-native-safe-area-context" -import { ApolloClient, InMemoryCache } from "@apollo/react-hooks" -import { ApolloProvider } from "@apollo/react-hooks" +import { ApolloClient, InMemoryCache } from "@apollo/client" +import { ApolloProvider } from "@apollo/client" import { linkTo } from "@storybook/addon-links" import { storiesOf } from "@storybook/react-native" diff --git a/yarn.lock b/yarn.lock index 999313bec..b27658941 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,55 +20,33 @@ tslib "^1.10.0" zen-observable "^0.8.14" -"@apollo/react-common@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@apollo/react-common/-/react-common-3.1.4.tgz#ec13c985be23ea8e799c9ea18e696eccc97be345" - integrity sha512-X5Kyro73bthWSCBJUC5XYQqMnG0dLWuDZmVkzog9dynovhfiVCV4kPSdgSIkqnb++cwCzOVuQ4rDKVwo2XRzQA== - dependencies: - ts-invariant "^0.4.4" - tslib "^1.10.0" - -"@apollo/react-components@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@apollo/react-components/-/react-components-3.1.5.tgz#040d2f35ce4947747efe16f76d59dcbd797ffdaf" - integrity sha512-c82VyUuE9VBnJB7bnX+3dmwpIPMhyjMwyoSLyQWPHxz8jK4ak30XszJtqFf4eC4hwvvLYa+Ou6X73Q8V8e2/jg== +"@apollo/client@^3.3.6": + version "3.3.7" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.7.tgz#f15bf961dc0c2bee37a47bf86b8881fdc6183810" + integrity sha512-Cb0OqqvlehlRHtHIXRIS/Pe5WYU4hHl1FznXTRSxBAN42WmBUM3zy/Unvw183RdWMyV6Kc2pFKOEuaG1K7JTAQ== dependencies: - "@apollo/react-common" "^3.1.4" - "@apollo/react-hooks" "^3.1.5" + "@graphql-typed-document-node/core" "^3.0.0" + "@types/zen-observable" "^0.8.0" + "@wry/context" "^0.5.2" + "@wry/equality" "^0.3.0" + fast-json-stable-stringify "^2.0.0" + graphql-tag "^2.11.0" + hoist-non-react-statics "^3.3.2" + optimism "^0.14.0" prop-types "^15.7.2" - ts-invariant "^0.4.4" - tslib "^1.10.0" - -"@apollo/react-hoc@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@apollo/react-hoc/-/react-hoc-3.1.5.tgz#6552d2fb4aafc59fdc8f4e353358b98b89cfab6f" - integrity sha512-jlZ2pvEnRevLa54H563BU0/xrYSgWQ72GksarxUzCHQW85nmn9wQln0kLBX7Ua7SBt9WgiuYQXQVechaaCulfQ== - dependencies: - "@apollo/react-common" "^3.1.4" - "@apollo/react-components" "^3.1.5" - hoist-non-react-statics "^3.3.0" - ts-invariant "^0.4.4" + symbol-observable "^2.0.0" + ts-invariant "^0.6.0" tslib "^1.10.0" + zen-observable "^0.8.14" -"@apollo/react-hooks@^3.1.1", "@apollo/react-hooks@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@apollo/react-hooks/-/react-hooks-3.1.5.tgz#7e710be52461255ae7fc0b3b9c2ece64299c10e6" - integrity sha512-y0CJ393DLxIIkksRup4nt+vSjxalbZBXnnXxYbviq/woj+zKa431zy0yT4LqyRKpFy9ahMIwxBnBwfwIoupqLQ== +"@apollo/react-common@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@apollo/react-common/-/react-common-3.1.4.tgz#ec13c985be23ea8e799c9ea18e696eccc97be345" + integrity sha512-X5Kyro73bthWSCBJUC5XYQqMnG0dLWuDZmVkzog9dynovhfiVCV4kPSdgSIkqnb++cwCzOVuQ4rDKVwo2XRzQA== dependencies: - "@apollo/react-common" "^3.1.4" - "@wry/equality" "^0.1.9" ts-invariant "^0.4.4" tslib "^1.10.0" -"@apollo/react-ssr@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@apollo/react-ssr/-/react-ssr-3.1.5.tgz#53703cd493afcde567acc6d5512cab03dafce6de" - integrity sha512-wuLPkKlctNn3u8EU8rlECyktpOUCeekFfb0KhIKknpGY6Lza2Qu0bThx7D9MIbVEzhKadNNrzLcpk0Y8/5UuWg== - dependencies: - "@apollo/react-common" "^3.1.4" - "@apollo/react-hooks" "^3.1.5" - tslib "^1.10.0" - "@apollo/react-testing@^3.1.3": version "3.1.4" resolved "https://registry.yarnpkg.com/@apollo/react-testing/-/react-testing-3.1.4.tgz#f2e1b9b65a0bd773facf54db4fdb5995d162a72a" @@ -2076,6 +2054,11 @@ pouchdb-collections "^1.0.1" tiny-queue "^0.2.1" +"@graphql-typed-document-node/core@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950" + integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg== + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -4149,7 +4132,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>=6", "@types/node@^13.9.3": +"@types/node@*", "@types/node@^13.9.3": version "13.13.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54" integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A== @@ -4326,6 +4309,11 @@ dependencies: source-map "^0.6.1" +"@types/ungap__global-this@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@types/ungap__global-this/-/ungap__global-this-0.3.1.tgz#18ce9f657da556037a29d50604335614ce703f4c" + integrity sha512-+/DsiV4CxXl6ZWefwHZDXSe1Slitz21tom38qPCaG0DYCS1NnDPIQDTKcmQ/tvK/edJUKkmuIDBJbmKDiB0r/g== + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" @@ -4381,6 +4369,11 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== +"@ungap/global-this@^0.4.2": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@ungap/global-this/-/global-this-0.4.3.tgz#44cb668b03e7c4bc88cb6e6f9329d381131878ee" + integrity sha512-MuHEpDBurNVeD6mV9xBcAN2wfTwuaFQhHuhWkJuXmyVJ5P5sBCw+nnFpdfb0tAvgWkfefWCsAoAsh7MTUr3LPg== + "@unimodules/core@~5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-5.5.0.tgz#580aaa4887641c1af85e0ab9f8987a5d4424595c" @@ -4553,14 +4546,6 @@ text-table "^0.2.0" webpack-log "^1.1.2" -"@wry/context@^0.4.0": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8" - integrity sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag== - dependencies: - "@types/node" ">=6" - tslib "^1.9.3" - "@wry/context@^0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.5.2.tgz#f2a5d5ab9227343aa74c81e06533c1ef84598ec7" @@ -4568,7 +4553,7 @@ dependencies: tslib "^1.9.3" -"@wry/equality@^0.1.2", "@wry/equality@^0.1.9": +"@wry/equality@^0.1.2": version "0.1.11" resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== @@ -4582,6 +4567,20 @@ dependencies: tslib "^1.9.3" +"@wry/equality@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.3.1.tgz#81080cdc2e0d8265cd303faa0c64b38a77884e06" + integrity sha512-8/Ftr3jUZ4EXhACfSwPIfNsE8V6WKesdjp+Dxi78Bej6qlasAxiz0/F8j0miACRj9CL4vC5Y5FsfwwEYAuhWbg== + dependencies: + tslib "^1.14.1" + +"@wry/trie@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.2.1.tgz#4191e1d4a85dd77dfede383d65563138ed82fc47" + integrity sha512-sYkuXZqArky2MLQCv4tLW6hX3N8AfTZ5ZMBc8jC6Yy35WYr82UYLLtjS7k/uRGHOA0yTSjuNadG6QQ6a5CS5hQ== + dependencies: + tslib "^1.14.1" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -4895,46 +4894,12 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -apollo-boost@^0.4.4: - version "0.4.7" - resolved "https://registry.yarnpkg.com/apollo-boost/-/apollo-boost-0.4.7.tgz#b0680ab0893e3f8b1ab1058dcfa2b00cb6440d79" - integrity sha512-jfc3aqO0vpCV+W662EOG5gq4AH94yIsvSgAUuDvS3o/Z+8Joqn4zGC9CgLCDHusK30mFgtsEgwEe0pZoedohsQ== - dependencies: - apollo-cache "^1.3.4" - apollo-cache-inmemory "^1.6.5" - apollo-client "^2.6.7" - apollo-link "^1.0.6" - apollo-link-error "^1.0.3" - apollo-link-http "^1.3.1" - graphql-tag "^2.4.2" - ts-invariant "^0.4.0" - tslib "^1.10.0" - -apollo-cache-inmemory@^1.6.5: - version "1.6.5" - resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.5.tgz#2ccaa3827686f6ed7fb634203dbf2b8d7015856a" - integrity sha512-koB76JUDJaycfejHmrXBbWIN9pRKM0Z9CJGQcBzIOtmte1JhEBSuzsOUu7NQgiXKYI4iGoMREcnaWffsosZynA== - dependencies: - apollo-cache "^1.3.4" - apollo-utilities "^1.3.3" - optimism "^0.10.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" - apollo-cache-persist@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/apollo-cache-persist/-/apollo-cache-persist-0.1.1.tgz#e6cfe1983b998982a679aaf05241d3ed395edb1e" integrity sha512-/7GAyblPR169ryW3ugbtHqiU0UGkhIt10NeaO2gn2ClxjLHF/nIkJD5mx/0OCF2vLNbbnzLZVDeIO1pf72TrEA== -apollo-cache@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.2.tgz#df4dce56240d6c95c613510d7e409f7214e6d26a" - integrity sha512-+KA685AV5ETEJfjZuviRTEImGA11uNBp/MJGnaCvkgr+BYRrGLruVKBv6WvyFod27WEB2sp7SsG8cNBKANhGLg== - dependencies: - apollo-utilities "^1.3.2" - tslib "^1.9.3" - -apollo-cache@1.3.4, apollo-cache@^1.3.2, apollo-cache@^1.3.4: +apollo-cache@^1.3.2: version "1.3.4" resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.4.tgz#0c9f63c793e1cd6e34c450f7668e77aff58c9a42" integrity sha512-7X5aGbqaOWYG+SSkCzJNHTz2ZKDcyRwtmvW4mGVLRqdQs+HxfXS4dUS2CcwrAj449se6tZ6NLUMnjko4KMt3KA== @@ -4942,34 +4907,6 @@ apollo-cache@1.3.4, apollo-cache@^1.3.2, apollo-cache@^1.3.4: apollo-utilities "^1.3.3" tslib "^1.10.0" -apollo-client@2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.4.tgz#872c32927263a0d34655c5ef8a8949fbb20b6140" - integrity sha512-oWOwEOxQ9neHHVZrQhHDbI6bIibp9SHgxaLRVPoGvOFy7OH5XUykZE7hBQAVxq99tQjBzgytaZffQkeWo1B4VQ== - dependencies: - "@types/zen-observable" "^0.8.0" - apollo-cache "1.3.2" - apollo-link "^1.0.0" - apollo-utilities "1.3.2" - symbol-observable "^1.0.2" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable "^0.8.0" - -apollo-client@^2.6.7: - version "2.6.8" - resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.8.tgz#01cebc18692abf90c6b3806414e081696b0fa537" - integrity sha512-0zvJtAcONiozpa5z5zgou83iEKkBaXhhSSXJebFHRXs100SecDojyUWKjwTtBPn9HbM6o5xrvC5mo9VQ5fgAjw== - dependencies: - "@types/zen-observable" "^0.8.0" - apollo-cache "1.3.4" - apollo-link "^1.0.0" - apollo-utilities "1.3.3" - symbol-observable "^1.0.2" - ts-invariant "^0.4.0" - tslib "^1.10.0" - zen-observable "^0.8.0" - apollo-link-context@^1.0.19: version "1.0.20" resolved "https://registry.yarnpkg.com/apollo-link-context/-/apollo-link-context-1.0.20.tgz#1939ac5dc65d6dff0c855ee53521150053c24676" @@ -4978,7 +4915,7 @@ apollo-link-context@^1.0.19: apollo-link "^1.2.14" tslib "^1.9.3" -apollo-link-error@^1.0.3, apollo-link-error@^1.1.12: +apollo-link-error@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/apollo-link-error/-/apollo-link-error-1.1.13.tgz#c1a1bb876ffe380802c8df0506a32c33aad284cd" integrity sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg== @@ -4996,16 +4933,7 @@ apollo-link-http-common@^0.2.16, apollo-link-http-common@^0.2.4: ts-invariant "^0.4.0" tslib "^1.9.3" -apollo-link-http@^1.3.1: - version "1.5.17" - resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" - integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== - dependencies: - apollo-link "^1.2.14" - apollo-link-http-common "^0.2.16" - tslib "^1.9.3" - -apollo-link@^1.0.0, apollo-link@^1.0.6, apollo-link@^1.2.12, apollo-link@^1.2.14: +apollo-link@^1.2.12, apollo-link@^1.2.14: version "1.2.14" resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== @@ -5024,17 +4952,7 @@ apollo-upload-client@^14.1.1: "@babel/runtime" "^7.10.5" extract-files "^9.0.0" -apollo-utilities@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.2.tgz#8cbdcf8b012f664cd6cb5767f6130f5aed9115c9" - integrity sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg== - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - -apollo-utilities@1.3.3, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2, apollo-utilities@^1.3.3: +apollo-utilities@^1.3.0, apollo-utilities@^1.3.2, apollo-utilities@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.3.tgz#f1854715a7be80cd810bc3ac95df085815c0787c" integrity sha512-F14aX2R/fKNYMvhuP2t9GD9fggID7zp5I96MF5QeKYWDWTrkRdHRp4+SVfXUVN+cXOaB/IebfvRtzPf25CM0zw== @@ -9170,11 +9088,6 @@ graphql-tag@^2.11.0: resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== -graphql-tag@^2.4.2: - version "2.10.3" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.3.tgz#ea1baba5eb8fc6339e4c4cf049dabe522b0edf03" - integrity sha512-4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA== - graphql@^14.5.3: version "14.7.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" @@ -12763,13 +12676,6 @@ opn@^5.4.0: dependencies: is-wsl "^1.1.0" -optimism@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz#163268fdc741dea2fb50f300bedda80356445fd7" - integrity sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw== - dependencies: - "@wry/context" "^0.4.0" - optimism@^0.12.1: version "0.12.1" resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.12.1.tgz#933f9467b9aef0e601655adb9638f893e486ad02" @@ -12777,6 +12683,14 @@ optimism@^0.12.1: dependencies: "@wry/context" "^0.5.2" +optimism@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.14.0.tgz#256fb079a3428585b40a3a8462f907e0abd2fc49" + integrity sha512-ygbNt8n4DOCVpkwiLF+IrKKeNHOjtr9aXLWGP9HNJGoblSGsnVbJLstcH6/nE9Xy5ZQtlkSioFQNnthmENW6FQ== + dependencies: + "@wry/context" "^0.5.2" + "@wry/trie" "^0.2.1" + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -13734,17 +13648,6 @@ raw-loader@^4.0.1: loader-utils "^2.0.0" schema-utils "^2.6.5" -react-apollo@^3.1.1: - version "3.1.5" - resolved "https://registry.yarnpkg.com/react-apollo/-/react-apollo-3.1.5.tgz#36692d393c47e7ccc37f0a885c7cc5a8b4961c91" - integrity sha512-xOxMqxORps+WHrUYbjVHPliviomefOpu5Sh35oO3osuOyPTxvrljdfTLGCggMhcXBsDljtS5Oy4g+ijWg3D4JQ== - dependencies: - "@apollo/react-common" "^3.1.4" - "@apollo/react-components" "^3.1.5" - "@apollo/react-hoc" "^3.1.5" - "@apollo/react-hooks" "^3.1.5" - "@apollo/react-ssr" "^3.1.5" - react-clientside-effect@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" @@ -15963,6 +15866,11 @@ symbol-observable@1.2.0, symbol-observable@^1.0.2, symbol-observable@^1.2.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +symbol-observable@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" + integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== + symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -16299,6 +16207,15 @@ ts-invariant@^0.4.0, ts-invariant@^0.4.4: dependencies: tslib "^1.9.3" +ts-invariant@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.6.0.tgz#44066ecfeb7a806ff1c3b0b283408a337a885412" + integrity sha512-caoafsfgb8QxdrKzFfjKt627m4i8KTtfAiji0DYJfWI4A/S9ORNNpzYuD9br64kyKFgxn9UNaLLbSupam84mCA== + dependencies: + "@types/ungap__global-this" "^0.3.1" + "@ungap/global-this" "^0.4.2" + tslib "^1.9.3" + ts-pnp@^1.1.2, ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -16309,6 +16226,11 @@ tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== +tslib@^1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + tslib@^2.0.0, tslib@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" From 17926e15305ee7dffedd459ae559c817016180b7 Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Tue, 19 Jan 2021 16:42:59 -0500 Subject: [PATCH 06/14] Updates more apollo configs --- index.js | 8 +--- package.json | 1 + src/Apollo/index.ts | 48 +++++++---------------- src/Apollo/resolvers.ts | 1 - src/App.tsx | 1 + src/Navigation/AuthProvider.tsx | 6 --- src/Scenes/Brand/BrandPhotos.tsx | 2 +- src/Scenes/Collection/CollectionScene.tsx | 4 +- src/Scenes/Home/Home.tsx | 20 ++-------- yarn.lock | 5 +++ 10 files changed, 30 insertions(+), 66 deletions(-) diff --git a/index.js b/index.js index 61faf0c89..c25c69ecb 100644 --- a/index.js +++ b/index.js @@ -2,11 +2,7 @@ import App from "./src" import { AppRegistry } from "react-native" import * as Sentry from "@sentry/react-native" import "react-native-gesture-handler" -// import { enableScreens } from "react-native-screens" - -// This enables the native stack navigator using (react-native-screens) -// https://reactnavigation.org/blog/2020/02/06/react-navigation-5.0/#native-stack-navigator -// Leaving it commented out for now because there's glitch when navigating to the Product view -// enableScreens() +// "core-js/features/promise" is a polyfill Apollo refetch in RN, see: https://github.com/apollographql/apollo-client/issues/6381 +import "core-js/features/promise" AppRegistry.registerComponent("seasons", () => App) diff --git a/package.json b/package.json index 630525a05..9d6868cbf 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "apollo-upload-client": "^14.1.1", "apollo-utilities": "^1.3.2", "aws-sdk": "^2.639.0", + "core-js": "^3.8.3", "expo": "^39.0.0", "graphql": "^14.5.8", "lodash": "^4.17.15", diff --git a/src/Apollo/index.ts b/src/Apollo/index.ts index 0f2273246..b3b9aa4ce 100644 --- a/src/Apollo/index.ts +++ b/src/Apollo/index.ts @@ -1,32 +1,27 @@ -// import { IntrospectionFragmentMatcher } from "apollo-cache-inmemory" -// import { persistCache } from "apollo-cache-persist" import { ApolloLink, Observable, ApolloClient, InMemoryCache, HttpLink } from "@apollo/client" import { setContext } from "apollo-link-context" import { onError } from "apollo-link-error" -import { createUploadLink } from "apollo-upload-client" import { getAccessTokenFromSession, getNewToken } from "App/utils/auth" -import { config, Env } from "App/utils/config" import { Platform } from "react-native" -// import unfetch from "unfetch" - -import AsyncStorage from "@react-native-community/async-storage" +import { offsetLimitPagination } from "@apollo/client/utilities" import * as Sentry from "@sentry/react-native" - -import introspectionQueryResultData from "../fragmentTypes.json" import { resolvers, typeDefs } from "./resolvers" export const setupApolloClient = async () => { - // const fragmentMatcher = new IntrospectionFragmentMatcher({ - // introspectionQueryResultData, - // }) - - const cache = new InMemoryCache() - - // const link = createUploadLink({ - // uri: config.get(Env.MONSOON_ENDPOINT) || "http://localhost:4000/", - // // FIXME: unfetch here is being used for this fix https://github.com/jhen0409/react-native-debugger/issues/432 - // fetch: unfetch, - // }) + const cache = new InMemoryCache({ + typePolicies: { + Query: { + fields: { + fitPicsCount: { + read(newCount) { + return newCount + }, + }, + fitPics: offsetLimitPagination(), + }, + }, + }, + }) const httpLink = new HttpLink({ uri: process.env.MONSOON_ENDPOINT || "http://localhost:4000/", // Server URL (must be absolute) @@ -116,19 +111,6 @@ export const setupApolloClient = async () => { } }) - // const accessToken = await getAccessTokenFromSession() - // cache.writeData({ - // data: { - // isLoggedIn: !!accessToken, - // localBagItems: [], - // }, - // }) - - // await persistCache({ - // cache, - // storage: AsyncStorage, - // }) - return new ApolloClient({ // Provide required constructor fields link: ApolloLink.from([authLink, errorLink, httpLink]) as any, diff --git a/src/Apollo/resolvers.ts b/src/Apollo/resolvers.ts index e921032bc..ef1cbcfd6 100644 --- a/src/Apollo/resolvers.ts +++ b/src/Apollo/resolvers.ts @@ -8,7 +8,6 @@ export const typeDefs = gql` variantID: ID! } extend type Query { - isLoggedIn: Boolean! localBagItems: [LocalProduct!]! isInBag(productID: ID!): Boolean! } diff --git a/src/App.tsx b/src/App.tsx index 812c66c7a..0c2982231 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -20,6 +20,7 @@ export const App = () => { async function loadClient() { await config.start() const client = await setupApolloClient() + setApolloClient(client) if (!__DEV__) { diff --git a/src/Navigation/AuthProvider.tsx b/src/Navigation/AuthProvider.tsx index a79947c1e..9bb7486c8 100644 --- a/src/Navigation/AuthProvider.tsx +++ b/src/Navigation/AuthProvider.tsx @@ -104,12 +104,6 @@ export const AuthProvider = React.forwardRef RNPusherPushNotifications.clearAllState() apolloClient.resetStore() analytics.reset() - apolloClient.writeData({ - data: { - isLoggedIn: false, - localBagItems: [], - }, - }) dispatch({ type: "SIGN_OUT" }) }, resetStore: () => { diff --git a/src/Scenes/Brand/BrandPhotos.tsx b/src/Scenes/Brand/BrandPhotos.tsx index d93ea5d52..ecda7213c 100644 --- a/src/Scenes/Brand/BrandPhotos.tsx +++ b/src/Scenes/Brand/BrandPhotos.tsx @@ -35,7 +35,7 @@ export const BrandPhotos = ({ images, currentImage, setCurrentImage }) => { } } - if (images.length === 0) { + if (images?.length === 0) { return } diff --git a/src/Scenes/Collection/CollectionScene.tsx b/src/Scenes/Collection/CollectionScene.tsx index c8c9074e0..8e1aecccd 100644 --- a/src/Scenes/Collection/CollectionScene.tsx +++ b/src/Scenes/Collection/CollectionScene.tsx @@ -12,7 +12,5 @@ export const CollectionScene = screenTrack({ const { showPopUp, hidePopUp } = usePopUpContext() const collectionID = route?.params?.collectionID - return <> + return }) - -// return diff --git a/src/Scenes/Home/Home.tsx b/src/Scenes/Home/Home.tsx index 5f5c44a7b..80d754789 100644 --- a/src/Scenes/Home/Home.tsx +++ b/src/Scenes/Home/Home.tsx @@ -14,7 +14,6 @@ import SplashScreen from "react-native-splash-screen" import styled from "styled-components/native" import { ReservationFeedbackPopUp, ReservationFeedbackReminder } from "../ReservationFeedback/Components" import { HomeBlogContent, HomeBottomSheet } from "./Components" -import { Homepage_fitPics } from "App/generated/Homepage" import analytics from "@segment/analytics-react-native" import { userSessionToIdentifyPayload } from "App/utils/auth" import { GET_HOMEPAGE } from "@seasons/eclipse" @@ -23,14 +22,13 @@ export const Home = screenTrack()(({ navigation, route }) => { const [showLoader, toggleLoader] = useState(true) const [navigatedToAccount, setNavigatedToAccount] = useState(false) const [showReservationFeedbackPopUp, setShowReservationFeedbackPopUp] = useState(true) + const [fitPicsFetch, setFitPicsFetch] = useState(8) const { loading, error, data, refetch, fetchMore } = useQuery(GET_HOMEPAGE, { - variables: { firstFitPics: 8, skipFitPics: 0 }, + variables: { firstFitPics: fitPicsFetch, skipFitPics: 0 }, }) const [showSplash, setShowSplash] = useState(true) const network = useContext(NetworkContext) - console.log("data", data) - const totalFitPics = data?.fitPicsCount?.aggregate?.count ?? 0 const fitPicsReceived = data?.fitPics?.length ?? 0 @@ -131,18 +129,8 @@ export const Home = screenTrack()(({ navigation, route }) => { if (!isFetchingMoreFitPics && fitPicsReceived > 0) { fetchMore({ variables: { firstFitPics: 8, skipFitPics: fitPicsReceived }, - updateQuery: (prev: { fitPics: Homepage_fitPics[]; fitPicsCount: any }, { fetchMoreResult }) => { - if (!prev) { - return [] - } else if (!fetchMoreResult) { - return prev - } else { - return Object.assign({}, prev, { - fitPics: [...prev.fitPics, ...fetchMoreResult.fitPics], - fitPicsCount: fetchMoreResult.fitPicsCount, - }) - } - }, + }).then((fetchMoreResult) => { + setFitPicsFetch(data?.fitPics?.length + fetchMoreResult?.data?.fitPics.length) }) } }} diff --git a/yarn.lock b/yarn.lock index b27658941..37752e306 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6878,6 +6878,11 @@ core-js@^3.0.1, core-js@^3.0.4, core-js@^3.3.2, core-js@^3.6.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== +core-js@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0" + integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" From 5f0fded5eff9a8f9427a2829b90eab45163d6d54 Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Tue, 19 Jan 2021 17:01:07 -0500 Subject: [PATCH 07/14] Fixes fitPicConfirmation --- src/Scenes/FitPic/FitPicConfirmation.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Scenes/FitPic/FitPicConfirmation.tsx b/src/Scenes/FitPic/FitPicConfirmation.tsx index 23a89ec2e..7c74b2926 100644 --- a/src/Scenes/FitPic/FitPicConfirmation.tsx +++ b/src/Scenes/FitPic/FitPicConfirmation.tsx @@ -1,4 +1,4 @@ -import { gql } from "apollo-boost" +import gql from "graphql-tag" import { ReactNativeFile } from "apollo-upload-client" import { Button, Container, FixedBackArrow, Flex, Sans, Spacer, TextInput, Toggle } from "App/Components" import { TextInputRef } from "App/Components/TextInput" @@ -7,7 +7,7 @@ import { space } from "App/utils" import { Schema, screenTrack, useTracking } from "App/utils/track" import { FadeBottom2 } from "Assets/svgs/FadeBottom2" import React, { useRef, useState } from "react" -import { useMutation, useQuery } from "react-apollo" +import { useMutation, useQuery } from "@apollo/client" import { Dimensions, Image, KeyboardAvoidingView, ScrollView, View } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" From c38643344ae9092e93f498ade38b5d45300770fa Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Wed, 20 Jan 2021 12:24:58 -0500 Subject: [PATCH 08/14] Fixes localBagItems --- src/App.tsx | 13 ++++++++++++- src/Navigation/AuthProvider.tsx | 11 +++++++++++ src/fragmentTypes.json | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 0c2982231..83d34951a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -5,7 +5,7 @@ import DeviceInfo from "react-native-device-info" import { SafeAreaProvider } from "react-native-safe-area-context" import { enableScreens } from "react-native-screens" import stripe from "tipsi-stripe" -import { ApolloProvider } from "@apollo/client" +import { ApolloProvider, gql } from "@apollo/client" import AsyncStorage from "@react-native-community/async-storage" import * as Sentry from "@sentry/react-native" import { setupApolloClient } from "./Apollo" @@ -21,6 +21,17 @@ export const App = () => { await config.start() const client = await setupApolloClient() + client.writeQuery({ + query: gql` + query GetLocalCache { + localBagItems + } + `, + data: { + localBagItems: [], + }, + }) + setApolloClient(client) if (!__DEV__) { diff --git a/src/Navigation/AuthProvider.tsx b/src/Navigation/AuthProvider.tsx index 9bb7486c8..2e3b7ef5e 100644 --- a/src/Navigation/AuthProvider.tsx +++ b/src/Navigation/AuthProvider.tsx @@ -12,6 +12,7 @@ import analytics from "@segment/analytics-react-native" import AuthContext from "./AuthContext" import { ModalAndMainScreens } from "./Stacks" +import { gql } from "@apollo/client" // For docs on auth see: https://reactnavigation.org/docs/en/navigating-without-navigation-prop.html @@ -103,6 +104,16 @@ export const AuthProvider = React.forwardRef await AsyncStorage.removeItem("beamsData") RNPusherPushNotifications.clearAllState() apolloClient.resetStore() + apolloClient.writeQuery({ + query: gql` + query GetLocalCache { + localBagItems + } + `, + data: { + localBagItems: [], + }, + }) analytics.reset() dispatch({ type: "SIGN_OUT" }) }, diff --git a/src/fragmentTypes.json b/src/fragmentTypes.json index c4e0f90ac..63d8cda3d 100644 --- a/src/fragmentTypes.json +++ b/src/fragmentTypes.json @@ -1 +1 @@ -{"__schema":{"types":[{"kind":"UNION","name":"SearchResultData","possibleTypes":[{"name":"ProductSearchResultData"},{"name":"PhysicalProductSearchResultData"}]},{"kind":"UNION","name":"HomepageResult","possibleTypes":[{"name":"Product"},{"name":"Collection"},{"name":"Brand"},{"name":"Category"},{"name":"HomepageProductRail"}]}]}} \ No newline at end of file +{"__schema":{"types":[{"kind":"INTERFACE","name":"Node","possibleTypes":[{"name":"Collection"},{"name":"Category"},{"name":"ProductMaterialCategory"},{"name":"ProductModel"},{"name":"TopSize"},{"name":"BottomSize"},{"name":"Color"},{"name":"Location"},{"name":"EmailReceipt"},{"name":"CustomerDetail"},{"name":"StylePreferences"},{"name":"BillingInfo"},{"name":"PaymentPlan"},{"name":"BagItem"},{"name":"Package"},{"name":"Label"},{"name":"PackageTransitEvent"},{"name":"ReservationFeedback"},{"name":"ProductVariantFeedback"},{"name":"ProductVariantFeedbackQuestion"},{"name":"ShippingOption"},{"name":"ShippingMethod"},{"name":"CustomerMembership"},{"name":"PauseRequest"},{"name":"CustomerAdmissionsData"},{"name":"UTMData"},{"name":"PushNotificationReceipt"},{"name":"UserPushNotification"},{"name":"UserPushNotificationInterest"},{"name":"WarehouseLocation"},{"name":"WarehouseLocationConstraint"},{"name":"ProductSeason"},{"name":"Season"},{"name":"Tag"},{"name":"ProductFunction"},{"name":"ProductTier"},{"name":"ProductNotification"},{"name":"ProductRequest"},{"name":"HomepageProductRail"},{"name":"FitPicReport"},{"name":"InterestedUser"},{"name":"ReservationReceipt"},{"name":"ReservationReceiptItem"},{"name":"RecentlyViewedProduct"},{"name":"ProductVariantWant"},{"name":"ActiveAdminUser"},{"name":"CollectionGroup"},{"name":"SmsReceipt"},{"name":"SyncTiming"}]},{"kind":"UNION","name":"SearchResultData","possibleTypes":[{"name":"ProductSearchResultData"},{"name":"PhysicalProductSearchResultData"}]},{"kind":"UNION","name":"HomepageResult","possibleTypes":[{"name":"Product"},{"name":"Collection"},{"name":"Brand"},{"name":"Category"},{"name":"HomepageProductRail"}]}]}} \ No newline at end of file From 9c8a75326b25517207188e60626aba3137fbb91c Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Wed, 20 Jan 2021 14:15:29 -0500 Subject: [PATCH 09/14] Updates useQuery with previousData --- src/Apollo/index.ts | 12 ++++++++++-- src/Notifications/NotificationsProvider.tsx | 1 + src/Scenes/Account/Account.tsx | 3 ++- src/Scenes/Account/InviteFriends/InviteFriends.tsx | 3 ++- src/Scenes/Account/MembershipInfo/MembershipInfo.tsx | 3 ++- .../MembershipInfo/UpdatePaymentPlanModal.tsx | 2 +- .../PaymentAndShipping/EditPaymentAndShipping.tsx | 3 ++- .../PaymentAndShipping/PaymentAndShipping.tsx | 3 ++- .../PersonalPreferences/PersonalPreferences.tsx | 1 + src/Scenes/Bag/Bag.tsx | 2 +- src/Scenes/Bag/BagQueries.ts | 1 + src/Scenes/Bag/CurrentRotation.tsx | 3 ++- src/Scenes/Bag/SurpriseMe.tsx | 3 ++- src/Scenes/CreateAccount/CreateAccount.tsx | 3 ++- src/Scenes/Faq/Faq.tsx | 2 +- src/Scenes/FitPic/FitPicConfirmation.tsx | 3 ++- src/Scenes/Home/Home.tsx | 10 ++++++---- src/Scenes/Home/queries/homeQueries.ts | 1 + src/Scenes/Product/Queries.ts | 1 + src/Scenes/Reservation/Reservation.tsx | 3 ++- src/Scenes/Reservation/ReservationConfirmation.tsx | 3 ++- src/Scenes/Reservation/ShareReservationToIG.tsx | 3 ++- src/Scenes/Tag/Tag.tsx | 2 +- 23 files changed, 49 insertions(+), 22 deletions(-) diff --git a/src/Apollo/index.ts b/src/Apollo/index.ts index b3b9aa4ce..e551d9387 100644 --- a/src/Apollo/index.ts +++ b/src/Apollo/index.ts @@ -3,7 +3,6 @@ import { setContext } from "apollo-link-context" import { onError } from "apollo-link-error" import { getAccessTokenFromSession, getNewToken } from "App/utils/auth" import { Platform } from "react-native" -import { offsetLimitPagination } from "@apollo/client/utilities" import * as Sentry from "@sentry/react-native" import { resolvers, typeDefs } from "./resolvers" @@ -17,7 +16,16 @@ export const setupApolloClient = async () => { return newCount }, }, - fitPics: offsetLimitPagination(), + fitPics: { + merge(existing = [], incoming = [], { args: { skipFitPics = 0 } }) { + const merged = existing ? existing.slice(0) : [] + for (let i = 0; i < incoming.length; ++i) { + merged[skipFitPics + i] = incoming[i] + } + existing = merged + return existing + }, + }, }, }, }, diff --git a/src/Notifications/NotificationsProvider.tsx b/src/Notifications/NotificationsProvider.tsx index 78655b1e7..6d0e494f2 100644 --- a/src/Notifications/NotificationsProvider.tsx +++ b/src/Notifications/NotificationsProvider.tsx @@ -16,6 +16,7 @@ export const seasonsNotifInterest = "seasons-general-notifications" export const GET_BEAMS_DATA = gql` query BeamsData { me { + id user { email beamsToken diff --git a/src/Scenes/Account/Account.tsx b/src/Scenes/Account/Account.tsx index 09e7ef066..3f7caa074 100644 --- a/src/Scenes/Account/Account.tsx +++ b/src/Scenes/Account/Account.tsx @@ -32,6 +32,7 @@ import { WaitlistedCTA, AuthorizedCTA } from "@seasons/eclipse" export const GET_USER = gql` query GetUser { me { + id customer { id status @@ -84,7 +85,7 @@ export const GET_USER = gql` export const Account = screenTrack()(({ navigation }) => { const { authState, signOut } = useAuthContext() - const { data, refetch } = useQuery(GET_USER) + const { previousData, data = previousData, refetch } = useQuery(GET_USER) const tracking = useTracking() diff --git a/src/Scenes/Account/InviteFriends/InviteFriends.tsx b/src/Scenes/Account/InviteFriends/InviteFriends.tsx index 4170a95a0..a6b016bfb 100644 --- a/src/Scenes/Account/InviteFriends/InviteFriends.tsx +++ b/src/Scenes/Account/InviteFriends/InviteFriends.tsx @@ -21,6 +21,7 @@ const SansUnderline = styled(Sans)` export const GET_REFERRAL_LINK = gql` query GetReferralLink { me { + id customer { id referralLink @@ -33,7 +34,7 @@ export const InviteFriends = screenTrack()(({ route, navigation }) => { const insets = useSafeArea() const [openPopUp, setOpenPopUp] = useState(false) const [copyText, setCopyText] = useState("Copy link") - const { data } = useQuery(GET_REFERRAL_LINK) + const { previousData, data = previousData } = useQuery(GET_REFERRAL_LINK) const referralLink = data?.me?.customer?.referralLink const onShare = async () => { diff --git a/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx b/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx index a4a8f4406..f55ab702c 100644 --- a/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx +++ b/src/Scenes/Account/MembershipInfo/MembershipInfo.tsx @@ -14,6 +14,7 @@ import { Schema } from "App/Navigation" export const GET_MEMBERSHIP_INFO = gql` query GetMembershipInfo { me { + id customer { id status @@ -49,7 +50,7 @@ export const GET_MEMBERSHIP_INFO = gql` export const MembershipInfo = screenTrack()(({ navigation }) => { const insets = useSafeAreaInsets() - const { data } = useQuery(GET_MEMBERSHIP_INFO) + const { previousData, data = previousData } = useQuery(GET_MEMBERSHIP_INFO) const customer = data?.me?.customer const firstName = data?.me?.user?.firstName const lastName = data?.me?.user?.lastName diff --git a/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx b/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx index 9320d4e89..4f51a214a 100644 --- a/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx +++ b/src/Scenes/Account/MembershipInfo/UpdatePaymentPlanModal.tsx @@ -8,7 +8,7 @@ import { screenTrack } from "App/utils/track" export const UpdatePaymentPlanModal = screenTrack()(({ navigation, route }) => { const [selectedPlan, setSelectedPlan] = useState(null) - const { data } = useQuery(GET_PLANS, { + const { previousData, data = previousData } = useQuery(GET_PLANS, { variables: { where: { status: "active" }, }, diff --git a/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx b/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx index 9600595e0..9d1d60c8f 100644 --- a/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx +++ b/src/Scenes/Account/PaymentAndShipping/EditPaymentAndShipping.tsx @@ -21,6 +21,7 @@ import { Schema as NavigationSchema } from "App/Navigation" export const GET_CURRENT_PLAN = gql` query GetCurrentPlan { me { + id customer { id user { @@ -67,7 +68,7 @@ export const EditPaymentAndShipping: React.FC<{ route: any }> = screenTrack()(({ navigation, route }) => { const { showPopUp, hidePopUp } = usePopUpContext() - const { data } = useQuery(GET_CURRENT_PLAN) + const { previousData, data = previousData } = useQuery(GET_CURRENT_PLAN) const billingInfo: GetUserPaymentData_me_customer_billingInfo = route?.params?.billingInfo const currentShippingAddress: GetUserPaymentData_me_customer_detail_shippingAddress = route?.params?.shippingAddress const currentPhoneNumber = route?.params?.phoneNumber diff --git a/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx b/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx index 420148139..6c21ab776 100644 --- a/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx +++ b/src/Scenes/Account/PaymentAndShipping/PaymentAndShipping.tsx @@ -11,6 +11,7 @@ import { Schema as NavigationSchema } from "App/Navigation" export const GET_PAYMENT_DATA = gql` query GetUserPaymentData { me { + id customer { id detail { @@ -112,7 +113,7 @@ const AccountSection: React.FC<{ title: string; value: string | [string] }> = ({ } export const PaymentAndShipping = screenTrack()(({ navigation }) => { - const { error, data, startPolling, stopPolling } = useQuery(GET_PAYMENT_DATA) + const { error, previousData, data = previousData, startPolling, stopPolling } = useQuery(GET_PAYMENT_DATA) useEffect(() => { // The Chargebee address update takes multiple seconds to update // therefore we must check and refetch data if the user leaves this view diff --git a/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx b/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx index c59e3273e..b2893b818 100644 --- a/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx +++ b/src/Scenes/Account/PersonalPreferences/PersonalPreferences.tsx @@ -13,6 +13,7 @@ import { StatusBar } from "react-native" const GET_PREFERENCES = gql` query GetUserPreferences { me { + id customer { id user { diff --git a/src/Scenes/Bag/Bag.tsx b/src/Scenes/Bag/Bag.tsx index 80d5c924a..92ef51e7e 100644 --- a/src/Scenes/Bag/Bag.tsx +++ b/src/Scenes/Bag/Bag.tsx @@ -48,7 +48,7 @@ export const Bag = screenTrack()((props) => { }, []) ) - const { data, refetch } = useQuery(GET_BAG) + const { previousData, data = previousData, refetch } = useQuery(GET_BAG) const { data: localItems } = useQuery(GET_LOCAL_BAG) const me = data?.me diff --git a/src/Scenes/Bag/BagQueries.ts b/src/Scenes/Bag/BagQueries.ts index 89336bcbb..5408dae5d 100644 --- a/src/Scenes/Bag/BagQueries.ts +++ b/src/Scenes/Bag/BagQueries.ts @@ -40,6 +40,7 @@ export const GET_BAG = gql` itemCount } me { + id customer { id status diff --git a/src/Scenes/Bag/CurrentRotation.tsx b/src/Scenes/Bag/CurrentRotation.tsx index fbc043ac5..675a17f90 100644 --- a/src/Scenes/Bag/CurrentRotation.tsx +++ b/src/Scenes/Bag/CurrentRotation.tsx @@ -15,6 +15,7 @@ import { CurrentRotationItem } from "./Components/CurrentRotationItem" const ACTIVE_RESERVATION = gql` query ActiveReservation { me { + id activeReservation { id shipped @@ -48,7 +49,7 @@ const ACTIVE_RESERVATION = gql` ` export const CurrentRotation = (props) => { - const { data, loading, refetch } = useQuery(ACTIVE_RESERVATION) + const { previousData, data = previousData, loading, refetch } = useQuery(ACTIVE_RESERVATION) useEffect(() => { refetch() diff --git a/src/Scenes/Bag/SurpriseMe.tsx b/src/Scenes/Bag/SurpriseMe.tsx index c88fbedb6..b95f1f03a 100644 --- a/src/Scenes/Bag/SurpriseMe.tsx +++ b/src/Scenes/Bag/SurpriseMe.tsx @@ -39,6 +39,7 @@ export const GET_SURPRISE_PRODUCT_VARIANTS = gql` } } me { + id bag { id productVariant { @@ -181,7 +182,7 @@ const Content = ({ data, variant, product, onRestart, seenAllAvailableProducts } export const SurpriseMe = screenTrack()(() => { const [variants, setVariants] = useState(null) - const { data } = useQuery(GET_SURPRISE_PRODUCT_VARIANTS) + const { previousData, data = previousData } = useQuery(GET_SURPRISE_PRODUCT_VARIANTS) const insets = useSafeAreaInsets() const [isAddingToBag, setIsAddingToBag] = useState(false) const [loadingNext, setLoadingNext] = useState(false) diff --git a/src/Scenes/CreateAccount/CreateAccount.tsx b/src/Scenes/CreateAccount/CreateAccount.tsx index 38805a60e..56a7708ae 100644 --- a/src/Scenes/CreateAccount/CreateAccount.tsx +++ b/src/Scenes/CreateAccount/CreateAccount.tsx @@ -66,6 +66,7 @@ export const GET_PLANS = gql` itemCount } me { + id customer { id status @@ -131,7 +132,7 @@ const statesFor = (userState: UserState): State[] => { } export const CreateAccount: React.FC = screenTrack()(({ navigation, route }) => { - const { data } = useQuery(GET_PLANS, { + const { previousData, data = previousData } = useQuery(GET_PLANS, { variables: { where: { status: "active" }, }, diff --git a/src/Scenes/Faq/Faq.tsx b/src/Scenes/Faq/Faq.tsx index 4deb53aab..919ab3f72 100644 --- a/src/Scenes/Faq/Faq.tsx +++ b/src/Scenes/Faq/Faq.tsx @@ -21,7 +21,7 @@ export const GET_FAQ = gql` ` export const Faq = ({ navigation }) => { - const { loading, data } = useQuery(GET_FAQ, {}) + const { loading, previousData, data = previousData } = useQuery(GET_FAQ, {}) if (loading) { return diff --git a/src/Scenes/FitPic/FitPicConfirmation.tsx b/src/Scenes/FitPic/FitPicConfirmation.tsx index 7c74b2926..bb25a24ae 100644 --- a/src/Scenes/FitPic/FitPicConfirmation.tsx +++ b/src/Scenes/FitPic/FitPicConfirmation.tsx @@ -19,6 +19,7 @@ const SUBMIT_FIT_PIC = gql` const GET_INSTAGRAM_HANDLE = gql` query GetInstagramHandle { me { + id customer { id detail { @@ -33,7 +34,7 @@ export const FitPicConfirmation = screenTrack()(({ route, navigation }) => { const tracking = useTracking() const insets = useSafeAreaInsets() - const { data, loading } = useQuery(GET_INSTAGRAM_HANDLE, { fetchPolicy: "no-cache" }) + const { previousData, data = previousData, loading } = useQuery(GET_INSTAGRAM_HANDLE, { fetchPolicy: "no-cache" }) const [instagramHandle, setInstagramHandle] = useState("") const [includeInstagramHandle, setIncludeInstagramHandle] = useState(true) diff --git a/src/Scenes/Home/Home.tsx b/src/Scenes/Home/Home.tsx index 80d754789..ba26bf3aa 100644 --- a/src/Scenes/Home/Home.tsx +++ b/src/Scenes/Home/Home.tsx @@ -22,10 +22,11 @@ export const Home = screenTrack()(({ navigation, route }) => { const [showLoader, toggleLoader] = useState(true) const [navigatedToAccount, setNavigatedToAccount] = useState(false) const [showReservationFeedbackPopUp, setShowReservationFeedbackPopUp] = useState(true) - const [fitPicsFetch, setFitPicsFetch] = useState(8) - const { loading, error, data, refetch, fetchMore } = useQuery(GET_HOMEPAGE, { - variables: { firstFitPics: fitPicsFetch, skipFitPics: 0 }, + const [fitPicsFetchCount, setFitPicsFetchCount] = useState(8) + const { loading, error, previousData, data = previousData, refetch, fetchMore } = useQuery(GET_HOMEPAGE, { + variables: { firstFitPics: fitPicsFetchCount, skipFitPics: 0 }, }) + const [showSplash, setShowSplash] = useState(true) const network = useContext(NetworkContext) @@ -92,6 +93,7 @@ export const Home = screenTrack()(({ navigation, route }) => { } if (showLoader || !data) { + console.log("data", data) return } @@ -130,7 +132,7 @@ export const Home = screenTrack()(({ navigation, route }) => { fetchMore({ variables: { firstFitPics: 8, skipFitPics: fitPicsReceived }, }).then((fetchMoreResult) => { - setFitPicsFetch(data?.fitPics?.length + fetchMoreResult?.data?.fitPics.length) + setFitPicsFetchCount(data?.fitPics?.length + fetchMoreResult?.data?.fitPics.length) }) } }} diff --git a/src/Scenes/Home/queries/homeQueries.ts b/src/Scenes/Home/queries/homeQueries.ts index 6cf3cde35..32c36e826 100644 --- a/src/Scenes/Home/queries/homeQueries.ts +++ b/src/Scenes/Home/queries/homeQueries.ts @@ -124,6 +124,7 @@ export const GET_HOMEPAGE = gql` } } me { + id customer { id status diff --git a/src/Scenes/Product/Queries.ts b/src/Scenes/Product/Queries.ts index 1e81c5711..951beb907 100644 --- a/src/Scenes/Product/Queries.ts +++ b/src/Scenes/Product/Queries.ts @@ -40,6 +40,7 @@ const commonProductVariantFragment = gql` export const GET_PRODUCT = gql` query GetProduct($where: ProductWhereInput!) { me { + id customer { id status diff --git a/src/Scenes/Reservation/Reservation.tsx b/src/Scenes/Reservation/Reservation.tsx index ce76a815f..f0d77da02 100644 --- a/src/Scenes/Reservation/Reservation.tsx +++ b/src/Scenes/Reservation/Reservation.tsx @@ -26,6 +26,7 @@ const RESERVE_ITEMS = gql` const GET_CUSTOMER = gql` query GetCustomer { me { + id user { id firstName @@ -96,7 +97,7 @@ export const Reservation = screenTrack()((props) => { const [isMutating, setIsMutating] = useState(false) const tracking = useTracking() const navigation = useNavigation() - const { data } = useQuery(GET_CUSTOMER) + const { previousData, data = previousData } = useQuery(GET_CUSTOMER) const [shippingOptionIndex, setShippingOptionIndex] = useState(0) const { showPopUp, hidePopUp } = usePopUpContext() const [reserveItems] = useMutation(RESERVE_ITEMS, { diff --git a/src/Scenes/Reservation/ReservationConfirmation.tsx b/src/Scenes/Reservation/ReservationConfirmation.tsx index 40c720558..acefe9284 100644 --- a/src/Scenes/Reservation/ReservationConfirmation.tsx +++ b/src/Scenes/Reservation/ReservationConfirmation.tsx @@ -18,6 +18,7 @@ enum Option { const GET_CUSTOMER_RESERVATION_CONFIRMATION = gql` query GetCustomerReservationConfirmation($reservationID: ID!) { me { + id user { id firstName @@ -88,7 +89,7 @@ const GET_CUSTOMER_RESERVATION_CONFIRMATION = gql` export const ReservationConfirmation = screenTrack()((props) => { const tracking = useTracking() const reservationID = props?.route?.params?.reservationID - const { data, error } = useQuery(GET_CUSTOMER_RESERVATION_CONFIRMATION, { + const { previousData, data = previousData, error } = useQuery(GET_CUSTOMER_RESERVATION_CONFIRMATION, { variables: { reservationID, }, diff --git a/src/Scenes/Reservation/ShareReservationToIG.tsx b/src/Scenes/Reservation/ShareReservationToIG.tsx index e9dd7cbc9..446ec96f3 100644 --- a/src/Scenes/Reservation/ShareReservationToIG.tsx +++ b/src/Scenes/Reservation/ShareReservationToIG.tsx @@ -14,6 +14,7 @@ import ViewShot, { captureRef } from "react-native-view-shot" const GET_CUSTOMER_RESERVATION_ITEMS = gql` query GetCustomerReservationItems($reservationID: ID!) { me { + id customer { id reservations(where: { id: $reservationID }) { @@ -49,7 +50,7 @@ export const ShareReservationToIG = screenTrack()(({ route, navigation }) => { const [currentPageNumber, setCurrentPageNumber] = useState(0) const insets = useSafeAreaInsets() - const { data } = useQuery(GET_CUSTOMER_RESERVATION_ITEMS, { + const { previousData, data = previousData } = useQuery(GET_CUSTOMER_RESERVATION_ITEMS, { variables: { reservationID, }, diff --git a/src/Scenes/Tag/Tag.tsx b/src/Scenes/Tag/Tag.tsx index a14ebccff..fe0850d69 100644 --- a/src/Scenes/Tag/Tag.tsx +++ b/src/Scenes/Tag/Tag.tsx @@ -43,7 +43,7 @@ export const Tag = screenTrack({ const { navigation, route } = props const { tag, title, description } = route?.params?.tagData - const { data, loading, fetchMore } = useQuery(GET_TAG, { + const { previousData, data = previousData, loading, fetchMore } = useQuery(GET_TAG, { variables: { tag, first: 10, From 51fe82c19fb18a2a296cc6be4494e8047099b7fc Mon Sep 17 00:00:00 2001 From: Kieran Gillen Date: Wed, 20 Jan 2021 14:33:37 -0500 Subject: [PATCH 10/14] Updates confirm photo styles --- src/Scenes/FitPic/FitPicConfirmation.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Scenes/FitPic/FitPicConfirmation.tsx b/src/Scenes/FitPic/FitPicConfirmation.tsx index bb25a24ae..b808ea443 100644 --- a/src/Scenes/FitPic/FitPicConfirmation.tsx +++ b/src/Scenes/FitPic/FitPicConfirmation.tsx @@ -10,6 +10,7 @@ import React, { useRef, useState } from "react" import { useMutation, useQuery } from "@apollo/client" import { Dimensions, Image, KeyboardAvoidingView, ScrollView, View } from "react-native" import { useSafeAreaInsets } from "react-native-safe-area-context" +import { Box } from "@seasons/eclipse" const SUBMIT_FIT_PIC = gql` mutation SubmitFitPic($image: Upload!, $options: FitPicSubmissionOptionsInput) { @@ -114,7 +115,10 @@ export const FitPicConfirmation = screenTrack()(({ route, navigation }) => { Confirm photo - + + + + {!loading && hasPreloadedInstagramHandle && ( @@ -160,7 +164,7 @@ export const FitPicConfirmation = screenTrack()(({ route, navigation }) => { - +