@@ -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 ,
@@ -467,7 +471,7 @@ const Tile = ({
467471 onSettled ?: ( ) => void ;
468472 granularity : SQLInterval | undefined ;
469473 onTimeRangeSelect : ( start : Date , end : Date ) => void ;
470- filters ?: Filter [ ] ;
474+ filters ?: BroadcastFilter [ ] ;
471475 variables ?: ChartVariable [ ] ;
472476 /** The dashboard's required filters that have nothing selected. */
473477 unsatisfiedRequiredFilters ?: DashboardFilter [ ] ;
@@ -650,6 +654,15 @@ const Tile = ({
650654 missingRequiredFilterNames . length > 0 &&
651655 displayTypeRequiresSource ( chart . config . displayType ) ;
652656
657+ const sqlFilters = useMemo (
658+ ( ) => ( filters ? getSqlFilters ( filters ) : undefined ) ,
659+ [ filters ] ,
660+ ) ;
661+ const promqlFilters = useMemo (
662+ ( ) => ( filters ? getPromqlFilters ( filters ) : undefined ) ,
663+ [ filters ] ,
664+ ) ;
665+
653666 useEffect ( ( ) => {
654667 if ( isPromqlSavedChartConfig ( chart . config ) ) {
655668 if ( source != null ) {
@@ -660,6 +673,7 @@ const Tile = ({
660673 dateRange,
661674 granularity,
662675 variables : tileVariables ,
676+ filters : promqlFilters ,
663677 } ) ;
664678 }
665679 return ;
@@ -672,7 +686,7 @@ const Tile = ({
672686 ...chart . config ,
673687 dateRange,
674688 granularity,
675- filters,
689+ filters : sqlFilters ,
676690 variables : tileVariables ,
677691 } ) ;
678692 } else if ( source != null ) {
@@ -691,7 +705,7 @@ const Tile = ({
691705 sampleWeightExpression : getSampleWeightExpression ( source ) ,
692706 dateRange,
693707 granularity,
694- filters,
708+ filters : sqlFilters ,
695709 variables : tileVariables ,
696710 } ) ;
697711 }
@@ -732,13 +746,21 @@ const Tile = ({
732746 ? source . bodyExpression
733747 : undefined ,
734748 sampleWeightExpression : getSampleWeightExpression ( source ) ,
735- filters,
749+ filters : sqlFilters ,
736750 variables : tileVariables ,
737751 metricTables : isMetricSource ? source . metricTables : undefined ,
738752 } ) ;
739753 }
740754 }
741- } , [ source , chart , dateRange , granularity , filters , tileVariables ] ) ;
755+ } , [
756+ source ,
757+ chart ,
758+ dateRange ,
759+ granularity ,
760+ sqlFilters ,
761+ promqlFilters ,
762+ tileVariables ,
763+ ] ) ;
742764
743765 const [ hovered , setHovered ] = useState ( false ) ;
744766
@@ -809,7 +831,7 @@ const Tile = ({
809831 where : builderConfig ?. where ,
810832 whereLanguage : builderConfig ?. whereLanguage ,
811833 select : builderConfig ?. select ,
812- filters,
834+ filters : sqlFilters ,
813835 } ,
814836 ) ;
815837
@@ -819,10 +841,10 @@ const Tile = ({
819841 ) ;
820842
821843 const filterWarning = useMemo ( ( ) => {
822- const doFiltersExist = ! ! filters ?. filter (
844+ const doFiltersExist = ! ! sqlFilters ?. filter (
823845 f => ( f . type === 'lucene' || f . type === 'sql' ) && f . condition . trim ( ) ,
824846 ) ?. length ;
825- const doLuceneFiltersExist = ! ! filters ?. filter (
847+ const doLuceneFiltersExist = ! ! sqlFilters ?. filter (
826848 f => f . type === 'lucene' && f . condition . trim ( ) ,
827849 ) ?. length ;
828850
@@ -858,7 +880,7 @@ const Tile = ({
858880 < IconZoomExclamation size = { 16 } color = "var(--color-text-danger)" />
859881 </ Tooltip >
860882 ) ;
861- } , [ filters , queriedConfig , source ] ) ;
883+ } , [ sqlFilters , queriedConfig , source ] ) ;
862884
863885 const replaySearchUrl = useMemo ( ( ) => {
864886 return buildDashboardReplaySearchUrl ( {
@@ -1548,7 +1570,7 @@ const EditTileModal = ({
15481570 isSaving ?: boolean ;
15491571 onSave : ( chart : Tile ) => void ;
15501572 variables ?: ChartVariable [ ] ;
1551- getDashboardFilters : ( sourceId : string | undefined ) => Filter [ ] ;
1573+ getDashboardFilters : ( sourceId : string | undefined ) => BroadcastFilter [ ] ;
15521574 unsatisfiedRequiredFilters ?: DashboardFilter [ ] ;
15531575} ) => {
15541576 const contextZIndex = useZIndex ( ) ;
@@ -2304,7 +2326,7 @@ function DBDashboardPage({
23042326 // `sourceId`. Shared with the tile editor so its preview queries what the
23052327 // tile does.
23062328 const getTileFilters = useCallback (
2307- ( sourceId : string | undefined ) : Filter [ ] => [
2329+ ( sourceId : string | undefined ) : BroadcastFilter [ ] => [
23082330 {
23092331 type : whereLanguage === 'sql' ? 'sql' : 'lucene' ,
23102332 condition : where ,
0 commit comments