Skip to content

fix(insights): minor bugs/improvements to empty states #74167

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import {
} from 'sentry/views/insights/browser/resources/utils/useResourceFilters';
import {ModulePageProviders} from 'sentry/views/insights/common/components/modulePageProviders';
import {ModulesOnboarding} from 'sentry/views/insights/common/components/modulesOnboarding';
import {useHasFirstSpan} from 'sentry/views/insights/common/queries/useHasFirstSpan';
import {useModuleBreadcrumbs} from 'sentry/views/insights/common/utils/useModuleBreadcrumbs';
import {DomainSelector} from 'sentry/views/insights/common/views/spans/selectors/domainSelector';
import {ModuleName} from 'sentry/views/insights/types';
Expand All @@ -36,7 +37,7 @@ const {SPAN_OP, SPAN_DOMAIN} = BrowserStarfishFields;

function ResourcesLandingPage() {
const filters = useResourceModuleFilters();

const hasModuleData = useHasFirstSpan(ModuleName.RESOURCE);
const crumbs = useModuleBreadcrumbs('resource');

return (
Expand Down Expand Up @@ -69,14 +70,16 @@ function ResourcesLandingPage() {
<EnvironmentPageFilter />
<DatePageFilter />
</PageFilterBar>
<DomainSelector
emptyOptionLocation="top"
value={filters[SPAN_DOMAIN] || ''}
additionalQuery={[
...DEFAULT_RESOURCE_FILTERS,
`${SPAN_OP}:[${DEFAULT_RESOURCE_TYPES.join(',')}]`,
]}
/>
{hasModuleData && (
<DomainSelector
emptyOptionLocation="top"
value={filters[SPAN_DOMAIN] || ''}
additionalQuery={[
...DEFAULT_RESOURCE_FILTERS,
`${SPAN_OP}:[${DEFAULT_RESOURCE_TYPES.join(',')}]`,
]}
/>
)}
</FilterOptionsContainer>
<ModulesOnboarding moduleName={ModuleName.RESOURCE}>
<ResourceView />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import type {WebVitals} from 'sentry/views/insights/browser/webVitals/types';
import decodeBrowserTypes from 'sentry/views/insights/browser/webVitals/utils/queryParameterDecoders/browserType';
import {ModulePageProviders} from 'sentry/views/insights/common/components/modulePageProviders';
import {ModulesOnboarding} from 'sentry/views/insights/common/components/modulesOnboarding';
import {useHasFirstSpan} from 'sentry/views/insights/common/queries/useHasFirstSpan';
import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject';
import {useHasDataTrackAnalytics} from 'sentry/views/insights/common/utils/useHasDataTrackAnalytics';
import {useModuleBreadcrumbs} from 'sentry/views/insights/common/utils/useModuleBreadcrumbs';
Expand All @@ -47,6 +48,7 @@ export function WebVitalsLandingPage() {
const organization = useOrganization();
const location = useLocation();
const onboardingProject = useOnboardingProject();
const hasModuleData = useHasFirstSpan(ModuleName.VITAL);

const router = useRouter();

Expand Down Expand Up @@ -98,7 +100,7 @@ export function WebVitalsLandingPage() {
<EnvironmentPageFilter />
<DatePageFilter />
</PageFilterBar>
<BrowserTypeSelector />
{hasModuleData && <BrowserTypeSelector />}
</TopMenuContainer>
<ModulesOnboarding moduleName={ModuleName.VITAL}>
{onboardingProject && (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import webVitalsPreviewImg from 'sentry-images/insights/module-upsells/insights-
import emptyStateImg from 'sentry-images/spot/performance-waiting-for-span.svg';

import {LinkButton} from 'sentry/components/button';
import ExternalLink from 'sentry/components/links/externalLink';
import LoadingIndicator from 'sentry/components/loadingIndicator';
import Panel from 'sentry/components/panels/panel';
import {t, tct} from 'sentry/locale';
Expand Down Expand Up @@ -101,12 +100,7 @@ function ModulesOnboardingPanel({moduleName}: {moduleName: ModuleName}) {
<ContentContainer>
<Fragment>
<Header>{emptyStateContent.heading}</Header>
<p>
{emptyStateContent.description}{' '}
<ExternalLink href={MODULE_PRODUCT_DOC_LINKS[moduleName]}>
{t('Read Docs')}
</ExternalLink>
</p>
<p>{emptyStateContent.description}</p>
</Fragment>
<SplitContainer>
<ModulePreview moduleName={moduleName} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import {ModulePageProviders} from 'sentry/views/insights/common/components/modul
import {ModulesOnboarding} from 'sentry/views/insights/common/components/modulesOnboarding';
import {useSpanMetrics} from 'sentry/views/insights/common/queries/useDiscover';
import {useSpanMetricsSeries} from 'sentry/views/insights/common/queries/useDiscoverSeries';
import {useHasFirstSpan} from 'sentry/views/insights/common/queries/useHasFirstSpan';
import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject';
import {useHasDataTrackAnalytics} from 'sentry/views/insights/common/utils/useHasDataTrackAnalytics';
import {useModuleBreadcrumbs} from 'sentry/views/insights/common/utils/useModuleBreadcrumbs';
Expand Down Expand Up @@ -54,6 +55,7 @@ export function DatabaseLandingPage() {
const moduleName = ModuleName.DB;
const location = useLocation();
const onboardingProject = useOnboardingProject();
const hasModuleData = useHasFirstSpan(moduleName);

const selectedAggregate = DEFAULT_DURATION_AGGREGATE;
const spanDescription = decodeScalar(location.query?.['span.description'], '');
Expand Down Expand Up @@ -177,7 +179,7 @@ export function DatabaseLandingPage() {
<Layout.Body>
<Layout.Main fullWidth>
<ModuleLayout.Layout>
{!onboardingProject && !isCriticalDataLoading && (
{hasModuleData && !onboardingProject && !isCriticalDataLoading && (
<ModuleLayout.Full>
<NoDataMessage
Wrapper={AlertBanner}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {type ReactNode, useCallback} from 'react';
import {Fragment, type ReactNode, useCallback} from 'react';
import styled from '@emotion/styled';
import omit from 'lodash/omit';

Expand All @@ -19,6 +19,7 @@ import {useLocation} from 'sentry/utils/useLocation';
import useOrganization from 'sentry/utils/useOrganization';
import {ModulesOnboarding} from 'sentry/views/insights/common/components/modulesOnboarding';
import {ReleaseComparisonSelector} from 'sentry/views/insights/common/components/releaseSelector';
import {useHasFirstSpan} from 'sentry/views/insights/common/queries/useHasFirstSpan';
import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject';
import {useModuleBreadcrumbs} from 'sentry/views/insights/common/utils/useModuleBreadcrumbs';
import useCrossPlatformProject from 'sentry/views/insights/mobile/common/queries/useCrossPlatformProject';
Expand Down Expand Up @@ -47,6 +48,7 @@ export default function ScreensTemplate({
const onboardingProject = useOnboardingProject();
const location = useLocation();
const {isProjectCrossPlatform} = useCrossPlatformProject();
const hasModuleData = useHasFirstSpan(moduleName);

const handleProjectChange = useCallback(() => {
browserHistory.replace({
Expand Down Expand Up @@ -89,8 +91,12 @@ export default function ScreensTemplate({
<EnvironmentPageFilter />
<DatePageFilter />
</PageFilterBar>
<ReleaseComparisonSelector />
{additionalSelectors}
{hasModuleData && (
<Fragment>
<ReleaseComparisonSelector />
{additionalSelectors}
</Fragment>
)}
</Container>
<PageAlert />
<ErrorBoundary mini>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import useOrganization from 'sentry/utils/useOrganization';
import {ModulePageProviders} from 'sentry/views/insights/common/components/modulePageProviders';
import {ModulesOnboarding} from 'sentry/views/insights/common/components/modulesOnboarding';
import {ReleaseComparisonSelector} from 'sentry/views/insights/common/components/releaseSelector';
import {useHasFirstSpan} from 'sentry/views/insights/common/queries/useHasFirstSpan';
import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject';
import {useModuleBreadcrumbs} from 'sentry/views/insights/common/utils/useModuleBreadcrumbs';
import useCrossPlatformProject from 'sentry/views/insights/mobile/common/queries/useCrossPlatformProject';
Expand All @@ -33,6 +34,7 @@ import Onboarding from 'sentry/views/performance/onboarding';
export function PageloadModule() {
const organization = useOrganization();
const onboardingProject = useOnboardingProject();
const hasModuleData = useHasFirstSpan(ModuleName.SCREEN_LOAD);
const {isProjectCrossPlatform} = useCrossPlatformProject();

const crumbs = useModuleBreadcrumbs('screen_load');
Expand Down Expand Up @@ -69,7 +71,7 @@ export function PageloadModule() {
<EnvironmentPageFilter />
<DatePageFilter />
</PageFilterBar>
<ReleaseComparisonSelector />
{hasModuleData && <ReleaseComparisonSelector />}
</Container>
<PageAlert />
<ErrorBoundary mini>
Expand Down
30 changes: 19 additions & 11 deletions static/app/views/insights/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ import {t} from 'sentry/locale';
import {
DATA_TYPE as RESOURCE_DATA_TYPE,
DATA_TYPE_PLURAL as RESOURCE_DATA_TYPE_PLURAL,
MODULE_DOC_LINK as RESOURCES_MODULE_DOC_LINK,
MODULE_TITLE as RESOURCES_MODULE_TITLE,
} from 'sentry/views/insights/browser/resources/settings';
import {
DATA_TYPE as WEB_VITALS_DATA_TYPE,
DATA_TYPE_PLURAL as WEB_VITALS_DATA_TYPE_PLURAL,
MODULE_DOC_LINK as VITALS_MODULE_DOC_LINK,
MODULE_TITLE as VITALS_MODULE_TITLE,
} from 'sentry/views/insights/browser/webVitals/settings';
import {
Expand All @@ -18,29 +20,37 @@ import {
import {
DATA_TYPE as DB_DATA_TYPE,
DATA_TYPE_PLURAL as DB_DATA_TYPE_PLURAL,
MODULE_DOC_LINK as DB_MODULE_DOC_LINK,
MODULE_TITLE as DB_MODULE_TITLE,
} from 'sentry/views/insights/database/settings';
import {
DATA_TYPE as HTTP_DATA_TYPE,
DATA_TYPE_PLURAL as HTTP_DATA_TYPE_PLURAL,
MODULE_DOC_LINK as HTTP_MODULE_DOC_LINK,
MODULE_TITLE as HTTP_MODULE_TITLE,
} from 'sentry/views/insights/http/settings';
import {
DATA_TYPE as AI_DATA_TYPE,
DATA_TYPE_PLURAL as AI_DATA_TYPE_PLURAL,
MODULE_DOC_LINK as AI_MODULE_DOC_LINK,
MODULE_TITLE as AI_MODULE_TITLE,
} from 'sentry/views/insights/llmMonitoring/settings';
import {
DATA_TYPE as APP_STARTS_DATA_TYPE,
DATA_TYPE_PLURAL as APP_STARTS_DATA_TYPE_PLURAL,
MODULE_DOC_LINK as APP_STARTS_MODULE_DOC_LINK,
MODULE_TITLE as APP_STARTS_MODULE_TITLE,
} from 'sentry/views/insights/mobile/appStarts/settings';
import {
DATA_TYPE as SCREEN_LOAD_DATA_TYPE,
DATA_TYPE_PLURAL as SCREEN_LOAD_DATA_TYPE_PLURAL,
MODULE_DOC_LINK as SCREEN_LOADS_MODULE_DOC_LINK,
MODULE_TITLE as SCREEN_LOADS_MODULE_TITLE,
} from 'sentry/views/insights/mobile/screenload/settings';
import {MODULE_TITLE as MOBILE_UI_MODULE_TITLE} from 'sentry/views/insights/mobile/ui/settings';
import {
MODULE_DOC_LINK as MODULE_MODULE_DOC_LINK,
MODULE_TITLE as MOBILE_UI_MODULE_TITLE,
} from 'sentry/views/insights/mobile/ui/settings';
import {
DATA_TYPE as QUEUE_DATA_TYPE,
DATA_TYPE_PLURAL as QUEUE_DATA_TYPE_PLURAL,
Expand Down Expand Up @@ -100,18 +110,16 @@ export const MODULE_DATA_TYPES_PLURAL: Record<ModuleName, string> = {
};

export const MODULE_PRODUCT_DOC_LINKS: Record<ModuleName, string> = {
[ModuleName.DB]: 'https://docs.sentry.io/product/insights/database/',
[ModuleName.HTTP]: 'https://docs.sentry.io/product/insights/http/',
[ModuleName.DB]: DB_MODULE_DOC_LINK,
[ModuleName.HTTP]: HTTP_MODULE_DOC_LINK,
[ModuleName.CACHE]: CACHE_MODULE_DOC_LINK,
[ModuleName.QUEUE]: QUEUE_MODULE_DOC_LINK,
[ModuleName.SCREEN_LOAD]:
'https://docs.sentry.io/product/insights/mobile-vitals/screen-loads/',
[ModuleName.APP_START]:
'https://docs.sentry.io/product/insights/mobile-vitals/app-starts/',
[ModuleName.VITAL]: 'https://docs.sentry.io/product/insights/web-vitals/',
[ModuleName.RESOURCE]: 'https://docs.sentry.io/product/insights/assets/',
[ModuleName.AI]: 'https://docs.sentry.io/product/insights/llm-monitoring/',
[ModuleName.MOBILE_UI]: 'https://docs.sentry.io/product/insights/mobile-vitals/ui/',
[ModuleName.SCREEN_LOAD]: SCREEN_LOADS_MODULE_DOC_LINK,
[ModuleName.APP_START]: APP_STARTS_MODULE_DOC_LINK,
[ModuleName.VITAL]: VITALS_MODULE_DOC_LINK,
[ModuleName.RESOURCE]: RESOURCES_MODULE_DOC_LINK,
[ModuleName.AI]: AI_MODULE_DOC_LINK,
[ModuleName.MOBILE_UI]: MODULE_MODULE_DOC_LINK,
[ModuleName.OTHER]: '',
[ModuleName.ALL]: '',
};
Loading