/usr/share/grafana/public/app/plugins/datasource/azuremonitor/components/ResourcePicker
import { useState } from 'react'; import * as React from 'react'; import { t } from '@grafana/i18n'; import { Collapse, Space } from '@grafana/ui'; import { selectors } from '../../e2e/selectors'; import { AzureMonitorResource } from '../../types/query'; export interface ResourcePickerProps<T> { resources: T[]; onChange: (resources: T[]) => void; renderAdvanced: (resources: T[], onChange: (resources: T[]) => void) => React.ReactNode; } const AdvancedMulti = ({ resources, onChange, renderAdvanced }: ResourcePickerProps<string | AzureMonitorResource>) => { const [isAdvancedOpen, setIsAdvancedOpen] = useState(!!resources.length && JSON.stringify(resources).includes('$')); return ( <div data-testid={selectors.components.queryEditor.resourcePicker.advanced.collapse}> <Collapse label={t('components.advanced-multi.label-advanced', 'Advanced')} isOpen={isAdvancedOpen} onToggle={() => setIsAdvancedOpen(!isAdvancedOpen)} > {renderAdvanced(resources, onChange)} <Space v={2} /> </Collapse> </div> ); }; export default AdvancedMulti;
.
Edit
..
Edit
AdvancedMulti.test.tsx
Edit
AdvancedMulti.tsx
Edit
EntryIcon.tsx
Edit
NestedEntry.test.tsx
Edit
NestedEntry.tsx
Edit
NestedRow.test.tsx
Edit
NestedRow.tsx
Edit
ResourcePicker.test.tsx
Edit
ResourcePicker.tsx
Edit
Search.tsx
Edit
styles.ts
Edit
types.ts
Edit
utils.test.ts
Edit
utils.ts
Edit