@adwatch/share

1.1.1 • Public • Published

share

Social share module
Example: http://share.module.frontend.production.adwatch.ru/

Install

$ npm install --save @adwatch/share

Usage

import Share from '@adwatch/share';		// for es6

var Share = require('@adwatch/share/build');	// for es5


let share = new Share(options);

Social types

fb - facebook.com
vk - vk.com
ok - odnoklassniki.ru
tw - twitter.com
gp - google +
mr - mailRu

Get started

With html data attributes

<div class="share" data-share="" data-share-img="/img/share.jpg" data-share-title="Test page" data-share-description="Test page description" data-share-url="https://test.page">
	<div class="share__item">
		<div class="share__item-ico" data-share-type="vk"><span>VK</span>
			<div class="share__item-count" data-share-count="vk"></div>
		</div>
	</div>
	<div class="share__item">
		<div class="share__item-ico" data-share-type="ok"><span>OK</span>
			<div class="share__item-count" data-share-count="ok"></div>
		</div>
	</div>
	<div class="share__item">
		<div class="share__item-ico" data-share-type="fb"><span>FB</span>
			<div class="share__item-count" data-share-count="fb"></div>
		</div>
	</div>
	<div class="share__item">
		<div class="share__item-ico" data-share-type="tw"><span>TW</span></div>
	</div>
	<div class="share__item">
		<div class="share__item-ico" data-share-type="gp"><span>G+</span>
			<div class="share__item-count" data-share-count="gp"></div>
		</div>
	</div>
	<div class="share__item">
		<div class="share__item-ico" data-share-type="mr"><span>MR</span></div>
	</div>
</div>
let share = new Share();

Without html data attributes

<div class="share">
	<div class="share__item share__item_vk">
		<div class="share__item-ico"><span>VK</span>
			<div class="share__item-count"></div>
		</div>
	</div>
	<div class="share__item share__item_ok">
		<div class="share__item-ico"><span>OK</span>
			<div class="share__item-count"></div>
		</div>
	</div>
	<div class="share__item share__item_fb">
		<div class="share__item-ico"><span>FB</span>
			<div class="share__item-count"></div>
		</div>
	</div>
	<div class="share__item share__item_tw">
		<div class="share__item-ico"><span>TW</span></div>
	</div>
	<div class="share__item share__item_gp">
		<div class="share__item-ico"><span>G+</span>
			<div class="share__item-count"></div>
		</div>
	</div>
	<div class="share__item share__item_mr">
		<div class="share__item-ico"><span>MR</span></div>
	</div>
</div>
// jQuery

let share = new Share();

$(function() {

	let data = {
		type: 'tw',
		description: 'Test page description',
		img: 'http://test.page/img.jpg',
		title: 'Test page title',
		url: 'http://test.page'
	};

	// load count 
	share.count('vk', function(val) {
		  $('.share__item_vk').find('.share__item-count').text(val);
	})

	// cusomize options share
	$('.share__item_vk').click(function() {
		share.share(data);
	});
	
	// default options share
	$('.share__item_fb').click(function() {
		share.share('fb');
	});
	
	//... etc.
	
});

API

Options

Name Type Description
fbAppId string facebook app id for sharing custom data (img, title, description). Default - null
dataPostfix string data attribute postfix (example: data-share, data-share-img, ets.). Default - share
loadCount boolean sharing counter. Default - false (loaded only fb, vk & ok)
callbackPopupShareOpen function popup open callback
callbackPopupShareClosed function popup closed callback
callbackCountLoaded function count loaded callback

All option items is optional

Data attributes

Name Default Description
data-{dataPostfix} data-share set on buttons wrap element
data-{dataPostfix}-type data-share-type social type (vk, fb, tw, gp, ok), set on buttons
data-{dataPostfix}-img data-share-img image link for sharing, set on buttons or buttons wrap element (optional)
data-{dataPostfix}-title data-share-title title for sharing, set on buttons or buttons wrap element (optional)
data-{dataPostfix}-description data-share-description description for sharing, set on buttons or buttons wrap element (optional)
data-{dataPostfix}-url data-share-url optional - sharing page url, set on buttons or buttons wrap element (optional)

Callbacks option arguments

callbackPopupShareOpen arguments: ({ social type }, current button)

callbackPopupShareClosed arguments: ({ social type }, current button)

callbackCountLoaded arguments: ({ social type, count number }, current button)

callbackError arguments: (error code, error message)

Error codes

1 - Browser blocked popups

Methods

share.share(data);

data: social type or object collection .

let data = {
	description: {share description},
	img: {share img},
	title: {share title},
	type: {share type},
	url: {share url}
};

share.count(type, url, callback)

Get count method.

Name Type Description
type string social type
url string page url
callback function count load callback, return count value in argument

License

MIT ©

Readme

Keywords

none

Package Sidebar

Install

npm i @adwatch/share

Weekly Downloads

1

Version

1.1.1

License

ISC

Last publish

Collaborators

  • adwatch