diff --git a/.travis.yml b/.travis.yml index 0f2dd74..9304f9e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,6 @@ node_js: - 10 - 9 - 8 - - 7 - - 6 install: - yarn diff --git a/README.md b/README.md index a2b4c7f..28f1c54 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ -# react-title +# react-doc-title -[![NPM](https://img.shields.io/npm/v/@benjick/react-title.svg)](https://www.npmjs.com/package/@benjick/react-title) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) [![Build Status](https://travis-ci.org/benjick/react-title.svg?branch=master)](https://travis-ci.org/benjick/react-title) +[![NPM](https://img.shields.io/npm/v/react-doc-title.svg)](https://www.npmjs.com/package/@benjick/react-title) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) [![Build Status](https://travis-ci.org/benjick/react-title.svg?branch=master)](https://travis-ci.org/benjick/react-title) ## Install ```bash -yarn add @benjick/react-title +yarn add react-doc-title ``` ## Usage ```js import React from 'react' -import {Provider, Title, useTitle} from '@benjick/react-title' +import {Provider, Title, useTitle} from 'react-doc-title' function MyComponent() { useTitle('Contact') diff --git a/package.json b/package.json index e2b6759..4b7f435 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@benjick/react-title", + "name": "react-doc-title", "version": "0.1.0", "description": "", "author": "benjick", diff --git a/src/useTitles.js b/src/useTitles.js index b219b43..6d8fcc6 100644 --- a/src/useTitles.js +++ b/src/useTitles.js @@ -11,6 +11,20 @@ const useTitles = ({ title = '', divider = ' - ', append = false }) => { const [titles, setTitles] = useState([]) + let _titles = [{string: title}, ...titles] + if (!append) { + _titles.reverse() + } + useEffect(() => { + const oldTitle = document.title + return () => { + document.title = oldTitle + } + }, []) + useEffect(() => { + const newTitle = joinTitles(_titles, divider) + document.title = newTitle + }, [titles]) function unregister(id) { const index = titles.findIndex(item => item.id === id) if (index > -1) { @@ -19,28 +33,12 @@ const useTitles = ({ } } function register(object) { - const _titles = titles.slice() object.id = object.id ? object.id : uniqid() - _titles.push(object) - setTitles(_titles) + setTitles(_titles => [..._titles, object]) return () => { unregister(object.id) } } - let _titles = [{string: title}, ...titles] - if (!append) { - _titles.reverse() - } - const newTitle = joinTitles(_titles, divider) - useEffect(() => { - const oldTitle = document.title - return () => { - document.title = oldTitle - } - }, []) - useEffect(() => { - document.title = newTitle - }, [newTitle]) return { register } }