diff --git a/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx b/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx index d5e3e273451..12ec4af510e 100644 --- a/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx +++ b/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx @@ -128,7 +128,7 @@ export const WarehouseCollectionDetail = () => { data={results} params={params} maxHeight="calc(100vh - 139px)" - hideHeader={true} + showHeader={false} emptyState={ - - + + {JSON.stringify(fullLog || partialLog, null, 2)} diff --git a/apps/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DefaultExplorerSelectionRenderer.tsx b/apps/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DefaultExplorerSelectionRenderer.tsx index 2955bfd8d63..739a5e559bb 100644 --- a/apps/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DefaultExplorerSelectionRenderer.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DefaultExplorerSelectionRenderer.tsx @@ -12,7 +12,7 @@ const DefaultExplorerSelectionRenderer = ({ log }: any) => { code?: boolean }) => { return ( -
+
{label} {
{Object.entries(log).map(([key, value], index) => { return ( -
+
{value && typeof value === 'object' ? ( ) : ( diff --git a/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx b/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx index 2f809db341e..d88581ab328 100644 --- a/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/LogTable.tsx @@ -17,6 +17,9 @@ import { IconDownload, IconEye, IconEyeOff, + ResizableHandle, + ResizablePanel, + ResizablePanelGroup, cn, } from 'ui' @@ -36,7 +39,6 @@ import LogSelection, { LogSelectionProps } from './LogSelection' import type { LogData, QueryType } from './Logs.types' import DefaultErrorRenderer from './LogsErrorRenderers/DefaultErrorRenderer' import ResourcesExceededErrorRenderer from './LogsErrorRenderers/ResourcesExceededErrorRenderer' -import { motion } from 'framer-motion' interface Props { data?: Array @@ -54,9 +56,10 @@ interface Props { hasEditorValue?: boolean maxHeight?: string className?: string - hideHeader?: boolean collectionName?: string // Used for warehouse queries emptyState?: ReactNode + showHeader?: boolean + showHistogramToggle?: boolean } type LogMap = { [id: string]: LogData } @@ -79,9 +82,10 @@ const LogTable = ({ hasEditorValue, maxHeight, className, - hideHeader = false, collectionName, emptyState, + showHeader = true, + showHistogramToggle = true, }: Props) => { const [focusedLog, setFocusedLog] = useState(null) const firstRow: LogData | undefined = data?.[0] as LogData @@ -193,10 +197,6 @@ const LogTable = ({ } }, [data, focusedLog, stringData]) - // [Joshen] Hmm quite hacky now, but will do - const _maxHeight = - maxHeight || (!queryType ? 'calc(100vh - 42px - 10rem)' : 'calc(100vh - 42px - 3rem)') - const logDataRows = useMemo(() => { if (hasId && hasTimestamp) { return Object.values(logMap).sort((a, b) => b.timestamp - a.timestamp) @@ -228,7 +228,7 @@ const LogTable = ({ className={cn( 'flex w-full items-center justify-between border-t bg-surface-100 px-5 py-2', className, - { hidden: hideHeader } + { hidden: !showHeader } )} >
@@ -258,15 +258,17 @@ const LogTable = ({
-
- -
+ {showHistogramToggle && ( +
+ +
+ )}
{IS_PLATFORM && ( @@ -358,66 +360,65 @@ const LogTable = ({ if (!data) return null return ( -
+
{!queryType && } -
- { - if (!hasId) return - setFocusedLog(data[rowIdx] as LogData) - }} - selectedRows={new Set([])} - columns={columns} - rowClass={(row: LogData) => - [ - 'font-mono tracking-tight', - isEqual(row, focusedLog) - ? '!bg-border-stronger rdg-row--focused' - : ' !bg-studio hover:!bg-surface-100 cursor-pointer', - ].join(' ') - } - rows={logDataRows} - rowKeyGetter={(r) => { - if (!hasId) return JSON.stringify(r) - const row = r as LogData - return row.id - }} - // [Next 18 refactor] need to fix - // onRowClick={setFocusedLog} - renderers={{ - renderRow: RowRenderer, - noRowsFallback: !isLoading ? ( -
- {!error && renderNoResultAlert()} - {error && renderErrorAlert()} -
- ) : null, - }} - /> - {logDataRows.length > 0 ? ( -
- setFocusedLog(null)} - log={focusedLog} - queryType={queryType} - params={params} - collectionName={collectionName} +
+ + + { + console.log('row', row) + setFocusedLog(row.row as LogData) + }} + selectedRows={new Set([])} + columns={columns} + rowClass={(row: LogData) => + [ + 'font-mono tracking-tight', + isEqual(row, focusedLog) + ? '!bg-surface-300 rdg-row--focused' + : ' !bg-studio hover:!bg-surface-100 cursor-pointer', + ].join(' ') + } + rows={logDataRows} + rowKeyGetter={(r) => { + if (!hasId) return JSON.stringify(r) + const row = r as LogData + return row.id + }} + renderers={{ + renderRow: RowRenderer, + noRowsFallback: !isLoading ? ( +
+ {!error && renderNoResultAlert()} + {error && renderErrorAlert()} +
+ ) : null, + }} /> -
- ) : null} + + + {focusedLog && ( + + setFocusedLog(null)} + log={focusedLog} + queryType={queryType} + params={params} + collectionName={collectionName} + /> + + )} +
) diff --git a/apps/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx b/apps/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx index f272b58e85c..caa347c305e 100644 --- a/apps/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx @@ -30,7 +30,7 @@ export const SelectionDetailedRow = ({ valueRender?: React.ReactNode }) => { return ( -
+
{label} @@ -43,7 +43,7 @@ export const SelectionDetailedRow = ({ diff --git a/apps/studio/pages/project/[ref]/logs/explorer/index.tsx b/apps/studio/pages/project/[ref]/logs/explorer/index.tsx index 2ad3af0045f..359cfd00d51 100644 --- a/apps/studio/pages/project/[ref]/logs/explorer/index.tsx +++ b/apps/studio/pages/project/[ref]/logs/explorer/index.tsx @@ -222,6 +222,7 @@ export const LogsExplorerPage: NextPageWithLayout = () => {