1.1.0 • Published 3 years ago

react-highlight-hooks v1.1.0

Weekly downloads
6
License
MIT
Repository
-
Last release
3 years ago

Travis build status Codecov branch npm downloads MIT License

gzip size size

Maintainability PRs Welcome

react-highlight-hooks

A React hook to highlight words.

Inspired by react-highlight-words

Getting started

npm install --save react-highlight-hooks

import React from "react";
import { useHighlighter } from "react-highlight-hooks";

function App() {
    const {
        textToSearch,
        setTextToSearch,
        searchTerms,
        setSearchTerms,
        activeIndex,
        setActiveIndex,
        totalHighlights,
        chunks,
    } = useHighlighter({
        textToSearch: "Hello World",
        searchTerms: "hello",
    });

    // ...
}

API

useHighlighter is a React hook that returns the following:

NameDescriptionType
textToSearchThis is the body of text that you will be highlighting words fromString
setTextToSearchThis is a function to update textToSearchFunction
searchTermsThis is a space-separated list of words that you are searching for in the textToSearchString
setSearchTermsThis is a function to update searchTermsFunction
activeIndexThis is the index of the currently-active highlighted wordNumber
setActiveIndexThis is a function to update activeIndexFunction
totalHighlightsThis is the number of words highlighted in textToSearchNumber
chunksThis is an array of object which describe the matches foundArray

Chunks

chunks is an array of object which describes the matches found. The objects have the following keys:

NameDescriptionType
activeIf this item is highlighted and is active, this is trueBoolean
startThis is the index from the textToSearch where this chunk of text beginsNumber
endThis is the index from the textToSearch where this chunk of text endsNumber
highlightIf this chunk of text is highlighted, this is trueBoolean
textThis is the chunk of text, which can be derived from the start and end indexesString

Example chunks

import React from "react";
import { useHighlighter } from "react-highlight-hooks";

function App() {
    const { chunks } = useHighlighter({
        textToSearch: "Hello World",
        searchTerms: "hello",
    });

    console.log(chunks);
    /*
    [
        {
            highlight: true,
            active: true,
            start: 0,
            end: 5,
            text: 'Hello'
        },
        {
            highlight: false,
            active: false,
            start: 5,
            end: 11,
            text: ' world'
        }
    ]
    */
}