embed-fbcmt-client

client package for embed-fbcmt
3,225 2
Install
npm install embed-fbcmt-client
Latest Version:0.1.32
Vue:3
License:MIT
Last Updated:Oct 7, 2023
Links: GitHub  ·  npm
Maintainer: tachibana-shin

embed-fbcmt (Embed Facebook Comment Plugin)

npm version

GitHub license GitHub Issues Code Score Code Score

Test CodeQL ESLint Prettier TypeScript Checker Declaration Try build

This is a plugin allow embed Facebook Comment Plugin to website SPA

Demo: https://anime-vsub.github.io/embed-fbcmt?href=https://google.com&no_socket=true&num_posts=20

Usage

Append this code to location show comment:

<iframe src="https://anime-vsub.github.io/embed-fbcmt?<options>"></iframe>

All mentioned options of FB comment plugin are available. In addition, you can also use some of the following custom options:

Option Type Default Description
lang code lang en_US language the plugin will display (example: vi_VN, ja_JP...)
loader_bg color rgba(0,0,0,0.8) adjust background color when plugin is loading
loader_text color white adjust text color when plugin is loading
origin host name * domain name will be sent the message. you can specify the hostname of the embedded website to increase security
no_socket boolean false whether to disable WebSocket to save resources
active boolean true if this plugin is enabled if false then the plugin displays a blank page
no_popup boolean false remove loading popup and use error warnings when you customize them

Package NPM

This package allows you to send change requests to the plugin without losing the SDK reload time. A useful thing for SPA website

Install

pnpm add embed-fbcmt-client

You can use this plugin anywhere I will give an example with Vue

<template>
   <button @click="setPropValue(cmtRef, 'lang', 'ja_JP')">Change lang to Japanese</button>

   <iframe ref="cmtRef" src="https://anime-vsub.github.io/embed-fbcmt?https://google.com&lang=en_US" />

</template>

<script lang="ts" setup>
import { ref } from "vue"
import { setPropValue } from "embed-fbcmt-client/vue"

const cmtRef = ref<HTMLIFrameElement>()
</script>

Functions

function setPropValue(el: HTMLIFrameElement | Ref<HTMLIFrameElement>, propName: string, value: string): Promise<void>
  • Options:
    • el: iframe embed plugin
    • propName: option name set
    • value: value set to prop
  • Return: Promise<void> a promise that resolves when the set option succeeds or fails
function listenEvent(
  el: HTMLIFrameElement,
  cb: (event: { type: "success" | "loading" | "error"; code: CODES }) => void
): () => void
  • Options:
    • el: iframe embed plugin
    • cb: this function is cakked every time something changes in the embed
  • Return: () => void cancel
function listenResize(
  el: HTMLIFrameElement,
  type: "width" | "height",
  cb: (size: number) => void
): () => void
  • Options:
    • el: iframe embed plugin
    • cb: this function is cakked every time something changes in the embed
  • Return: () => void cancel

For vue

function useEmbed(el: HTMLIFrameElement | Ref<HTMLIFrameElement>): {
   code: CODES // code status embed
   loading: boolean // true is loading
   error: boolean // true is error emited
}

component:

<template>
   <EmbedFbCmt href="https://google.com" />
</template>

<script lang="ts" setup>
import { EmbedFbCmt } from "embed-fbcmt-client/vue"
</script>
function useEmbedSize(
  el: HTMLIFrameElement | Ref<HTMLIFrameElement | undefined> | undefined
): {
  width: Ref<number>
  height: Ref<number>
}
function useEmbedHeight(
  el: HTMLIFrameElement | Ref<HTMLIFrameElement | undefined> | undefined
): Ref<number>

Related Packages

vue-lite-youtube-embed

A private by default, faster and cleaner YouTube embed component for Vue applica...

215,443 63
vssue

A vue-powered issue-based comment plugin

42,127 791
@vssue/utils

Vssue internal utils

40,091 791
@vssue/vuepress-plugin-vssue

Vuepress plugin for vssue

36,471 791
@vssue/api-github-v3

Vssue api for github v3

34,927 791

Version History

Version Released Vue License
0.1.32 ^3.2.45 MIT
0.1.31 ^3.2.45 MIT
0.1.30 ^3.2.45 MIT
0.1.29 ^3.2.45 MIT
0.1.28 ^3.2.45 MIT