@@ -35,6 +35,10 @@ import {
3535 isTimeSeriesDisplayType ,
3636} from '@hyperdx/common-utils/dist/core/utils' ;
3737import { getBlockingRequiredFilterNames } from '@hyperdx/common-utils/dist/dashboardFilterValues' ;
38+ import {
39+ getPromqlFilters ,
40+ getSqlFilters ,
41+ } from '@hyperdx/common-utils/dist/filters' ;
3842import {
3943 displayTypeRequiresSource ,
4044 isBuilderChartConfig ,
@@ -51,12 +55,12 @@ import {
5155import { isMissingFiltersMacro } from '@hyperdx/common-utils/dist/macros' ;
5256import {
5357 AlertState ,
58+ BroadcastFilter ,
5459 ChartConfigWithDateRange ,
5560 ChartVariable ,
5661 DashboardContainer as DashboardContainerSchema ,
5762 DashboardFilter ,
5863 DisplayType ,
59- Filter ,
6064 getSampleWeightExpression ,
6165 isLogSource ,
6266 isTraceSource ,
@@ -471,7 +475,7 @@ const Tile = ({
471475 onSettled ?: ( ) => void ;
472476 granularity : SQLInterval | undefined ;
473477 onTimeRangeSelect : ( start : Date , end : Date ) => void ;
474- filters ?: Filter [ ] ;
478+ filters ?: BroadcastFilter [ ] ;
475479 variables ?: ChartVariable [ ] ;
476480 /** The dashboard's required filters that have nothing selected. */
477481 unsatisfiedRequiredFilters ?: DashboardFilter [ ] ;
@@ -654,6 +658,15 @@ const Tile = ({
654658 missingRequiredFilterNames . length > 0 &&
655659 displayTypeRequiresSource ( chart . config . displayType ) ;
656660
661+ const sqlFilters = useMemo (
662+ ( ) => ( filters ? getSqlFilters ( filters ) : undefined ) ,
663+ [ filters ] ,
664+ ) ;
665+ const promqlFilters = useMemo (
666+ ( ) => ( filters ? getPromqlFilters ( filters ) : undefined ) ,
667+ [ filters ] ,
668+ ) ;
669+
657670 useEffect ( ( ) => {
658671 if ( isPromqlSavedChartConfig ( chart . config ) ) {
659672 if ( source != null ) {
@@ -664,6 +677,7 @@ const Tile = ({
664677 dateRange,
665678 granularity,
666679 variables : tileVariables ,
680+ filters : promqlFilters ,
667681 } ) ;
668682 }
669683 return ;
@@ -676,7 +690,7 @@ const Tile = ({
676690 ...chart . config ,
677691 dateRange,
678692 granularity,
679- filters,
693+ filters : sqlFilters ,
680694 variables : tileVariables ,
681695 } ) ;
682696 } else if ( source != null ) {
@@ -695,7 +709,7 @@ const Tile = ({
695709 sampleWeightExpression : getSampleWeightExpression ( source ) ,
696710 dateRange,
697711 granularity,
698- filters,
712+ filters : sqlFilters ,
699713 variables : tileVariables ,
700714 } ) ;
701715 }
@@ -736,13 +750,21 @@ const Tile = ({
736750 ? source . bodyExpression
737751 : undefined ,
738752 sampleWeightExpression : getSampleWeightExpression ( source ) ,
739- filters,
753+ filters : sqlFilters ,
740754 variables : tileVariables ,
741755 metricTables : isMetricSource ? source . metricTables : undefined ,
742756 } ) ;
743757 }
744758 }
745- } , [ source , chart , dateRange , granularity , filters , tileVariables ] ) ;
759+ } , [
760+ source ,
761+ chart ,
762+ dateRange ,
763+ granularity ,
764+ sqlFilters ,
765+ promqlFilters ,
766+ tileVariables ,
767+ ] ) ;
746768
747769 const [ hovered , setHovered ] = useState ( false ) ;
748770
@@ -813,7 +835,7 @@ const Tile = ({
813835 where : builderConfig ?. where ,
814836 whereLanguage : builderConfig ?. whereLanguage ,
815837 select : builderConfig ?. select ,
816- filters,
838+ filters : sqlFilters ,
817839 } ,
818840 ) ;
819841
@@ -823,10 +845,10 @@ const Tile = ({
823845 ) ;
824846
825847 const filterWarning = useMemo ( ( ) => {
826- const doFiltersExist = ! ! filters ?. filter (
848+ const doFiltersExist = ! ! sqlFilters ?. filter (
827849 f => ( f . type === 'lucene' || f . type === 'sql' ) && f . condition . trim ( ) ,
828850 ) ?. length ;
829- const doLuceneFiltersExist = ! ! filters ?. filter (
851+ const doLuceneFiltersExist = ! ! sqlFilters ?. filter (
830852 f => f . type === 'lucene' && f . condition . trim ( ) ,
831853 ) ?. length ;
832854
@@ -862,7 +884,7 @@ const Tile = ({
862884 < IconZoomExclamation size = { 16 } color = "var(--color-text-danger)" />
863885 </ Tooltip >
864886 ) ;
865- } , [ filters , queriedConfig , source ] ) ;
887+ } , [ sqlFilters , queriedConfig , source ] ) ;
866888
867889 const replaySearchUrl = useMemo ( ( ) => {
868890 return buildDashboardReplaySearchUrl ( {
@@ -1656,7 +1678,7 @@ const EditTileModal = ({
16561678 isSaving ?: boolean ;
16571679 onSave : ( chart : Tile ) => void ;
16581680 variables ?: ChartVariable [ ] ;
1659- getDashboardFilters : ( sourceId : string | undefined ) => Filter [ ] ;
1681+ getDashboardFilters : ( sourceId : string | undefined ) => BroadcastFilter [ ] ;
16601682 unsatisfiedRequiredFilters ?: DashboardFilter [ ] ;
16611683} ) => {
16621684 const contextZIndex = useZIndex ( ) ;
@@ -2435,7 +2457,7 @@ function DBDashboardPage({
24352457 // `sourceId`. Shared with the tile editor so its preview queries what the
24362458 // tile does.
24372459 const getTileFilters = useCallback (
2438- ( sourceId : string | undefined ) : Filter [ ] => [
2460+ ( sourceId : string | undefined ) : BroadcastFilter [ ] => [
24392461 {
24402462 type : whereLanguage === 'sql' ? 'sql' : 'lucene' ,
24412463 condition : where ,
0 commit comments