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

@drivekyte/react-native-kustomer

v3.1.0

Published

Kustomer V2 SDK for React Native

Downloads

22

Readme

react-native-kustomer

Kustomer SDK for React Native

Getting started

$ yarn add @drivekyte/react-native-kustomer

Set Kotlin version to 1.7.0

Using React Native >= 0.60

Linking the package manually is not required anymore with Autolinking.

Using React Native < 0.60

$ react-native link @drivekyte/react-native-kustomer

Install native Kustomer libraries

Android

Gradle

Include the library in your android/app/build.gradle:

gradle implementation 'com.kustomer.kustomersdk:kustomersdk:0.3.7'

Maven

<dependency>
  <groupId>com.kustomer.kustomersdk</groupId>
  <artifactId>kustomersdk</artifactId>
  <version>0.3.7</version>
  <type>pom</type>
</dependency>

iOS

CocoaPods

The preferred installation method is with CocoaPods. Add the following to your Podfile:

pod 'Kustomer', :git => 'https://github.com/kustomer/customer-ios.git', :tag => '0.3.9'

Carthage

For Carthage, add the following to your Cartfile:

github "kustomer/customer-ios" ~> 0.3.9

Configure

Android

Add the following three activities to your AndroidManifest.xml:

<activity android:name="com.kustomer.kustomersdk.Activities.KUSSessionsActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:theme="@style/CustomKustomerTheme" />
<activity android:name="com.kustomer.kustomersdk.Activities.KUSChatActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:theme="@style/CustomKustomerTheme" />
<activity android:name="com.kustomer.kustomersdk.Activities.KUSKnowledgeBaseActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:theme="@style/CustomKustomerTheme" />

Initialize Kustomer in your MainApplication onCreate function:

import com.kustomer.kustomersdk.Kustomer;

public class MainApplication extends Application implements ReactApplication {
  @Override
  public void onCreate() {
    Kustomer.init(this, API_KEY);
  }
}

To customize Kustomer's theme, add a new style in styles.xml overwriting the values you want to replace:

<style name="MySupportTheme" parent="CustomKustomerTheme">
  <item name="colorPrimary">@color/kusToolbarBackgroundColor</item>
  <item name="colorPrimaryDark">@color/kusStatusBarColor</item>
  <item name="colorAccent">@color/kusColorAccent</item>
  <item name="kus_back_image">@drawable/ic_arrow_back_black_24dp</item>
  <item name="kus_dismiss_image">@drawable/ic_close_black_24dp</item>
  <item name="kus_new_session_button_image">@drawable/ic_edit_white_20dp</item>
</style>

To edit Kustomer's UI colors, add the desired color to be replaced in colors.xml:

<!-- CHAT HISTORY SCREEN -->
<color name="kusToolbarBackgroundColor">#000000</color>
<color name="kusStatusBarColor">#000000</color>
<color name="kusToolbarTintColor">#DD2C00</color>
<color name="kusSessionListBackground">#909090</color>
<color name="kusSessionItemBackground">#909090</color>
<color name="kusSessionItemSelectedBackground">#55FFFFFF</color>
<color name="kusSessionTitleColor">#FFFFFF</color>
<color name="kusSessionDateColor">#FFFFFF</color>
<color name="kusSessionSubtitleColor">#FFFFFF</color>
<color name="kusSessionUnreadColor">#FFFFFF</color>
<color name="kusSessionUnreadBackground">#3F51B5</color>
<color name="kusSessionPlaceholderBackground">#909090</color>
<color name="kusSessionPlaceholderLineColor">#55FFFFFF</color>
<color name="kusNewSessionButtonColor">#DD2C00</color>
<color name="kusNewSessionTextColor">#FFFFFF</color>

<!-- CHAT SCREEN -->
<color name="kusToolbarNameColor">#FFFFFF</color>
<color name="kusToolbarGreetingColor">#FFFFFF</color>
<color name="kusToolbarSeparatorColor">#BDBDBD</color>
<color name="kusToolbarUnreadTextColor">#FFFFFF</color>
<color name="kusToolbarUnreadBackground">#aacc0000</color>
<color name="kusEmailInputBackground">#FFFFFF</color>
<color name="kusEmailInputBorderColor">#DD2C00</color>
<color name="kusEmailInputPromptColor">#FFFFFF</color>
<color name="kusChatListBackground">#909090</color>
<color name="kusChatItemBackground">#909090</color>
<color name="kusChatTimestampTextColor">#FFFFFF</color>
<color name="kusCompanyBubbleColor">#000000</color>
<color name="kusCompanyTextColor">#FFFFFF</color>
<color name="kusUserBubbleColor">#DD2C00</color>
<color name="kusUserTextColor">#000000</color>
<color name="kusSendButtonColor">#DD2C00</color>
<color name="kusInputBarTintColor">#DD2C00</color>
<color name="kusInputBarHintColor">#EEEEEE</color>
<color name="kusInputBarTextColor">#FFFFFF</color>
<color name="kusInputBarBackground">#000000</color>
<color name="kusInputBarSeparatorColor">#BDBDBD</color>
<color name="kusInputBarAttachmentIconColor">#FFFFFF</color>
<color name="kusOptionPickerSeparatorColor">#BDBDBD</color>
<color name="kusOptionPickerButtonBorderColor">#2962FF</color>
<color name="kusOptionPickerButtonTextColor">#2962FF</color>
<color name="kusOptionPickerButtonBackground">#F5F5F5</color>

<!-- SATISFACTION FORM -->
<color name="kusCSatRatingPromptTextColor">#FFFFFF</color>
<color name="kusCSatQuestionsTextColor">#FFFFFF</color>
<color name="kusCSatRatingLabelsTextColor">#FFFFFF</color>
<color name="kusCSatFeedbackTextColor">#FFFFFF</color>
<color name="kusCSatEditTextColor">#DD2C00</color>
<color name="kusCSatCommentBorderColor">#FFFFFF</color>
<color name="kusCSatCommentInputTextColor">#FFFFFF</color>
<color name="kusCSatSubmitButtonColor">#DD2C00</color>
<color name="kusCSatSubmitTextColor">#000000</color>

iOS

Initialize Kustomer in your AppDelegate.m didFinishLaunchingWithOptions function:

#import <Kustomer/Kustomer.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  [Kustomer initializeWithAPIKey:@"API_KEY"];
  return YES;
}

Usage

Import the library to use its methods:

import KustomerSDK from '@drivekyte/react-native-kustomer';

Methods

identify(token: String): void

Identify current user with a token, in order to recover its previous data, such as conversations and profile

KustomerSDK.identify(token);

describeCustomer(customerData: customerData): void

Add data to the customer profile. You can use some pre-defined fields, or create custom ones from the dashboard.

KustomerSDK.describeCustomer(data);

resetTracking: void

Unlink the current identified user

KustomerSDK.resetTracking();

presentSupport: void

Show Kustomer's chat support UI

KustomerSDK.presentSupport();

openConversationsCount: Promise

Get how many open conversations the user has

await KustomerSDK.openConversationsCount();

presentKnowledgeBase: void

Show Kustomer's Knowledge Base (FAQ) website in a browser modal

KustomerSDK.presentKnowledgeBase();

setCurrentPageName(screen: String): void

KustomerSDK.setCurrentPageName(screen);

customLayout(layout: layout): void (iOS ONLY)

Customize Kustomer's UI using your own style. For Android, check the Configure section above.

KustomerSDK.customLayout(layout);

Types

customerData

The fields email and phone are mandatory. custom can contain any number of custom fields, which can be created from the Kustomer dashboard.

type customerData {
  email: String,
  phone: String,
  custom: {String}
}

layout

All values are String that contain a HEX color (#FFFFFF), except for keyboardAppearance, which should be either set to light or dark. Use the fields for which you want to replace the color, the default color will be used if the field is missing.

type layout {
    NavigationBar: {
        background: String,
        tint: String,
        name: String,
        greeting: String
    },
    SessionsTable: {
        background: String
    },
    ChatSessionTableCell: {
        background: String,
        selectedBackground: String,
        title: String,
        date: String,
        subtitle: String
    },
    ChatPlaceholderTableCell: {
        background: String,
        line: String
    },
    NewSessionButton: {
        color: String
    },
    ChatTable: {
        background: String
    },
    ChatMessageTableCell: {
        background: String,
        companyText: String,
        companyBubble: String,
        userBubble: String
    },
    TypingIndicator: {
        color: String
    },
    InputBar: {
        sendButton: String,
        tint: String,
        placeholder: String,
        text: String,
        background: String,
        keyboardAppearance: 'light' | 'dark'
    },
    Rating: {
        lowScaleLabel: String,
        highScaleLabel: String
    },
    FeedbackTableCell: {
        feedbackText: String,
        editText: String
    },
    SatisfactionFormTableCell: {
        submitButtonBackground: String,
        submitButtonText: String,
        commentQuestion: String,
        commentBoxBorder: String,
        satisfactionQuestion: String,
        commentBoxText: String,
        introductionQuestion: String
    },
    Email: {
        background: String,
        border: String,
        prompt: String
    },
    EndChat: {
        background: String,
        text: String,
        border: String
    }
}