File size: 2,184 Bytes
05abd64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function SearchBox({ value, onChange, onSearch, loading }) {
    const handleSubmit = (event) => {
        event.preventDefault();
        if (!value?.trim() || !onSearch) return;
        onSearch(value.trim());
    };

    return (
        <form onSubmit={handleSubmit} className="mx-auto w-full max-w-[860px]">

            <div className="group relative">

                <div className="pointer-events-none absolute inset-0 rounded-full border-2 border-black/10 transition-all group-focus-within:border-black/40" />

                <div className="relative flex items-center gap-4 rounded-full border-2 border-black bg-white px-6 py-4 shadow-[8px_8px_0px_0px_rgba(0,0,0,0.05)] transition-all group-hover:shadow-[10px_10px_0px_0px_rgba(0,0,0,0.08)] md:px-9 md:py-5">

                    <span className="material-symbols-outlined shrink-0 text-black">search</span>

                    <input

                        type="text"

                        value={value}

                        onChange={(event) => onChange?.(event.target.value)}

                        disabled={loading}

                        placeholder="Nhập từ khóa hoặc dán URL của tin tức..."

                        className="w-full border-0 bg-transparent text-base font-medium text-black placeholder:text-slate-400 focus:ring-0 md:text-lg"

                    />

                    <button

                        type="submit"

                        disabled={loading || !value?.trim()}

                        className="flex shrink-0 items-center gap-2 rounded-full bg-black px-5 py-2.5 text-xs font-black uppercase tracking-[0.15em] text-white transition-all hover:bg-slate-800 disabled:cursor-not-allowed disabled:bg-slate-400 md:px-8"

                    >

                        <span className="material-symbols-outlined text-base">

                            {loading ? 'progress_activity' : 'arrow_forward'}

                        </span>

                        <span className="hidden sm:inline">Tìm kiếm</span>

                    </button>

                </div>

            </div>

        </form>
    );
}

export default SearchBox;