diff --git a/src/App.js b/src/App.js
index ad6d926..2796bc7 100644
--- a/src/App.js
+++ b/src/App.js
@@ -2,7 +2,7 @@ import React from 'react'
import { useTranslation } from 'react-i18next'
import { RsvpReader } from './components/RsvpReader'
-import { GutenbergSearch } from './components/GutenbergSearch'
+import { SearchBar } from './components/SearchBar'
import './App.css'
import { LangSelect } from './components/LangSelect'
@@ -13,11 +13,11 @@ export const App = () => {
<>
-
>
diff --git a/src/components/GutenbergSearch.js b/src/components/GutenbergSearch.js
deleted file mode 100644
index da79aa3..0000000
--- a/src/components/GutenbergSearch.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import React, { useState, useEffect, useCallback } from 'react'
-import axios from 'axios'
-import { useDispatch } from 'react-redux'
-import { debounce } from 'debounce'
-
-import { setText, setLang } from '../store/actions.js'
-
-async function search(searchTerm) {
- const regex = new RegExp(searchTerm, 'i')
- const result = []
- const data = await import('../../data/gutenberg.json').then(
- module => module.default
- )
- for (let entry of data) {
- if (regex.test(entry.title[0]) || regex.test(entry.author[0])) {
- result.push(entry)
- }
-
- if (result.length >= 20) break
- }
- return result
-}
-
-const Book = ({ entry }) => {
- const dispatch = useDispatch()
- const { author, language, rights, subject, title, id } = entry
-
- const handleClick = async () => {
- const url = `https://gutenberg.muperfredi.de/texts/${id}/stripped-body`
- const text = await axios.get(url).then(res => res.data.body)
- dispatch(setText(text))
- dispatch(setLang(language[0]))
- }
- return (
-
-
- {id} {title.join(' – ')}
-
-
{author[0]}
-
{language.join(' – ')}
-
-
-
-
-
- )
-}
-
-export const GutenbergSearch = () => {
- const [searchTerm, setSearchTerm] = useState('')
- const [result, setResult] = useState([])
- const [loading, setLoading] = useState(false)
-
- const debouncedSearch = useCallback(
- debounce(async term => {
- setLoading(true)
- await search(term).then(setResult)
- setLoading(false)
- }, 500),
- []
- )
-
- useEffect(() => {
- if (searchTerm.length > 0) {
- debouncedSearch(searchTerm)
- }
- }, [searchTerm, debouncedSearch])
-
- return (
-
-
Search for books in the Gutenberg Project
-
setSearchTerm(e.target.value)}
- >
- {loading && 'loading...'}
- {result.map(entry => (
-
- ))}
- {result.length === 0 &&
'no results to display'
}
-
- )
-}