diff --git a/.changeset/large-pumas-yawn.md b/.changeset/large-pumas-yawn.md
new file mode 100644
index 00000000..f4435d7a
--- /dev/null
+++ b/.changeset/large-pumas-yawn.md
@@ -0,0 +1,5 @@
+---
+"@hyperdx/app": patch
+---
+
+fix: laggy performance across app
diff --git a/packages/app/src/DBSearchPage.tsx b/packages/app/src/DBSearchPage.tsx
index fcf2aef9..709573ed 100644
--- a/packages/app/src/DBSearchPage.tsx
+++ b/packages/app/src/DBSearchPage.tsx
@@ -123,6 +123,7 @@ import { SearchConfig } from './types';
import searchPageStyles from '../styles/SearchPage.module.scss';
+const ALLOWED_SOURCE_KINDS = [SourceKind.Log, SourceKind.Trace];
const SearchConfigSchema = z.object({
select: z.string(),
source: z.string(),
@@ -1075,19 +1076,26 @@ function DBSearchPage() {
};
}, [chartConfig, searchedTimeRange]);
- const displayedColumns = splitAndTrimWithBracket(
- dbSqlRowTableConfig?.select ??
- searchedSource?.defaultTableSelectExpression ??
- '',
+ const displayedColumns = useMemo(
+ () =>
+ splitAndTrimWithBracket(
+ dbSqlRowTableConfig?.select ??
+ searchedSource?.defaultTableSelectExpression ??
+ '',
+ ),
+ [dbSqlRowTableConfig?.select, searchedSource?.defaultTableSelectExpression],
);
- const toggleColumn = (column: string) => {
- const newSelectArray = displayedColumns.includes(column)
- ? displayedColumns.filter(s => s !== column)
- : [...displayedColumns, column];
- setValue('select', newSelectArray.join(', '));
- onSubmit();
- };
+ const toggleColumn = useCallback(
+ (column: string) => {
+ const newSelectArray = displayedColumns.includes(column)
+ ? displayedColumns.filter(s => s !== column)
+ : [...displayedColumns, column];
+ setValue('select', newSelectArray.join(', '));
+ onSubmit();
+ },
+ [displayedColumns, setValue, onSubmit],
+ );
const generateSearchUrl = useCallback(
({
@@ -1277,6 +1285,38 @@ function DBSearchPage() {
const [isDrawerChildModalOpen, setDrawerChildModalOpen] = useState(false);
+ const rowTableContext = useMemo(
+ () => ({
+ onPropertyAddClick: searchFilters.setFilterValue,
+ displayedColumns,
+ toggleColumn,
+ generateSearchUrl,
+ dbSqlRowTableConfig,
+ isChildModalOpen: isDrawerChildModalOpen,
+ setChildModalOpen: setDrawerChildModalOpen,
+ source: searchedSource,
+ }),
+ [
+ searchFilters.setFilterValue,
+ searchedSource,
+ dbSqlRowTableConfig,
+ displayedColumns,
+ toggleColumn,
+ generateSearchUrl,
+ isDrawerChildModalOpen,
+ ],
+ );
+
+ const inputSourceTableConnection = useMemo(
+ () => tcFromSource(inputSourceObj),
+ [inputSourceObj],
+ );
+
+ const sourceSchemaPreview = useMemo(
+ () => ,
+ [inputSourceObj],
+ );
+
return (
@@ -1307,11 +1347,9 @@ function DBSearchPage() {
control={control}
name="source"
onCreate={openNewSourceModal}
- allowedSourceKinds={[SourceKind.Log, SourceKind.Trace]}
+ allowedSourceKinds={ALLOWED_SOURCE_KINDS}
data-testid="source-selector"
- sourceSchemaPreview={
-
- }
+ sourceSchemaPreview={sourceSchemaPreview}
/>