Files
pedwfrontend/components/myportal/searchcases.js
T

97 lines
3.6 KiB
JavaScript

import Link from "next/link";
import { useState } from "react";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function SearchCases() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const [query, setQuery] = useState("");
const [validationError, setValidationError] = useState("");
const handleParam = (setValue) => (e) => setValue(e.target.value);
const basicSearch = (event) => {
event.preventDefault();
if (query == "" || query == null) {
setValidationError(true);
} else {
setValidationError(false);
console.log(query);
// /searchresults
router.push({
pathname: "/myportal/searchresults",
query: { q: query },
});
}
};
return (
<div className="card card-3" id="casescomment-card">
<form onSubmit={basicSearch}>
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:searchcases-card-title")}
</h3>
<div
className={
validationError
? "govuk-form-group govuk-form-group--error"
: "govuk-form-group "
}
>
<div id="event-name-hint" className="govuk-hint ">
{t("myportal:searchcases-card-search-hint")}:
<br />
<span className="govuk-body-s">
{" "}
<span className="govuk-!-font-weight-bold">
{t(
"myportal:searchcases-card-search-example-label"
)}
:
</span>{" "}
CAS-00009-W8N6W4
</span>
</div>
{validationError && (
<span
id="basicSearch-error"
className="govuk-error-message"
>
<span className="govuk-visually-hidden">
Error:
</span>{" "}
Case reference is required
</span>
)}
<input
className="govuk-input"
id="event-name"
name="event-name"
type="text"
aria-describedby="event-name-hint"
onChange={handleParam(setQuery)}
/>
</div>
<div className="govuk-form-group">
<button
type="submit"
name="search"
className="govuk-button"
>
{t("myportal:searchcases-card-button")}
</button>
</div>
<Link href="/advancedsearch">
<a>{t("myportal:searchcases-card-advanced-link")}</a>
</Link>
</div>
</form>
</div>
);
}