diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 41319e2..bf0cdd0 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -2,34 +2,37 @@ import { useLocation } from 'preact-iso'; import bible from '../nkjvbible' import { Dispatch, StateUpdater } from 'preact/hooks'; -// function SelectChapters(book){ -// let chapters = [] -// for (let i = 0; i < bible.find(a => a.name == book).chapters.length; i++) { -// chapters.push(i) -// } -// return ( -// chapters.map(a => ( -// -// )) -// ) -// } -export function Header({ storedBook, chapter, setChapter }: { storedBook: { +function SelectChapters(book){ + let chapters = [] + for (let i = 0; i < bible.find(a => a.name == book).chapters.length; i++) { + chapters.push(i) + } + return ( + chapters.map(a => ( + + )) + ) +} +export function Header({ book, chapter }: { book: { get: () => any; set: (book: any) => void; -}, chapter: number, setChapter: Dispatch> }) { +}, chapter: { + get: () => number; + set: (chapter: any) => void; +} }) { const { url } = useLocation(); return (
- book.set(e.target.value)}> {bible.map(a => ( ))} - {/* */} +
); } diff --git a/src/index.tsx b/src/index.tsx index 887b931..6973611 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -5,16 +5,12 @@ import { Header } from './components/Header.jsx'; import { Home } from './pages/Home/index.jsx'; import { NotFound } from './pages/_404.jsx'; import './style.css'; -import bible from './nkjvbible.js' -import { useEffect, useState } from 'preact/hooks'; + import { signal } from "@preact/signals"; export function App() { - const [book, setBook] = useState() - const [chapter, setChapter] = useState(0) - const [savedBook, setSavedBook] = useState("") - let storedBook = (function() { + let book = (function() { // The reactive data let state = signal(localStorage.getItem('book') || 'Genesis'); @@ -29,13 +25,27 @@ export function App() { return {get, set} }()) - + let chapter = (function() { + // The reactive data + let state = signal(localStorage.getItem('chapter') || 0); + + function get () { + return +state.value; + } + + function set (chapter) { + state.value = chapter; + localStorage.setItem("chapter", chapter) + } + + return {get, set} + }()) return ( -
+
- +
diff --git a/src/pages/Home/index.tsx b/src/pages/Home/index.tsx index def0a60..e976aab 100644 --- a/src/pages/Home/index.tsx +++ b/src/pages/Home/index.tsx @@ -1,14 +1,14 @@ import './style.css'; import bible from '../../nkjvbible'; -import { Dispatch, StateUpdater, useState } from 'preact/hooks'; -import { useRoute } from 'preact-iso'; - -export function Home({storedBook, chapter, setChapter}: {storedBook: { +export function Home({book, chapter}: {book: { get: () => any; set: (book: any) => void; -}, chapter: number, setChapter: Dispatch>}) { - console.log('chapter', chapter, 'book', storedBook.get()) +}, chapter: { + get: () => number; + set: (chapter: any) => void; +}}) { + return (
@@ -16,10 +16,10 @@ export function Home({storedBook, chapter, setChapter}: {storedBook: { -

{storedBook.get()}

+

{`${book.get()} ${+chapter.get() + 1}: 1-${bible.find(a => a.name == book.get()).chapters.length}`}

- {bible.find(a => a.name == storedBook.get()).chapters[chapter].verses.map(verse => ( -

+ {bible.find(a => a.name == book.get()).chapters[chapter.get()].verses.map(verse => ( +

{verse.num}: {verse.text}

))} @@ -28,11 +28,3 @@ export function Home({storedBook, chapter, setChapter}: {storedBook: { ); } -function Resource(props) { - return ( - -

{props.title}

-

{props.description}

-
- ); -}