Skip to content

Commit 9bade6e

Browse files
authored
Convert remaining files to TypeScript (#116)
* convert to typescript * organize imports * sort type definition properties for improved clarity and consistency
1 parent 529a70c commit 9bade6e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+205
-615
lines changed

ui/src/App.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import './App.css'
22

3+
import { ConfigProvider, theme } from 'antd'
34
import { BrowserRouter } from 'react-router'
5+
import { useDarkModeSetting } from './hooks/useDarkModeSetting'
46
import { AuthenticationProvider } from './providers/AuthenticationProvider'
57
import { MessageProvider } from './providers/MessageProvider'
68
import { MainRouter } from './routes/MainRouter'
7-
import { ConfigProvider, theme } from 'antd'
8-
import { useDarkModeSetting } from './hooks/useDarkModeSetting'
99

1010
import { themeConfig } from './themeConfig'
1111

ui/src/components/ApiKeyModal/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { CopyOutlined } from '@ant-design/icons'
2-
import { Modal, Tag, Typography, Spin } from 'antd'
3-
import { examples } from './examples'
4-
import { useMessageApi } from '../../providers/MessageProvider'
2+
import { Modal, Spin, Tag, Typography } from 'antd'
53
import { useApiKey } from '../../hooks/useApiKey'
4+
import { useMessageApi } from '../../providers/MessageProvider'
5+
import { examples } from './examples'
66

77
const { Paragraph, Text } = Typography
88

ui/src/components/FileFlow/FileTreeCard.tsx

Lines changed: 33 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,36 @@
1-
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
21
import {
3-
ReactFlow,
42
Background,
3+
Controls,
4+
type Edge,
5+
MiniMap,
6+
type Node,
7+
ReactFlow,
8+
applyEdgeChanges,
9+
applyNodeChanges,
510
isNode,
611
useEdgesState,
712
useNodesState,
8-
applyNodeChanges,
9-
applyEdgeChanges,
10-
Controls,
11-
MiniMap,
1213
useReactFlow,
1314
} from '@xyflow/react'
14-
import { initialEdges, initialNodes } from '../../data/initialData.js'
15+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
1516
import { IndexConnectEdge } from './EdgeTypes/IndexConnectEdge'
1617
import EventNode from './NodeTypes/EventNode'
1718
import '@xyflow/react/dist/style.css'
1819
import ClickGuide from '../../utils/ClickGuide'
20+
import DownloadImage from '../../utils/DownloadImage'
1921
import ExceededGuide from '../../utils/ExceededGuide'
2022
import NodeSearchPanel from '../../utils/NodeSearchPanel'
2123
import ShowFileListing from '../../utils/ShowFileListing'
2224
import { antdColors } from '../../utils/colors'
23-
import { getDagreLayout } from '../../utils/dagreLayout.js'
24-
import DownloadImage from '../../utils/DownloadImage'
25+
import { getDagreLayout } from '../../utils/dagreLayout'
2526
import {
2627
toggleChildrenVisibility,
2728
transformElasticSearchDataToElements,
2829
} from '../../utils/layoutUtils.js'
2930

3031
import { useDarkModeSetting } from '../../hooks/useDarkModeSetting'
31-
import type { StrelkaNodeData } from '../../utils/indexDataUtils.js'
32-
import type { StrelkaResponse } from '../../services/api.types.js'
32+
import type { StrelkaResponse } from '../../services/api.types'
33+
import type { StrelkaNodeData } from '../../utils/indexDataUtils'
3334

3435
const nodeTypes = {
3536
event: EventNode,
@@ -48,8 +49,8 @@ export interface FileTreeCardProps {
4849
fileYaraFilter: string
4950
fileIocFilter: string
5051
fileNameFilter: string
51-
selectedNodeData: StrelkaNodeData
52-
setSelectedNodeData: (nodeData: StrelkaNodeData) => void
52+
selectedNodeData: StrelkaResponse
53+
setSelectedNodeData: (nodeData: StrelkaResponse) => void
5354
}
5455

5556
const FileTreeCard = (props: FileTreeCardProps) => {
@@ -66,14 +67,13 @@ const FileTreeCard = (props: FileTreeCardProps) => {
6667
const [searchTerm, setSearchTerm] = useState('')
6768
const { fitView } = useReactFlow()
6869

69-
const layoutedElements = useMemo(
70-
() => getDagreLayout(initialNodes, initialEdges),
71-
[],
72-
)
73-
const layoutedNodes = layoutedElements.filter(isNode)
74-
const layoutedEdges = layoutedElements.filter((el) => !isNode(el))
70+
const layoutedElements = useMemo(() => getDagreLayout([], []), [])
71+
const layoutedNodes = layoutedElements.filter(
72+
isNode,
73+
) as Node<StrelkaNodeData>[]
74+
const layoutedEdges = layoutedElements.filter((el) => !isNode(el)) as Edge[]
7575
const [nodes, setNodes] = useNodesState(layoutedNodes)
76-
const [edges, setEdges] = useEdgesState(layoutedEdges)
76+
const [edges, setEdges] = useEdgesState<Edge>(layoutedEdges)
7777
const showClickGuide = !selectedNodeData
7878
const [showExceededGuide, setShowExceededGuide] = useState(false)
7979
const ref = useRef(null)
@@ -107,34 +107,28 @@ const FileTreeCard = (props: FileTreeCardProps) => {
107107
)
108108

109109
const filteredNodes = useMemo(() => {
110-
let nodesToFilter = fileTypeFilter
111-
? nodes.filter((node) =>
112-
(node.data as unknown as StrelkaNodeData).nodeMain.includes(
113-
fileTypeFilter,
114-
),
115-
)
116-
: nodes
110+
let nodesToFilter = nodes
111+
112+
if (fileTypeFilter) {
113+
nodesToFilter = nodesToFilter.filter((node) =>
114+
node.data.nodeMain.includes(fileTypeFilter),
115+
)
116+
}
117117

118118
if (fileNameFilter) {
119119
nodesToFilter = nodesToFilter.filter((node) =>
120-
(node.data as unknown as StrelkaNodeData).nodeRelationshipId?.includes(
121-
fileNameFilter,
122-
),
120+
node.data.nodeRelationshipId?.includes(fileNameFilter),
123121
)
124122
}
125123
if (fileYaraFilter) {
126124
nodesToFilter = nodesToFilter.filter((node) =>
127-
(node.data as unknown as StrelkaNodeData).nodeYaraList?.includes(
128-
fileYaraFilter,
129-
),
125+
node.data.nodeYaraList?.includes(fileYaraFilter),
130126
)
131127
}
132128

133129
if (fileIocFilter) {
134130
nodesToFilter = nodesToFilter.filter((node) =>
135-
(node.data as unknown as StrelkaNodeData).nodeIocList?.includes(
136-
fileIocFilter,
137-
),
131+
node.data.nodeIocList?.includes(fileIocFilter),
138132
)
139133
}
140134

@@ -155,10 +149,9 @@ const FileTreeCard = (props: FileTreeCardProps) => {
155149
fileNameFilter,
156150
])
157151

158-
// biome-ignore lint/correctness/useExhaustiveDependencies: TODO: use the correct dependencies
159152
useEffect(() => {
160153
fitView({ padding: 0.2 })
161-
}, [fileTypeFilter, fileYaraFilter, fileNameFilter, fitView])
154+
}, [fitView])
162155

163156
const handleNodeClick = (_event, node) => {
164157
if (node.type === 'index') {
@@ -255,8 +248,8 @@ const FileTreeCard = (props: FileTreeCardProps) => {
255248

256249
const layoutedData = getDagreLayout(nodesToLayout, edgesToLayout)
257250

258-
setNodes(layoutedData.filter(isNode))
259-
setEdges(layoutedData.filter((el) => !isNode(el)))
251+
setNodes(layoutedData.filter(isNode) as Node<StrelkaNodeData>[])
252+
setEdges(layoutedData.filter((el) => !isNode(el)) as Edge[])
260253
}, [data, setEdges, setNodes])
261254

262255
const { isDarkMode } = useDarkModeSetting()

ui/src/components/FileFlow/FileTreeCardWithProvider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ReactFlowProvider } from '@xyflow/react'
2-
import FileTreeCard, { type FileTreeCardProps } from './FileTreeCard' // Adjust the import path as needed
2+
import FileTreeCard, { type FileTreeCardProps } from './FileTreeCard'
33

44
function FileTreeCardWithProvider(props: FileTreeCardProps) {
55
return (

ui/src/components/FileOverviews/EmailOverview/EmailOverviewLanding.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CollapseCard } from '../../CollapseCard'
2-
import EmailOverviewCard from './EmailOverviewCard'
32
import type { OverviewLandingProps } from '../types'
3+
import EmailOverviewCard from './EmailOverviewCard'
44

55
const EmailOverviewLanding = (props: OverviewLandingProps) => {
66
const { selectedNodeData, expanded, onExpandChange } = props

ui/src/components/FileOverviews/FileIocsOverview/FileIocsOverviewLanding.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Collapse, Tag, Typography } from 'antd'
2-
import { antdColors } from '../../../utils/colors'
3-
import FileIocsOverviewCard from './FileIocsOverviewCard'
42
import { useState } from 'react'
3+
import { antdColors } from '../../../utils/colors'
54
import type { FileIocsOverviewProps } from '../types'
5+
import FileIocsOverviewCard from './FileIocsOverviewCard'
66

77
const { Text } = Typography
88

ui/src/components/FileOverviews/FileTypeOverview/FileTypeOverviewLanding.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Collapse, Tag, Typography } from 'antd'
22
import { useState } from 'react'
33
import { antdColors } from '../../../utils/colors'
4-
import FileTypeOverviewCard from './FileTypeOverviewCard'
54
import type { ScanData } from '../types'
5+
import FileTypeOverviewCard from './FileTypeOverviewCard'
66

77
const { Text } = Typography
88

ui/src/components/FileOverviews/FileYara/FileYaraLanding.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import YaraOverviewCard from './YaraOverviewCard'
21
import { CollapseCard } from '../../CollapseCard'
32
import type { OverviewLandingProps } from '../types'
3+
import YaraOverviewCard from './YaraOverviewCard'
44

55
const YaraOverviewLanding = (props: OverviewLandingProps) => {
66
const { selectedNodeData, expanded, onExpandChange } = props

ui/src/components/FileOverviews/FileYara/YaraOverviewCard.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Col, Input, List, Row, Tag, Typography } from 'antd'
22
import { useMemo, useState } from 'react'
3-
import type { OverviewCardProps } from '../types'
4-
import { getColorForString } from '../../../utils/colors'
53
import type { StrelkaResponse } from '../../../services/api.types'
4+
import { getColorForString } from '../../../utils/colors'
5+
import type { OverviewCardProps } from '../types'
66

77
const { Text, Paragraph } = Typography
88

ui/src/components/FileOverviews/HeaderFooterOverview/HeaderFooterLanding.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import FileHeaderFooterCard from './HeaderFooterCard'
21
import { CollapseCard } from '../../CollapseCard'
32
import type { OverviewLandingProps } from '../types'
3+
import FileHeaderFooterCard from './HeaderFooterCard'
44

55
const HeaderFooterLanding = (props: OverviewLandingProps) => {
66
const { selectedNodeData, expanded, onExpandChange } = props

0 commit comments

Comments
 (0)