UNPKG

react-native-spotlight-search

Version:

A React Native module for iOS that provides Spotlight search functionality.

33 lines (32 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const config_plugins_1 = require("@expo/config-plugins"); const pkg = require("react-native-spotlight-search/package.json"); const SPOTLIGHT_IMPORT = `#import "RCTSpotlightSearch.h" `; const SPOTLIGHT_ACTIVITY = `- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {`; const SPOTLIGHT_ACTIVITY_ADD = `- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler { [RCTSpotlightSearch handleContinueUserActivity:userActivity];`; const modifyAppDelegate = (appDelegate) => { if (!appDelegate.includes(SPOTLIGHT_IMPORT)) { appDelegate = SPOTLIGHT_IMPORT + appDelegate; } const updatedAppDelegate = appDelegate.replace(SPOTLIGHT_ACTIVITY, SPOTLIGHT_ACTIVITY_ADD); return updatedAppDelegate; }; const withSpotlightAppDelegate = (config) => { return (0, config_plugins_1.withAppDelegate)(config, (config) => { if (['objc', 'objcpp'].includes(config.modResults.language)) { config.modResults.contents = modifyAppDelegate(config.modResults.contents); } else { config_plugins_1.WarningAggregator.addWarningIOS("withSpotlightAppDelegate", "Swift AppDelegate files are not supported yet."); } return config; }); }; const withSpotlight = (config) => { config = withSpotlightAppDelegate(config); return config; }; exports.default = (0, config_plugins_1.createRunOncePlugin)(withSpotlight, pkg.name, pkg.version);