fix: add local state to query filter input

This commit is contained in:
Mathias Schopmans
2024-02-27 16:16:24 +01:00
committed by Mathias Schopmans
parent a07dd91c3d
commit 452def1318

View File

@@ -1,4 +1,4 @@
import { ChangeEvent } from "react"; import { ChangeEvent, useEffect, useState } from "react";
import Search from "../Icons/Search"; import Search from "../Icons/Search";
import styles from "./QueryFilter.module.css"; import styles from "./QueryFilter.module.css";
@@ -8,16 +8,23 @@ interface QueryFilterProps {
onChange: (value: string) => void; onChange: (value: string) => void;
} }
export function QueryFilter({ value, onChange }: QueryFilterProps) { export function QueryFilter({ value, onChange }: QueryFilterProps) {
const [val, setVal] = useState(value);
const _onChange = (e: ChangeEvent<HTMLInputElement>) => { const _onChange = (e: ChangeEvent<HTMLInputElement>) => {
setVal(e.target.value);
onChange(e.target.value); onChange(e.target.value);
}; };
useEffect(() => {
setVal(value);
}, [value]);
return ( return (
<div className={styles.filter}> <div className={styles.filter}>
<input <input
className={styles.input} className={styles.input}
id="search"
type="search" type="search"
value={value} value={val}
onChange={_onChange} onChange={_onChange}
/> />
<button className={styles.button} type="submit"> <button className={styles.button} type="submit">