@open-wa/whatsapp-button

Webcomponent whatsapp-button following open-wc recommendations

Usage no npm install needed!

<script type="module">
  import openWaWhatsappButton from 'https://cdn.skypack.dev/@open-wa/whatsapp-button';
</script>

README

Published on webcomponents.org npm version Maintainability

Buy me a coffee

<whatsapp-button>

Easily start WhatsApp conversations! Based on @material/mwc-button.

<whatsapp-button phone="123456" dialcode="44" text="hello!" label="Start Chat"></whatsapp-button>

Live Demo ↗

Screenshot of whatsapp-button

Installation

npm i @open-wa/whatsapp-button

then import

<script type="module">
  import '@open-wa/whatsapp-button/whatsapp-button.js';
</script>

Or grab from unpkg.com CDN:

<script src="https://unpkg.com/@open-wa/whatsapp-button?module" type="module"></script>

Usage

<whatsapp-button phone="7712345678" dialcode="44" text="hey there lets chat!" label="Start Chat"></whatsapp-button>

You can check out an example of it working here: JsFiddle

How do I bypass WhatsApp's fugly redirect site?

I'm glad you asked! You can simply add the bypass attribute. This will result in opening the WhatsApp chat WITHOUT being redirected!

<whatsapp-button phone="7712345678" dialcode="44" text="hey there lets chat!" label="Start Chat" bypass></whatsapp-button>

Linting with ESLint, Prettier, and Types

To scan the project for linting errors, run

npm run lint

To automatically fix many linting errors, run

npm run format

You can format using ESLint and Prettier individually as well

npm run format:eslint
npm run format:prettier

Testing with Karma

To run the suite of karma tests, run

npm run test

or to run them in compatibility mode for legacy browsers

npm run test:compatibility

To run the tests in watch mode (for TDD, for example), run

npm run test:watch

or

npm run test:compatibility

Testing with Karma via BrowserStack

To run the suite of karma tests in BrowserStack, run

npm run test:bs

Managing Test Snapshots

You can manage the test snapshots using

npm run test:update-snapshots

or

npm run test:prune-snapshots

Demoing with

To run a local instance of Storybook for your component, run

npm run storybook

To build a production version of Storybook, run

npm run storybook:build

Local Demo with es-dev-server

npm start

To run a local development server that serves the basic demo located in demo/index.html

npm start:compatibility

To run a local development server in compatibility mode for older browsers that serves the basic demo located in demo/index.html