npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-location-picker-controller

v1.1.2

Published

React Native Wrapper for LocationPicker, a ready for use and fully customizable location picker.

Downloads

50

Readme

WARNING: This library is for iOS only, and must be used with react-native-navigation, I highly recommend using react-native-google-place-picker instead as its more featured(using Google's SDK), easy to setup(not dependent on react-native-navigation), with support for both iOS and Android.

react-native-location-picker

React Native Wrapper for LocationPicker, a ready for use and fully customizable location picker.

Dependencies

  • react-native-navigation - native navigation library for React Native (required to natively display the location picker within RN)

Installation

  • Make sure your project relies on React Native >= 0.25

  • Make sure your project uses react-native-navigation and that you've followed the Installation instructions there

  1. In your RN project root run:npm install react-native-location-picker-controller --save

  2. In Xcode, in Project Navigator (left pane), right-click on the Libraries > Add files to [project name] Add ./node_modules/react-native-location-picker-controller/ios/LocationPicker.xcodeproj (screenshots)

  3. In Xcode, in Project Navigator (left pane), click on your project (top) and select the Build Phases tab (right pane) In the Link Binary With Libraries section add LocationPicker.framework (screenshots)

  4. Open your Xcode project and drag RNLocationPicker.swift, RNLocationPickerManager.h, RNLocationPickerManager.m from the folder node_modules/react-native-location-picker/ios into your project, in the dialog box let Xcode create Objective-C bridging header.(screenshot 1, screenshot 2)

  5. Editing <your project name>-Bridging-Header.h to import RCCExternalViewControllerProtocol.h and RCCViewController.h for Swift to use:

    //
    //  Use this file to import your target's public headers that you would like to expose to Swift.
    //
    #import "RCCExternalViewControllerProtocol.h"
    #import "RCCViewController.h"
    #import "RCTConvert.h"
  6. In RNLocationPickerManager.m, replace #import "example-Swift.h" to #import "<your project name>-Swift.h"

Support Props(Subset of LocationPicker)

Boolean

| Property name | Default | Target | Remark | | ------------- |:-------:| ------ | ------ | | allowArbitraryLocation | false | | Allows the selection of locations that did not match or exactly match search results | | mapViewZoomEnabled | true | mapView.zoomEnabled | Whether the map view can zoom in and out | | mapViewShowsUserLocation | true | mapView.showsUserLocation | Whether the map view shows user's location | | mapViewScrollEnabled | true | mapView.scrollEnabled | Whether user can scroll the map view |

String

| Property name | Default | Target | Remark | | ------------- |:-------:| ------ | ------ | | currentLocationText | "Current Location" | currentLocationCell.locationNameLabel.text | The text that indicates the user's current location | | searchBarPlaceholder | "Search for location" | searchBar.placeholder | The text that ask user to search for locations | | locationDeniedAlertTitle | "Location access denied" | alertController.title | The text of the alert controller's title | | locationDeniedAlertMessage | "Grant location access to use current location" | alertController.message | The text of the alert controller's message | | locationDeniedGrantText | "Grant" | alertAction.title | The text of the alert controller's Grant button | | locationDeniedCancelText | "Cancel" | alertAction.title | The text of the alert controller's Cancel button |

Color

  • Using processColor to convert color, check example usage code at the end of README

  • Valid color formats for processColor are

    • '#f0f' (#rgb)
    • '#f0fc' (#rgba)
    • '#ff00ff' (#rrggbb)
    • '#ff00ff00' (#rrggbbaa)
    • 'rgb(255, 255, 255)'
    • 'rgba(255, 255, 255, 1.0)'
    • 'hsl(360, 100%, 100%)'
    • 'hsla(360, 100%, 100%, 1.0)'
    • 'transparent'
    • 'red'
    • 0xff00ff00 (0xrrggbbaa)

| Property name | Default | Target | Remark | | ------------- |:-------:| ------ | ------ | | tableViewBackgroundColor | UIColor.whiteColor() | tableView.backgroundColor | The background color of the table view | | currentLocationIconColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | The color of the icon showed in current location cell, the icon image can be changed via property currentLocationIconImage | | searchResultLocationIconColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | The color of the icon showed in search result location cells, the icon image can be changed via property searchResultLocationIconImage | | alternativeLocationIconColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | The color of the icon showed in alternative location cells, the icon image can be changed via property 'alternativeLocationIconImage' | | pinColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | The color of the pin showed in the center of map view, the pin image can be changed via property pinImage | | primaryTextColor | UIColor(colorLiteralRed: 0.34902, green: 0.384314, blue: 0.427451, alpha: 1) | Multiple | The text color of search bar and location name label in location cells | | secondaryTextColor | UIColor(colorLiteralRed: 0.541176, green: 0.568627, blue: 0.584314, alpha: 1) | Multiple | The text color of location address label in location cells |

Number

| Property name | Default | Target | Remark | | ------------- |:-------:| ------ | ------ | | defaultLongitudinalDistance | Double | 1000 | Longitudinal distance of the map view shows when user select a location and before zoom in or zoom out | | searchDistance | Double | 10000 | Distance in meters that is used to search locations |

Usage

For a fully working example look here

First, create a placeholder screen for the location picker. The main purpose of this screen is to handle navigation events. See an example here.

Note: Make sure your screen component has been registered with Navigation.registerComponent like all react-native-navigation screens need to be, example.

Now, to display your screen, from within one of your other app screens, push the location picker:

import processColor from 'processColor';

this.props.navigator.push({
  screen: 'example.LocationPickerScreen',
  title: 'Pick  a Location',
  passProps: {
    externalNativeScreenClass: 'RNLocationPicker',
    externalNativeScreenProps: {
      currentLocationText: '当前位置',
      currentLocationIconColor: processColor('#72c02c'),
      allowArbitraryLocation: true,
      defaultLongitudinalDistance: 100,
    }
  }
});

Credits

License

Code in this git repo is licensed MIT.