UNPKG

react-native-rate-app

Version:

React Native module for In App Rating on Android and iOS

56 lines (53 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _configPlugins = require("@expo/config-plugins"); /** * Modifies the `Info.plist` file to add `LSApplicationQueriesSchemes`, * allowing the app to open App Store links. * * @param {ConfigPlugin} config - The Expo configuration object. * @returns {ConfigPlugin} - The modified Expo configuration. */ const withCustomInfoPlist = config => { return (0, _configPlugins.withInfoPlist)(config, config => { if (!config.modResults.LSApplicationQueriesSchemes) { config.modResults.LSApplicationQueriesSchemes = []; } if (!config.modResults.LSApplicationQueriesSchemes.includes("itms-apps")) { config.modResults.LSApplicationQueriesSchemes.push("itms-apps"); } return config; }); }; /** * Adds the `StoreKit.framework` to the iOS Xcode project. * This framework is required for in-app review prompts. * * @param {ConfigPlugin} config - The Expo configuration object. * @returns {ConfigPlugin} - The modified Expo configuration. */ const withStoreKitFramework = config => { return (0, _configPlugins.withXcodeProject)(config, config => { config.modResults.addFramework("StoreKit.framework", { required: true }); return config; }); }; /** * Applies both `withCustomInfoPlist` and `withStoreKitFramework` * to enable in-app rating functionality in a React Native app. * * @param {ConfigPlugin} config - The Expo configuration object. * @returns {ConfigPlugin} - The modified Expo configuration. */ const withReactNativeRateApp = config => { const configWithInfoPlist = withCustomInfoPlist(config); const configWithStoreKit = withStoreKitFramework(configWithInfoPlist); return configWithStoreKit; }; var _default = exports.default = withReactNativeRateApp; //# sourceMappingURL=withReactNativeRateApp.js.map