From a9887d4a31315566c2cd78114f3d4d7bba2824ca Mon Sep 17 00:00:00 2001 From: Richard Wei <54336863+WaysonWei@users.noreply.github.com> Date: Wed, 20 Apr 2022 17:04:05 +1200 Subject: [PATCH] Homepage Filter Component (#6762) --- .../components/FilterSearchBar.module.css | 10 + .../datatables/components/FilterSearchBar.tsx | 45 +++ .../components/SortbySelector.module.css | 10 + .../datatables/components/SortbySelector.tsx | 62 ++++ .../environments/environment.service/index.ts | 1 - app/portainer/environments/queries.ts | 1 - .../EnvironmentList.module.css | 28 ++ .../home/EnvironmentList/EnvironmentList.tsx | 323 +++++++++++++++++- app/portainer/home/HomepageFilter.tsx | 44 +++ app/portainer/home/types.ts | 5 + 10 files changed, 511 insertions(+), 18 deletions(-) create mode 100644 app/portainer/components/datatables/components/FilterSearchBar.module.css create mode 100644 app/portainer/components/datatables/components/FilterSearchBar.tsx create mode 100644 app/portainer/components/datatables/components/SortbySelector.module.css create mode 100644 app/portainer/components/datatables/components/SortbySelector.tsx create mode 100644 app/portainer/home/HomepageFilter.tsx diff --git a/app/portainer/components/datatables/components/FilterSearchBar.module.css b/app/portainer/components/datatables/components/FilterSearchBar.module.css new file mode 100644 index 000000000..c7ba2815a --- /dev/null +++ b/app/portainer/components/datatables/components/FilterSearchBar.module.css @@ -0,0 +1,10 @@ +.searchBar { + padding: 8px; + border: 1px solid var(--border-color); + border-radius: 5px; +} + +.searchBar .iconSpan { + display: inline-block; + margin-right: 5px; +} diff --git a/app/portainer/components/datatables/components/FilterSearchBar.tsx b/app/portainer/components/datatables/components/FilterSearchBar.tsx new file mode 100644 index 000000000..44f0b1903 --- /dev/null +++ b/app/portainer/components/datatables/components/FilterSearchBar.tsx @@ -0,0 +1,45 @@ +import { useLocalStorage } from '@/portainer/hooks/useLocalStorage'; + +import styles from './FilterSearchBar.module.css'; + +interface Props { + value: string; + placeholder?: string; + onChange(value: string): void; +} + +export function FilterSearchBar({ + value, + placeholder = 'Search...', + onChange, +}: Props) { + return ( +
+ +