import BLOG from '@/blog.config' import { useGlobal } from '@/lib/global' import Link from 'next/link' import { useRouter } from 'next/router' import { useEffect, useState } from 'react' import SearchInput from './components/SearchInput' import LayoutBase from './LayoutBase' export const LayoutSearch = props => { const { keyword, posts } = props const router = useRouter() useEffect(() => { setTimeout(() => { const container = typeof document !== 'undefined' && document.getElementById('container') if (container && container.innerHTML) { const re = new RegExp(`${keyword}`, 'gim') container.innerHTML = container.innerHTML.replace(re, `${keyword}`) } }, 100) }, [router.events]) 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) } useEffect(() => { setTimeout(() => { if (keyword) { const targets = document.getElementsByClassName('replace') for (const container of targets) { if (container && container.innerHTML) { const re = new RegExp(`${keyword}`, 'gim') container.innerHTML = container.innerHTML.replace( re, `${keyword}` ) } } } }, 100) }, []) return
{postsToShow.map(p => (

{p.title}

by {BLOG.AUTHOR} on {p.date?.start_date || p.createdTime} | {p.category} | {/* 2 Comments */}

{p.summary}

))}
{' '} {hasMore ? locale.COMMON.MORE : `${locale.COMMON.NO_MORE} 😰`}{' '}
}