|
3 | 3 | import React, { useEffect, useState } from "react" |
4 | 4 | import axios from "axios" |
5 | 5 | import { Button } from "@/components/ui/button" |
6 | | -import { |
7 | | - Select, |
8 | | - SelectContent, |
9 | | - SelectItem, |
10 | | - SelectTrigger, |
11 | | - SelectValue, |
12 | | -} from "@/components/ui/select" |
13 | | -import { Input } from "@/components/ui/input" |
14 | 6 | import { Label } from "@/components/ui/label" |
15 | 7 | import { Card, CardContent } from "@/components/ui/card" |
16 | 8 | import { DatePicker } from "@/components/ui/date-picker" |
| 9 | +import { SearchableSelect } from "@/components/ui/searchable-select" |
17 | 10 |
|
18 | 11 |
|
19 | 12 | const AWS_INSTANCE: any = {} |
@@ -467,68 +460,44 @@ export function QuerySection({ vendor, onDataFetch, setLoading }: QuerySectionPr |
467 | 460 | <CardContent className="flex flex-wrap gap-4 p-1 items-end justify-center"> |
468 | 461 | <div className="flex flex-col space-y-1.5"> |
469 | 462 | <Label htmlFor="instance">Instance</Label> |
470 | | - <Select |
| 463 | + <SearchableSelect |
| 464 | + id="instance" |
471 | 465 | value={searchFilter.instance} |
472 | | - onValueChange={(val) => handleFilterChange("instance", val)} |
473 | | - > |
474 | | - <SelectTrigger id="instance" className="w-[180px]"> |
475 | | - <SelectValue placeholder="Select Instance" /> |
476 | | - </SelectTrigger> |
477 | | - <SelectContent> |
478 | | - {(assoInstance || instance).map((e) => ( |
479 | | - <SelectItem key={e} value={e}> |
480 | | - {e} |
481 | | - </SelectItem> |
482 | | - ))} |
483 | | - </SelectContent> |
484 | | - </Select> |
| 466 | + onValueChange={(value) => handleFilterChange("instance", value)} |
| 467 | + options={assoInstance || instance} |
| 468 | + placeholder="Select Instance" |
| 469 | + searchPlaceholder="Search instance..." |
| 470 | + emptyMessage="No instance found." |
| 471 | + /> |
485 | 472 | </div> |
486 | 473 |
|
487 | 474 | <div className="flex flex-col space-y-1.5"> |
488 | 475 | <Label htmlFor="region">Region</Label> |
489 | | - <Select |
| 476 | + <SearchableSelect |
| 477 | + id="region" |
490 | 478 | value={searchFilter.region} |
491 | | - onValueChange={(val) => handleFilterChange("region", val)} |
| 479 | + onValueChange={(value) => handleFilterChange("region", value)} |
| 480 | + options={assoRegion || region} |
| 481 | + placeholder="Select Region" |
| 482 | + searchPlaceholder="Search region..." |
| 483 | + emptyMessage="No region found." |
492 | 484 | disabled={vendor === "AWS" && !searchFilter.instance} |
493 | | - > |
494 | | - <SelectTrigger id="region" className="w-[180px]"> |
495 | | - <SelectValue placeholder="Select Region" /> |
496 | | - </SelectTrigger> |
497 | | - <SelectContent> |
498 | | - {(assoRegion || region).map((e) => ( |
499 | | - <SelectItem key={e} value={e}> |
500 | | - {e} |
501 | | - </SelectItem> |
502 | | - ))} |
503 | | - </SelectContent> |
504 | | - </Select> |
| 485 | + /> |
505 | 486 | </div> |
506 | 487 |
|
507 | 488 | {(vendor === "AWS" || vendor === "AZURE") && ( |
508 | 489 | <div className="flex flex-col space-y-1.5"> |
509 | 490 | <Label htmlFor="az">AZ</Label> |
510 | | - <Select |
| 491 | + <SearchableSelect |
| 492 | + id="az" |
511 | 493 | value={searchFilter.az} |
512 | | - onValueChange={(val) => handleFilterChange("az", val)} |
| 494 | + onValueChange={(value) => handleFilterChange("az", value)} |
| 495 | + options={vendor === "AZURE" ? ["ALL", "1", "2", "3", "Single"] : assoAZ || az} |
| 496 | + placeholder="Select AZ" |
| 497 | + searchPlaceholder="Search AZ..." |
| 498 | + emptyMessage="No AZ found." |
513 | 499 | disabled={vendor === "AWS" && !searchFilter.region} |
514 | | - > |
515 | | - <SelectTrigger id="az" className="w-[180px]"> |
516 | | - <SelectValue placeholder="Select AZ" /> |
517 | | - </SelectTrigger> |
518 | | - <SelectContent> |
519 | | - {vendor === "AZURE" |
520 | | - ? ["ALL", "1", "2", "3", "Single"].map((e) => ( |
521 | | - <SelectItem key={e} value={e}> |
522 | | - {e} |
523 | | - </SelectItem> |
524 | | - )) |
525 | | - : (assoAZ || az).map((e) => ( |
526 | | - <SelectItem key={e} value={e}> |
527 | | - {e} |
528 | | - </SelectItem> |
529 | | - ))} |
530 | | - </SelectContent> |
531 | | - </Select> |
| 500 | + /> |
532 | 501 | </div> |
533 | 502 | )} |
534 | 503 |
|
|
0 commit comments