Path: blob/main/components/dashboard/src/workspaces/WorkspacesSearchBar.tsx
2500 views
/**1* Copyright (c) 2023 Gitpod GmbH. All rights reserved.2* Licensed under the GNU Affero General Public License (AGPL).3* See License.AGPL.txt in the project root for license information.4*/56import { FunctionComponent } from "react";7import { StartWorkspaceModalKeyBinding } from "../App";8import DropDown from "../components/DropDown";9import search from "../icons/search.svg";10import { LinkButton } from "@podkit/buttons/LinkButton";11import { useInstallationConfiguration } from "../data/installation/installation-config-query";1213type WorkspacesSearchBarProps = {14searchTerm: string;15limit: number;16onSearchTermUpdated(s: string): void;17onLimitUpdated(limit: number): void;18};1920export const WorkspacesSearchBar: FunctionComponent<WorkspacesSearchBarProps> = ({21searchTerm,22limit,23onSearchTermUpdated,24onLimitUpdated,25}) => {26const { data: installationConfig } = useInstallationConfiguration();27const isDedicatedInstallation = !!installationConfig?.isDedicatedInstallation;2829return (30<div className={!isDedicatedInstallation ? "app-container xl:!pr-4 py-5 flex" : "py-5 flex"}>31<div className="flex relative h-10 my-auto">32<img src={search} title="Search" className="filter-grayscale absolute top-3 left-3" alt="search icon" />33<input34type="search"35className="w-64 pl-9 border-0"36placeholder="Filter Workspaces"37value={searchTerm}38onChange={(v) => {39onSearchTermUpdated(v.target.value);40}}41/>42</div>43<div className="flex-1" />44<div className="py-2"></div>45<div className="py-2 pl-3">46<DropDown47prefix="Limit: "48customClasses="w-32"49activeEntry={`${limit}`}50entries={[51{52title: "50",53onClick: () => {54onLimitUpdated(50);55},56},57{58title: "100",59onClick: () => {60onLimitUpdated(100);61},62},63{64title: "200",65onClick: () => {66onLimitUpdated(200);67},68},69]}70/>71</div>72<LinkButton href={"/new"} className="ml-2 gap-1.5 h-10">73New Workspace <span className="opacity-60 hidden md:inline">{StartWorkspaceModalKeyBinding}</span>74</LinkButton>75</div>76);77};787980