1.0.2 • Published 1 year ago

react-searchbox-like-youtube v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Installation

npm install react-searchbox-like-youtube

or

yarn add react-searchbox-like-youtube

Import

import SearchBox from 'react-searchbox-like-youtube'

You can also import types if you needed.

import SearchBox, { ISearchResult } from 'react-searchbox-like-youtube'

Usage

With required props.

        <SearchBox
            onChange={handleOnChange}
            onClick={handleOnClick}
            onSearch={handleOnSearch}
            results={results}
        />

With all props.

        <SearchBox
            onChange={handleOnChange}
            onClick={handleOnClick}
            onSearch={handleOnSearch}
            nightMode={nightMode}
            results={results}
            placeholder='Search tutorials e.g. Javascript'
            sx={{
              lightBg: '#FFFFFF',
              darkBg: '#0F0F0F'
            }}
        />

Handlers

  //All parameters are optional.

const handleOnChange = (onChangeData: string): void => {
    //...
};

const handleOnClick = (onClickData: ISearchResult): void => {
    //...
};

const handleOnSearch = (onSearchData: any): void => {
    //...
};

Props

PropTypeDescription
onChange(onChangeData: string) => voidA function that triggers when you typing. Callback function parameter provides the input value.
onClick(onClickData: IOnClickData) => voidA function that triggers when you select any of results. Callback function parameter provides selected result's data.
onSearch(onSearchData: any) => voidA function that triggers when you click search button or press 'enter'. Callback function parameter provides selected results data.
resultsISearchResult[]Array of objects. More details.
placeHolderstringPlaceholder
sxobjectContains style properties. More details.

Results

Every single object in result array should have the following structure. id and title are required.

interface ISearchResult {
  id: number
  title: string
  href?: string
}

Stylings

sx?: {
    lightBg?: string,   // default  #FFFFFF
    darkBg?: string     // default  #0F0F0F
  }

Licence

MIT Alptuğ İdin