react-native-spotlight-search
Version:
A React Native module for iOS that provides Spotlight search functionality.
33 lines (32 loc) • 1.8 kB
JavaScript
;
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);