import BLOG from '@/blog.config' import { useGlobal } from '@/lib/global' import Link from 'next/link' import { useEffect, useState } from 'react' import SearchInput from './components/SearchInput' import LayoutBase from './LayoutBase' export const LayoutSearch = props => { const { keyword, posts } = props useEffect(() => { setTimeout(() => { const container = document.getElementById('container') if (container && container.innerHTML) { const re = new RegExp(`${keyword}`, 'gim') container.innerHTML = container.innerHTML.replace(re, `${keyword}`) } }, 100) }) const { locale } = useGlobal() const [page, updatePage] = useState(1) let hasMore = false const postsToShow = posts ? Object.assign(posts).slice(0, BLOG.POSTS_PER_PAGE * page) : [] if (posts) { const totalCount = posts.length hasMore = page * BLOG.POSTS_PER_PAGE < totalCount } const handleGetMore = () => { if (!hasMore) return updatePage(page + 1) } return ( Search - {keyword} {postsToShow?.map(p => ( {p.title} {p.summary} ))} {' '} {hasMore ? locale.COMMON.MORE : `${locale.COMMON.NO_MORE} 😰`}{' '} ) }