SearchQueryBox.jsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. "use client";
  2. import React from "react";
  3. import { Search } from "lucide-react";
  4. import { Button } from "@/components/ui/button";
  5. import { Input } from "@/components/ui/input";
  6. import { Label } from "@/components/ui/label";
  7. export default function SearchQueryBox({
  8. qDraft,
  9. onQDraftChange,
  10. onSubmit,
  11. currentQuery,
  12. isSubmitting,
  13. canSearch,
  14. }) {
  15. return (
  16. <div className="grid gap-2">
  17. <Label htmlFor="q">Suchbegriff</Label>
  18. <div className="flex flex-col gap-2 sm:flex-row sm:items-center">
  19. <Input
  20. id="q"
  21. name="q"
  22. value={qDraft}
  23. onChange={(e) => onQDraftChange(e.target.value)}
  24. placeholder="z. B. Bridgestone, Rechnung, Kundennummer…"
  25. disabled={isSubmitting}
  26. />
  27. <Button type="submit" disabled={!canSearch || isSubmitting}>
  28. <Search className="h-4 w-4" />
  29. Suchen
  30. </Button>
  31. </div>
  32. {currentQuery ? (
  33. <div className="text-xs text-muted-foreground">
  34. Aktuelle Suche:{" "}
  35. <span className="ml-1 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground">
  36. {currentQuery}
  37. </span>
  38. </div>
  39. ) : (
  40. <div className="text-xs text-muted-foreground">
  41. Tipp: Die Suche ist URL-basiert und kann als Link geteilt werden.
  42. </div>
  43. )}
  44. </div>
  45. );
  46. }