Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
8 changes: 4 additions & 4 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
"@babel/register": "^7.12.1",
"@datadog/ui-extensions-react": "0.32.0",
"@datadog/ui-extensions-sdk": "0.32.0",
"@flagsmith/flagsmith": "^11.0.0-internal.5",
"@flagsmith/flagsmith": "^11.0.0-internal.6",
"@ionic/react": "^7.5.3",
"@material-ui/core": "4.12.4",
"@react-oauth/google": "^0.2.8",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useMemo } from 'react'
import React, { useEffect, useMemo, useRef } from 'react'
import flagsmith from '@flagsmith/flagsmith'
import { useGetFeatureCodeReferencesQuery } from 'common/services/useCodeReferences'
import RepoCodeReferencesSection from './components/RepoCodeReferencesSection'
import { FeatureCodeReferences } from 'common/types/responses'
Expand Down Expand Up @@ -34,6 +35,23 @@ const FeatureCodeReferencesContainer: React.FC<
[data],
)

const hasTrackedView = useRef(false)
useEffect(() => {
if (data.length > 0 && !hasTrackedView.current) {
hasTrackedView.current = true
const totalRefs = data.reduce(
(sum, repo) => sum + repo.code_references.length,
0,
)
flagsmith.trackEvent('code_references_view', {
feature_id: featureId,
project_id: projectId,
repos_count: data.length,
total_refs_count: totalRefs,
})
}
}, [data, featureId, projectId])

if (isLoading) {
return (
<div className='d-flex justify-content-center items-center'>
Expand All @@ -59,6 +77,7 @@ const FeatureCodeReferencesContainer: React.FC<
key={codeReferencesByRepo[repo].repository_url}
repositoryName={codeReferencesByRepo[repo].repository_url}
repositoryScan={codeReferencesByRepo[repo]}
featureId={featureId}
/>
))}
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
import flagsmith from '@flagsmith/flagsmith'
import Icon from 'components/Icon'
import { CodeReference } from 'common/types/responses'
import { CodeReference, VCSProvider } from 'common/types/responses'

interface CodeReferenceItemProps {
codeReference: CodeReference
featureId: number
vcsProvider: VCSProvider
}

const CodeReferenceItem: React.FC<CodeReferenceItemProps> = ({
codeReference,
featureId,
vcsProvider,
}) => {
return (
<Row className='flex items-center gap-1' noWrap>
Expand All @@ -25,6 +30,12 @@ const CodeReferenceItem: React.FC<CodeReferenceItemProps> = ({
href={codeReference.permalink}
target='_blank'
rel='noreferrer'
onClick={() => {
flagsmith.trackEvent('code_references_click_permalink', {
feature_id: featureId,
vcs_provider: vcsProvider,
})
}}
>
{codeReference.file_path}:{codeReference.line_number}
</a>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, { useState } from 'react'
import flagsmith from '@flagsmith/flagsmith'
import { FeatureCodeReferences } from 'common/types/responses'
import moment from 'moment'
import CodeReferenceItem from './CodeReferenceItem'
Expand All @@ -9,9 +10,11 @@ import CodeReferenceScanIndicator from './CodeReferenceScanIndicator'
interface RepoCodeReferencesSectionProps {
repositoryScan: FeatureCodeReferences
repositoryName: string
featureId: number
}

const RepoCodeReferencesSection: React.FC<RepoCodeReferencesSectionProps> = ({
featureId,
repositoryName,
repositoryScan,
}) => {
Expand Down Expand Up @@ -42,7 +45,16 @@ const RepoCodeReferencesSection: React.FC<RepoCodeReferencesSectionProps> = ({
>
<Row
className='flex justify-content-between items-center cursor-pointer'
onClick={() => setIsOpen(!isOpen)}
onClick={() => {
if (!isOpen) {
flagsmith.trackEvent('code_references_expand_repo', {
feature_id: featureId,
refs_count: repositoryScan?.code_references?.length,
vcs_provider: repositoryScan?.vcs_provider,
})
}
setIsOpen(!isOpen)
}}
>
<RepoSectionHeader
isOpen={isOpen}
Expand Down Expand Up @@ -77,6 +89,8 @@ const RepoCodeReferencesSection: React.FC<RepoCodeReferencesSectionProps> = ({
{repositoryScan?.code_references?.map((codeReference) => (
<CodeReferenceItem
codeReference={codeReference}
featureId={featureId}
vcsProvider={repositoryScan?.vcs_provider}
key={codeReference.permalink}
/>
))}
Expand Down
Loading
Loading