import { css, cx } from '@emotion/css'; import { GrafanaTheme2 } from '@grafana/data/src'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; import { config } from '@grafana/runtime'; import { Button, LoadingPlaceholder, Modal, ModalsController, useStyles2 } from '@grafana/ui/src'; import { Trans, t } from 'app/core/internationalization'; import { generatePublicDashboardConfigUrl, generatePublicDashboardUrl, } from 'app/features/dashboard/components/ShareModal/SharePublicDashboard/SharePublicDashboardUtils'; import { useGetActiveUserDashboardsQuery } from '../../dashboard/api/publicDashboardApi'; const selectors = e2eSelectors.pages.UserListPage.UsersListPublicDashboardsPage.DashboardsListModal; export const DashboardsListModal = ({ email, onDismiss }: { email: string; onDismiss: () => void }) => { const styles = useStyles2(getStyles); const { data: dashboards, isLoading } = useGetActiveUserDashboardsQuery(email); return ( {isLoading ? (
) : ( dashboards?.map((dash) => (

{dash.dashboardTitle}

{config.featureToggles.newDashboardSharingComponent ? ( External link ) : ( Public dashboard URL )} {'•'} {config.featureToggles.newDashboardSharingComponent ? ( Sharing settings ) : ( Public dashboard settings )}

)) )}
); }; export const DashboardsListModalButton = ({ email }: { email: string }) => { const translatedDashboardListModalButtonText = t( 'public-dashboard-users-access-list.dashboard-modal.open-dashboard-list-text', 'Open dashboards list' ); return ( {({ showModal, hideModal }) => (