Volto social sharing integration addon.
To be used with mrs-developer
, see Volto docs for further usage information.
To inject the component in the project add the AppExtras
configuration in the config.js
file.
A suggested way is to use appExtras
from settings object (docs):
import SocialSharing from '@codesyntax/volto-social-sharing/SocialSharing';
export const settings = {
...defaultSettings,
appExtras: [
...defaultSettings.appExtras,
{
match: '',
component: SocialSharing,
},
],
};
You can determine in which views the component will be displayed
export const settings = {
...defaultSettings,
appExtras: [
...defaultSettings.appExtras,
{
match: {
path: ['**/ekitaldiak/**', '**/eventos/**', '/eu/albisteak/**', '/es/noticias/**'],
exact: true,
},
component: SocialSharing
},
],
};
There are several parameters that can be customized
- socialElements: List of social items.
- By default:
- WhatsApp (Only on mobile)
- Telegram (Only on mobile)
- Options:
- name (string): Social name
- fa_name (array): Font awesome icon name. (It is necessary to add it in array format to determine the type of icon. Example: ["fab", "facebook-f"])
- color (string): CSS color value.
- sharing_url (string): Link of the social network to share. (Examples)
- only_mobile (bool) *optional: Set to true if it will only be displayed in the mobile view.
- By default:
- bannerPosition: Position of social items banner.
- By default:
- In the desktop view centered on the right.
- In the mobile view centered on the bottom.
- Options:
- defaultPositions["desktop"] = {React DOM Style}
- defaultPositions["mobile"] = {React DOM Style}
- By default:
- logoSize: Font Awesome logo size. (Doc)
- By default: "lg".
- Options: "lg" | "xs" | "sm" | "2x" | "3x" | "4x" | "5x" | "6x" | "7x" | "8x" | "9x" | "10x"
- buttonSize: Button with and height.
- By default: "30px"
// import default social list
import {DEFAULT_SOCIAL} from '@codesyntax/volto-social-sharing/defaultSettings';
// Push new item
DEFAULT_SOCIAL.push({
name: "Pinterest",
fa_name: ["fab", "pinterest-p"],
color: "#c8232c",
sharing_url: "http://pinterest.com/pin/create/link/?url=",
id: "pt"
});
export const settings = {
...defaultSettings,
appExtras: [
...defaultSettings.appExtras,
{
match: {
path: ['**/ekitaldiak/**', '**/eventos/**', '/eu/albisteak/**', '/es/noticias/**'],
exact: true,
},
component: SocialSharing,
props:{
socialElements: DEFAULT_SOCIAL
}
},
],
};
// import default social list
import {DEFAULT_SOCIAL} from '@codesyntax/volto-social-sharing/defaultSettings';
// Find social item by id
let facebook = DEFAULT_SOCIAL.find(social => social.id == "fb");
if (facebook) {
facebook.color = "red";
}
export const settings = {
...defaultSettings,
appExtras: [
...defaultSettings.appExtras,
{
match: {
path: ['**/ekitaldiak/**', '**/eventos/**', '/eu/albisteak/**', '/es/noticias/**'],
exact: true,
},
component: SocialSharing,
props:{
socialElements: DEFAULT_SOCIAL
}
},
],
};
// import default social list
import {DEFAULT_SOCIAL} from '@codesyntax/volto-social-sharing/defaultSettings';
// Remove social item by id
const index = DEFAULT_SOCIAL.findIndex(social => social.id === "fb");
if (index !== undefined) DEFAULT_SOCIAL.splice(index, 1);
export const settings = {
...defaultSettings,
appExtras: [
...defaultSettings.appExtras,
{
match: {
path: ['**/ekitaldiak/**', '**/eventos/**', '/eu/albisteak/**', '/es/noticias/**'],
exact: true,
},
component: SocialSharing,
props:{
socialElements: DEFAULT_SOCIAL
}
},
],
};
See DEVELOP.md.
Feel free to send PRs.
- By Throwaway icons - https://thenounproject.com/search/?q=share&i=1343423, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=89416553
MIT © CodeSyntax
See LICENSE.md for details.