grafana/public/app/core/components/PageActionBar/PageActionBar.tsx
Khushi Jain 0645106184
Forms: Remove some gf-form appearances in Grafana (#66735)
* Forms: Remove gf-form appearances in Grafana

* Remove gf-form appearance

* Forms: Remove gf-form appearances in Grafana

* remove gf-form

* remove gf-form

* Remove gf-form appearance

* Remove gf-form appearance

* Remove gf-form appearance

* Update UserListAdminPage.tsx

* Update UserListAdminPage.tsx

* Update UserListAdminPage
2023-05-31 09:50:53 +02:00

54 lines
1.5 KiB
TypeScript

import React, { PureComponent } from 'react';
import { SelectableValue } from '@grafana/data';
import { LinkButton, FilterInput, InlineField } from '@grafana/ui';
import { SortPicker } from '../Select/SortPicker';
export interface Props {
searchQuery: string;
setSearchQuery: (value: string) => void;
linkButton?: { href: string; title: string; disabled?: boolean };
target?: string;
placeholder?: string;
sortPicker?: {
onChange: (sortValue: SelectableValue) => void;
value?: string;
getSortOptions?: () => Promise<SelectableValue[]>;
};
}
export default class PageActionBar extends PureComponent<Props> {
render() {
const {
searchQuery,
linkButton,
setSearchQuery,
target,
placeholder = 'Search by name or type',
sortPicker,
} = this.props;
const linkProps: typeof LinkButton.defaultProps = { href: linkButton?.href, disabled: linkButton?.disabled };
if (target) {
linkProps.target = target;
}
return (
<div className="page-action-bar">
<InlineField grow>
<FilterInput value={searchQuery} onChange={setSearchQuery} placeholder={placeholder} />
</InlineField>
{sortPicker && (
<SortPicker
onChange={sortPicker.onChange}
value={sortPicker.value}
getSortOptions={sortPicker.getSortOptions}
/>
)}
{linkButton && <LinkButton {...linkProps}>{linkButton.title}</LinkButton>}
</div>
);
}
}