@@ -17,8 +17,9 @@ import {
1717} from 'scenes/session-recordings/playlist/sessionRecordingsPlaylistLogic'
1818import { urls } from 'scenes/urls'
1919
20- import { FilterType , RecordingUniversalFilters , ReplayTabs } from '~/types'
20+ import { AnyPropertyFilter , FilterType , PropertyFilterType , RecordingUniversalFilters , ReplayTabs } from '~/types'
2121
22+ import { notebookLogic } from '../Notebook/notebookLogic'
2223import { NotebookNodeAttributeProperties , NotebookNodeProps , NotebookNodeType } from '../types'
2324import { notebookNodeLogic } from './notebookNodeLogic'
2425
@@ -28,11 +29,21 @@ const Component = ({
2829} : NotebookNodeProps < NotebookNodePlaylistAttributes > ) : JSX . Element => {
2930 const { pinned, nodeId, universalFilters } = attributes
3031 const playerKey = `notebook-${ nodeId } `
32+ const { canvasFiltersOverride } = useValues ( notebookLogic )
33+ const convertedOverrides = convertCanvasFiltersOverrideToRecordingFilters ( canvasFiltersOverride )
34+
35+ const filters = {
36+ ...universalFilters ,
37+ filter_group : {
38+ ...universalFilters . filter_group ,
39+ values : [ ...universalFilters . filter_group . values , ...convertedOverrides ] ,
40+ } ,
41+ }
3142
3243 const recordingPlaylistLogicProps : SessionRecordingPlaylistLogicProps = useMemo (
3344 ( ) => ( {
3445 logicKey : playerKey ,
35- filters : universalFilters ,
46+ filters,
3647 updateSearchParams : false ,
3748 autoPlay : false ,
3849 onFiltersChange : ( newFilters ) => updateAttributes ( { universalFilters : newFilters } ) ,
@@ -164,3 +175,34 @@ export function buildPlaylistContent(filters: Partial<FilterType>): JSONContent
164175 attrs : { filters } ,
165176 }
166177}
178+
179+ function convertCanvasFiltersOverrideToRecordingFilters ( canvasFilters : AnyPropertyFilter [ ] ) : AnyPropertyFilter [ ] {
180+ if ( ! canvasFilters . length ) {
181+ return [ ]
182+ }
183+
184+ return canvasFilters . map ( ( filter ) => {
185+ switch ( filter . key ) {
186+ case 'person_id' :
187+ return {
188+ type : PropertyFilterType . HogQL ,
189+ key : `person_id = '${ filter . value } '` ,
190+ value : null ,
191+ }
192+
193+ case '$group_0' :
194+ case '$group_1' :
195+ case '$group_2' :
196+ case '$group_3' :
197+ case '$group_4' :
198+ return {
199+ type : PropertyFilterType . HogQL ,
200+ key : `properties.${ filter . key } = '${ filter . value } '` ,
201+ value : null ,
202+ }
203+
204+ default :
205+ return filter
206+ }
207+ } )
208+ }
0 commit comments