diff --git a/web/src/server/ServerDetailServicesTabPanelTCP.tsx b/web/src/server/ServerDetailServicesTabPanelTCP.tsx index d8cd842..6b2a849 100644 --- a/web/src/server/ServerDetailServicesTabPanelTCP.tsx +++ b/web/src/server/ServerDetailServicesTabPanelTCP.tsx @@ -1,9 +1,13 @@ -import Table from "common/Table"; -import useTable from "common/useTable"; -import React from "react"; +import Table from 'common/Table'; +import useTable from 'common/useTable'; +import React, { useMemo } from 'react'; import { getCoreRowModel } from '@tanstack/react-table'; -import { ServerResponseType, ServerServiceNameType, TCPData } from "./ServerType"; -import { useVirtual } from "react-virtual"; +import { + ServerResponseType, + ServerServiceNameType, + TCPData, +} from './ServerType'; +import { useVirtual } from 'react-virtual'; interface ServerDetailServicesTabPanelTCPType { serverName: ServerServiceNameType; @@ -13,44 +17,50 @@ interface ServerDetailServicesTabPanelTCPType { export default function ServerDetailServicesTabPanelTCP( props: ServerDetailServicesTabPanelTCPType ) { - const { - serverData: { - Message: { Data: {Ports } }, - }, - } = props; + const { + serverData: { + Message: { + Data: { Ports }, + }, + }, + } = props; - const data = Object.entries(Ports).map(([key, value]) => { - return { - Port: key, - State: value, - }; - }) + const data = useMemo( + () => + Object.entries(Ports).map(([key, value]) => { + return { + Port: key, + State: value, + }; + }), + [Ports] + ); - const tableInstance = useTable({ - data, - columns, - getCoreRowModel: getCoreRowModel(), - }); + const tableInstance = useTable({ + data, + columns, + getCoreRowModel: getCoreRowModel(), + }); - const tableContainerRef = React.useRef(null); + const tableContainerRef = React.useRef(null); - const { rows } = tableInstance.getRowModel(); + const { rows } = tableInstance.getRowModel(); - const rowVirtualizer = useVirtual({ - parentRef: tableContainerRef, - size: rows.length, - overscan: 10, - }); + const rowVirtualizer = useVirtual({ + parentRef: tableContainerRef, + size: rows.length, + overscan: 10, + }); - return ( - - ); + return ( +
+ ); } const columns = [ @@ -62,4 +72,4 @@ const columns = [ header: 'State', accessorKey: 'State', }, -]; \ No newline at end of file +];