diff --git a/cypress/e2e/dashboard-shared.cy.ts b/cypress/e2e/dashboard-shared.cy.ts
index 755297f5c52dd..986ea46b1f8ed 100644
--- a/cypress/e2e/dashboard-shared.cy.ts
+++ b/cypress/e2e/dashboard-shared.cy.ts
@@ -61,7 +61,8 @@ describe('Shared dashboard', () => {
})
cy.get('.InsightCard').should('have.length', 6)
+
// Make sure no element with text "There are no matching events for this query" exists
- cy.get('.insight-empty-state').should('not.exist')
+ cy.get('[data-attr="insight-empty-state"]').should('not.exist')
})
})
diff --git a/cypress/e2e/insights-navigation-open-directly.cy.ts b/cypress/e2e/insights-navigation-open-directly.cy.ts
index 1a2ab16fe7c95..ec350aaa67758 100644
--- a/cypress/e2e/insights-navigation-open-directly.cy.ts
+++ b/cypress/e2e/insights-navigation-open-directly.cy.ts
@@ -27,7 +27,7 @@ describe('Insights', () => {
it('can open a new funnels insight', () => {
insight.newInsight('FUNNELS')
- cy.get('.funnels-empty-state__title').should('exist')
+ cy.get('[data-attr="insight-empty-state"]').find('h2').should('exist')
})
it('can open a new paths insight', () => {
diff --git a/cypress/e2e/insights-navigation-open-sql-insight-first.cy.ts b/cypress/e2e/insights-navigation-open-sql-insight-first.cy.ts
index a902e861bacd6..9f07607a3b4c0 100644
--- a/cypress/e2e/insights-navigation-open-sql-insight-first.cy.ts
+++ b/cypress/e2e/insights-navigation-open-sql-insight-first.cy.ts
@@ -40,7 +40,7 @@ describe('Insights', () => {
it('can open a new funnels insight', () => {
insight.clickTab('FUNNELS')
- cy.get('.funnels-empty-state__title').should('exist')
+ cy.get('[data-attr="insight-empty-state"]').find('h2').should('exist')
})
it('can open a new retention insight', () => {
diff --git a/cypress/e2e/insights-saved.cy.ts b/cypress/e2e/insights-saved.cy.ts
index adaf2bf3c59c0..0ecd06b1f31c6 100644
--- a/cypress/e2e/insights-saved.cy.ts
+++ b/cypress/e2e/insights-saved.cy.ts
@@ -13,7 +13,8 @@ describe('Insights - saved', () => {
})
cy.task('resetInsightCache').then(() => {
cy.visit(urls.insightView(newInsightId)) // Full refresh
- cy.get('.insight-empty-state').should('exist') // There should be a loading state for a moment
+
+ cy.get('[data-attr="insight-empty-state"]').should('exist') // There should be a loading state for a moment
cy.wait('@getInsightsRefreshAsync').then(() => {
cy.get('[data-attr=trend-line-graph]').should('exist')
})
diff --git a/frontend/src/lib/components/Cards/InsightCard/InsightCard.scss b/frontend/src/lib/components/Cards/InsightCard/InsightCard.scss
index 1a56aa13c8fd4..c2549c2b8616a 100644
--- a/frontend/src/lib/components/Cards/InsightCard/InsightCard.scss
+++ b/frontend/src/lib/components/Cards/InsightCard/InsightCard.scss
@@ -37,13 +37,6 @@
padding: 0.5rem;
}
- .insight-empty-state {
- height: 100%; // Fix wonkiness when SpinnerOverlay is shown
- padding-top: 0;
- padding-bottom: 0;
- font-size: 0.875rem; // Reduce font size
- }
-
.LemonTable {
background: none;
border: none;
diff --git a/frontend/src/queries/nodes/InsightViz/InsightVizDisplay.tsx b/frontend/src/queries/nodes/InsightViz/InsightVizDisplay.tsx
index 6f6531a3669ac..09ad1d61ada55 100644
--- a/frontend/src/queries/nodes/InsightViz/InsightVizDisplay.tsx
+++ b/frontend/src/queries/nodes/InsightViz/InsightVizDisplay.tsx
@@ -83,11 +83,7 @@ export function InsightVizDisplay({
// Empty states that completely replace the graph
const BlockingEmptyState = (() => {
if (insightDataLoading) {
- return (
-
-
-
- )
+ return
}
if (validationError) {
diff --git a/frontend/src/queries/nodes/WebVitals/WebVitalsContent.tsx b/frontend/src/queries/nodes/WebVitals/WebVitalsContent.tsx
index 6d79435cfd0eb..c3242a3f0f2b5 100644
--- a/frontend/src/queries/nodes/WebVitals/WebVitalsContent.tsx
+++ b/frontend/src/queries/nodes/WebVitals/WebVitalsContent.tsx
@@ -43,11 +43,7 @@ export const WebVitalsContent = ({ webVitalsQueryResponse }: WebVitalsContentPro
// NOTE: `band` will only return `none` if the value is undefined,
// so this is basically the same check twice, but we need that to make TS happy
if (value === undefined || band === 'none') {
- return (
-
- You can speed this query up by changing the{' '}
- person properties mode{' '}
- setting.
-
- >
- ) : (
- <>
-
-
- {suggestedSamplingPercentage && !samplingPercentage ? (
-
- Need to speed things up? Try reducing the date range, removing breakdowns,
- or turning on .
-
- ) : suggestedSamplingPercentage && samplingPercentage ? (
- <>
- Still waiting around? You must have lots of data! Kick it up a notch with{' '}
- . Or try reducing the date range
- and removing breakdowns.
- >
- ) : (
- <>
- Need to speed things up? Try reducing the date range or removing breakdowns.
- >
- )}
-
+ You can speed this query up by changing the{' '}
+ person properties mode setting.
+
+ >
+ ) : (
+ <>
+
+ {suggestedSamplingPercentage && !samplingPercentage ? (
+
+ Need to speed things up? Try reducing the date range, removing breakdowns, or
+ turning on to speed things up.
+
+ ) : suggestedSamplingPercentage && samplingPercentage ? (
+ <>
+ Still waiting around? You must have lots of data! Kick it up a notch with{' '}
+ . Or try reducing the date range and
+ removing breakdowns.
+ >
+ ) : (
+ <>Need to speed things up? Try reducing the date range or removing breakdowns.>
+ )}
+
- <>
- Sometimes this happens. Try refreshing the page, reducing the date range, or removing
- breakdowns. If you're still having issues,{' '}
- {
- openSupportForm({ kind: 'bug', target_area: 'analytics' })
- }}
- >
- let us know
-
- .
- >
-
-
- {queryId ? (
-
- Query ID: {queryId}
-
- ) : null}
+
+
+
+ Your query took too long to complete
+
+
+
+ Sometimes this happens. Try refreshing the page, reducing the date range, or removing breakdowns. If
+ you're still having issues,{' '}
+ {
+ openSupportForm({ kind: 'bug', target_area: 'analytics' })
+ }}
+ >
+ let us know
+
+ .
+
+ There is a problem with this query
+ {/* Note that this phrasing above signals the issue is not intermittent, */}
+ {/* but rather that it's something with the definition of the query itself */}
+
+
+
{detail}
+
+
+ {detail.includes('Exclusion') && (
+
+
+ Learn more about funnels in PostHog docs
+
+
+
{title || 'There was a problem completing this query'}
+
+
+
+
+ {title || There was a problem completing this query}
+
{/* Note that this default phrasing above signals the issue is intermittent, */}
{/* and that perhaps the query will complete on retry */}
- {!excludeDetail && (
-
- We apologize for this unexpected situation. There are a couple of things you can do:
-
-
- First and foremost you can try again. We recommend you wait a moment before doing
- so.
-
-
- {
- openSupportForm({ kind: 'bug', target_area: 'analytics' })
- }}
- >
- If this persists, submit a bug report.
-
-
-
-
- )}
- {queryId && (
-
- Query ID: {queryId}
-
- )}
- {query && (
-
- Open in query debugger
-
- )}
-
+
+
+ {!excludeDetail && (
+
+ We apologize for this unexpected situation. There are a couple of things you can do:
+
+
+ First and foremost you can try again. We recommend you wait a moment before doing so.
+
+
+ {
+ openSupportForm({ kind: 'bug', target_area: 'analytics' })
+ }}
+ >
+ If this persists, submit a bug report.
+
+
- You’re almost there! Funnels require at least two steps before calculating.
- {actionable &&
- ' Once you have two steps defined, additional changes will recalculate automatically.'}
-
+
+
+
+
+
Add another step!
+
+ You're almost there! Funnels require at least two steps before calculating.
{actionable && (
-
- There is a problem with this query
- {/* Note that this phrasing above signals the issue is not intermittent, */}
- {/* but rather that it's something with the definition of the query itself */}
-