streem / react-native-select-contact

A cross-platform contact selection library for react-native
MIT License
114 stars 50 forks source link

Expo custom config plugin #64

Open marcfrankel opened 1 year ago

marcfrankel commented 1 year ago

Thought I would leave this here for anyone who needs it but this is a basic config plugin I made to get this package working with Expo.

Would love to see someone take this, polish it up a bit, and include it in the package itself. But hopefully it's useful to anyone in the future.

const { withAndroidManifest, withPlugins } = require('@expo/config-plugins');

const withCustomManifest = (config) => {
    return withAndroidManifest(config, async (config) => {
        let androidManifest = config.modResults.manifest;

        androidManifest['queries'].push({
            intent: [
                {
                    action: [
                        {
                            $: {
                                'android:name': 'android.intent.action.VIEW',
                            },
                        },
                    ],
                    category: [
                        {
                            $: {
                                'android:name':
                                    'android.intent.category.DEFAULT',
                            },
                        },
                    ],
                    data: [
                        {
                            $: {
                                'android:mimeType':
                                    'vnd.android.cursor.dir/contact',
                            },
                        },
                    ],
                },
            ],
        });

        return config;
    });
};

module.exports = function withAndroidContactSelector(config) {
    return withPlugins(config, [withCustomManifest]);
};
seanadkinson commented 1 year ago

Thanks @marcfrankel! Where would we actually put this file in our project in order for it to be auto-picked up and used by Expo? Would you like to create a PR to bring this in?

marcfrankel commented 1 year ago

@seanadkinson I think more info can be found here: https://docs.expo.dev/guides/config-plugins/#importing-plugins

I could potentially open a PR to do this if that's desired, but I will caution what I wrote is extremely rough and may need to be improved past my skill level...

eniolajayi commented 3 months ago

@seanadkinson There's a pr for this by @iamMAHAM . It would be nice to have the package support expo

seanadkinson commented 3 months ago

@eniolajayi Unfortunately I am no longer an Editor in this repo. Perhaps @giantryansaul or @kjanderson2 can direct someone to assist?