search-button.tsx 911 B

12345678910111213141516171819202122232425262728293031323334
  1. "use client";
  2. import { MagnifyingGlass } from "@phosphor-icons/react/dist/ssr/MagnifyingGlass";
  3. import { Button } from "@pythnetwork/component-library/Button";
  4. import { Skeleton } from "@pythnetwork/component-library/Skeleton";
  5. import { useMemo } from "react";
  6. import { useIsSSR } from "react-aria";
  7. import { useToggleSearchDialog } from "./search-dialog";
  8. export const SearchButton = () => {
  9. const toggleSearchDialog = useToggleSearchDialog();
  10. return (
  11. <Button
  12. onPress={toggleSearchDialog}
  13. beforeIcon={MagnifyingGlass}
  14. variant="outline"
  15. size="sm"
  16. rounded
  17. >
  18. <SearchText />
  19. </Button>
  20. );
  21. };
  22. const SearchText = () => {
  23. const isSSR = useIsSSR();
  24. return isSSR ? <Skeleton width={7} /> : <SearchTextImpl />;
  25. };
  26. const SearchTextImpl = () => {
  27. const isMac = useMemo(() => navigator.userAgent.includes("Mac"), []);
  28. return isMac ? "⌘ K" : "Ctrl K";
  29. };