import Router from 'next/router' import VItem from './VItem' import Text from './Text' import { useState } from 'react' import Cap from './Cap' export default (props:{ id:string, placeholder?:string, query:{cat:any, sort:any}, onsearch?:(string)=>void title:string,defaultValue?:string, squery:string, }) => { var isopen = props.query.cat || props.query.sort var [cat, setCat] = useState(props.query.cat) var [sort, setSort] = useState(props.query.sort); var prevtext = "" var iso = false; if (typeof window != "undefined") { var body = document.getElementById("search_options_" + props.id); if (body?.style?.maxHeight && body?.style?.maxHeight != "0px") { iso = true; } } var toggle = () => { var e = document.getElementById('smenu'); var body = document.getElementById("search_options_" + props.id); if (body.style.maxHeight == "0px") { body.style.transition = "max-height 0.5s ease"; body.style.maxHeight = "2000px"; body.style.marginTop = "4px"; e.style.opacity = "1" } else { e.style.opacity = isopen ? "1" : "0.3" body.style.marginTop = "0px"; body.style.transition = "all 0.2s cubic-bezier(0, 1, 0, 1)"; body.style.maxHeight = "0px"; } } return <>
{props.title}
{ toggle() }}>  {lang.addopts} 
{ e.target.select(); e.preventDefault() }} type='text' defaultValue={props.defaultValue} spellCheck={false} onKeyDown={(event) => { var el = event.target if (prevtext.length > 1) { if (el.value.length == 1) { delete Router.query.s; Router.push({ href: Router.asPath, query: Router.query }); } } prevtext = el.value if (event.key == "Enter") { if (props.squery) { if (el.value == "") { delete Router.query.s; Router.push({ href: Router.asPath, query: Router.query }); } else { Router.query.s = el.value; Router.push({ href: Router.asPath, query: Router.query }); } return; } var { explore, ...q } = JSON.parse(JSON.stringify(Router.query)) Router.push({ pathname: global.root + "/" + el.value, query: q }) props.onsearch?.(el.value) } } } />  go for search { var el = document.getElementById("search_input") as HTMLInputElement if (props.squery) { if (el.value == "") { delete Router.query.cat; Router.push({ href: Router.asPath, query: Router.query }); } else { Router.query.s = el.value; Router.push({ href: Router.asPath, query: Router.query }); } return; } var { explore, ...q } = JSON.parse(JSON.stringify(Router.query)) Router.push({ pathname: global.root + "/" + el.value, query: q }) props.onsearch?.(el.value) }} />
{(cat || sort) ?
{cat ? <> { toggle() }} />   : null} {sort ? { toggle() }} /> : null}
: null}
{lang.catfilter}
{ if (!cat) { toggle(); return } delete Router.query.cat; Router.push({ href: Router.asPath, query: Router.query }); setCat(null) }} /> { if (cat == 'software') { toggle(); return } Router.query.cat = 'software'; Router.push({ href: Router.asPath, query: Router.query }); setCat('software') }} /> { if (cat == 'data') { toggle(); return } Router.query.cat = 'data'; Router.push({ href: Router.asPath, query: Router.query }); setCat('data') }} /> { if (cat == 'learn') { toggle(); return } Router.query.cat = 'learn'; Router.push({ href: Router.asPath, query: Router.query }); setCat('learn') }} />
{ if (cat == 'device') { toggle(); return } Router.query.cat = 'device'; Router.push({ href: Router.asPath, query: Router.query }); setCat('device') }} /> { if (cat == 'news') { toggle(); return } Router.query.cat = 'news'; Router.push({ href: Router.asPath, query: Router.query }); setCat('news') }} /> { if (cat == 'qa') { toggle(); return } Router.query.cat = 'qa'; Router.push({ href: Router.asPath, query: Router.query }); setCat('qa') }} /> { if (cat == 'other') { toggle(); return } Router.query.cat = 'other'; Router.push({ href: Router.asPath, query: Router.query }); setCat('other') }} />
{lang.howtosort}
{ if (!sort) { toggle(); return } delete Router.query.sort; Router.push({ href: Router.asPath, query: Router.query }); setSort(null) }} /> { if (sort == 'cheapest') { toggle(); return } Router.query.sort = 'cheapest'; Router.push({ href: Router.asPath, query: Router.query }); setSort('cheapest') }} /> { if (sort == 'populars') { toggle(); return } Router.query.sort = 'populars'; Router.push({ href: Router.asPath, query: Router.query }); setSort('populars') }} />
}