tsntsumi / use-line-liff

React Provider and Context component for LINE LIFF app

Home Page:https://www.npmjs.com/package/use-line-liff

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

use-line-liff

Getting started

Install

$ npm i use-line-liff

Setup Provider

import { LiffProvider } from 'use-line-liff'

function MyApp({ children }) {
  return (
    <LiffProvider liffId={process.env.NEXT_PUBLIC_LIFF_ID}>
      {children}
    </LiffProvider>
  )
}

export default MyApp

Use React Hook

import { useEffect } from 'react'
import { useLiff } from 'use-line-liff'

const Home = () => {
  const { liff } = useLiff()
  useEffect(() => {
    if (!liff) return;
    if (!liff.isLoggedIn()) {
      liff.login()
    }
    liff.getProfile()
      .then(profile => {
        console.log(profile)
      })
  },[liff])
  return (
    <div>
      <main>
        <h1>Hello liff</h1>
      </main>
    </div>
  )
}

export default Home

Usage

Mock

Enabled @line/liff-mock plugin.

function MyApp({ Component, pageProps }: AppProps) {
  return (
    <LiffProvider
      liffId={process.env.NEXT_PUBLIC_LIFF_ID as string}
      mock={{
        enable: true
      }}
    >
      <Component {...pageProps} />
    </LiffProvider>
  )
}

Return custom value.

function MyApp({ Component, pageProps }: AppProps) {
  return (
    <LiffProvider
      liffId={process.env.NEXT_PUBLIC_LIFF_ID as string}
      mock={{
        enable: true,
        mockDidLoaded: (p) => {
          return {
            ...p,
            getProfile: {
                ...p.getProfile,
                userId: 'custom-user-id'
            }
          }
        }
      }}
    >
    <Component {...pageProps} />
    </LiffProvider>
  )
}

About

React Provider and Context component for LINE LIFF app

https://www.npmjs.com/package/use-line-liff

License:MIT License


Languages

Language:TypeScript 100.0%