Skip to content

An ePub-reader for react integrated with search powered by EpubJS.

License

Notifications You must be signed in to change notification settings

riyalohia/react-epub-search

Repository files navigation

React Epub Search

An ePub-reader for react intergrated with search powered by EpubJS #react #epubjs #webpack #babel #standardjs

Inspiration

React wrapper for EpubJS

React Reader is a react-wrapper for epub.js.

About

epub.js is a great library and this is a wrapper for it intergated with search. This wrapper makes it easy to use in a React-app.

This package publish 4 named exports:

  • EpubReader - Most used, a basic epub-reader to embed into your webapp
  • EpubView - Underlaying epub-canvas (wrapper for epub.js iframe)

Basic usage

npm install react-epub-search --save

import React, { useState } from 'react'
import { EpubReader } from 'react-epub-search'

const App = () => {
  // And your own state logic to persist state
  const [location, setLocation] = useState(null)
  const locationChanged = epubcifi => {
    // epubcifi is a internal string used by epubjs to point to a location in an epub. It looks like this: epubcfi(/6/6[titlepage]!/4/2/12[pgepubid00003]/3:0)
    setLocation(epubcifi)
  }
  return (
    <div style={{ height: '100vh' }}>
      <EpubReader
        location={location}
        locationChanged={locationChanged}
        url="https://react-reader.metabits.no/files/alice.epub"
      />
    </div>
  )
}

export default App

Handling Search Results

const App = () => {
  // And your own state logic to persist state
  const [location, setLocation] = useState(null)
  const locationChanged = epubcifi => {
    setLocation(epubcifi)
  }
  const onChangeSearchResults = (result) => console.log(results);

  return (
    <div style={{ height: '100vh' }}>
      <EpubReader
        location={location}
        locationChanged={locationChanged}
        onChangeSearchResults={onChangeSearchResults}
        url="https://react-reader.metabits.no/files/alice.epub"
      />
    </div>
  )
}

Other Functionalities:

  1. Theme (Light/Dark)
  2. Font Size Change
  3. Navigation Change (Used for right-left arrow keys)
  4. Image Click

About

An ePub-reader for react integrated with search powered by EpubJS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published