UNPKG

3.86 kBSource Map (JSON)View Raw
1{"version":3,"file":"StoreReview.js","sourceRoot":"","sources":["../src/StoreReview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;EAIE;AACF,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC;AAChF,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,aAAa;IAC3B,IAAI,WAAW,EAAE,EAAE;QACjB,aAAa,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;KACnD;SAAM;QACL;;UAEE;QACF,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;QACvB,IAAI,GAAG,EAAE;YACP,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;iBACpB,IAAI,CAAC,SAAS,CAAC,EAAE;gBAChB,IAAI,CAAC,SAAS,EAAE;oBACd,OAAO,CAAC,GAAG,CAAC,0DAA0D,EAAE,GAAG,CAAC,CAAC;oBAC7E,OAAO;iBACR;qBAAM;oBACL,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBAC7B;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE,CACX,OAAO,CAAC,IAAI,CAAC,iEAAiE,EAAE,GAAG,CAAC,CACrF,CAAC;SACL;aAAM;YACL,iDAAiD;YACjD,OAAO,CAAC,GAAG,CACT,oKAAoK,CACrK,CAAC;SACH;KACF;AACH,CAAC;AAED;;;;;EAKE;AACF,MAAM,UAAU,QAAQ;IACtB,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;IACxB,IAAI,EAAE,KAAK,KAAK,EAAE;QAChB,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;KAC3C;SAAM,IAAI,EAAE,KAAK,SAAS,EAAE;QAC3B,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;KAChD;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,EAAE,CAAC,CAAC;KACpE;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC;AACvC,CAAC","sourcesContent":["import { NativeModules, Platform, Linking } from 'react-native';\nimport { Constants } from 'expo-constants';\n\n/*\n * Platform must be iOS\n * iOS 10.3 or greater\n * `SKStoreReviewController` class is available\n*/\nexport function isSupported() {\n return Platform.OS === 'ios' && NativeModules.ExponentStoreReview.isSupported;\n}\n\n/*\n Use the iOS `SKStoreReviewController` API to prompt a user rating without leaving the app.\n*/\nexport function requestReview() {\n if (isSupported()) {\n NativeModules.ExponentStoreReview.requestReview();\n } else {\n /*\n If StoreReview is unavailable then get the store URL from the `app.json` and open to the store.\n */\n const url = storeUrl();\n if (url) {\n Linking.canOpenURL(url)\n .then(supported => {\n if (!supported) {\n console.log(\"Expo.StoreReview.requestReview(): Can't open store url: \", url);\n return;\n } else {\n return Linking.openURL(url);\n }\n })\n .catch(err =>\n console.warn('Expo.StoreReview.requestReview(): Error opening link to store: ', err)\n );\n } else {\n // If the store URL is missing, let the dev know.\n console.log(\n \"Expo.StoreReview.requestReview(): Couldn't link to store, please make sure the `android.playStoreUrl` & `ios.appStoreUrl` fields are filled out in your `app.json`\"\n );\n }\n }\n}\n\n/*\n Get your app's store URLs from the `app.json`\n\n * iOS: https://docs.expo.io/versions/latest/workflow/configuration#appstoreurlurl-to-your-app-on-the-apple-app-store-if-you-have-deployed-it-there-this-is-used-to-link-to-your-store-page-from-your-expo-project-page-if-your-app-is-public\n * Android: https://docs.expo.io/versions/latest/workflow/configuration#playstoreurlurl-to-your-app-on-the-google-play-store-if-you-have-deployed-it-there-this-is-used-to-link-to-your-store-page-from-your-expo-project-page-if-your-app-is-public\n*/\nexport function storeUrl() {\n const { OS } = Platform;\n if (OS === 'ios') {\n return Constants.manifest.ios.appStoreUrl;\n } else if (OS === 'android') {\n return Constants.manifest.android.playStoreUrl;\n } else {\n console.warn(`Expo.StoreReview.storeUrl(): Unsupported OS: ${OS}`);\n }\n return null;\n}\n\n/*\n A flag to detect if this module can do anything\n*/\nexport function hasAction() {\n return !!storeUrl() || isSupported();\n}\n"]}
\No newline at end of file