fix sizing bug

This commit is contained in:
Nate Kelley 2025-04-21 11:37:42 -06:00
parent 699558447c
commit 76f479f739
No known key found for this signature in database
GPG Key ID: FD90372AB8D98B4F
5 changed files with 32 additions and 33 deletions

View File

@ -1,4 +1,4 @@
import React, { forwardRef } from 'react';
import React, { forwardRef, MutableRefObject } from 'react';
import { AppSplitter, type AppSplitterRef } from '@/components/ui/layouts/AppSplitter';
import { SQLContainer } from './SQLContainer';
import { DataContainer } from './DataContainer';

View File

@ -91,7 +91,7 @@ export const SQLContainer: React.FC<{
return (
<FileCard
className={className}
footerClassName="flex justify-between space-x-4"
footerClassName="flex justify-between file-card space-x-4"
footer={memoizedFooter}>
<AppCodeEditor
className="overflow-hidden border-x-0 border-t-0"

View File

@ -91,10 +91,11 @@ export const AppSplitter = React.memo(
}, [hasHidden, leftHidden, sizes]);
const memoizedLeftPaneStyle = useMemo(() => {
const isHidden = leftHidden || _sizes[0] === '0%'; //leftHidden || _sizes[0] === '0px' || _sizes[0] === 0 || _sizes[0] === '0%';
return {
display: leftHidden ? 'none' : undefined
display: isHidden ? 'none' : undefined
};
}, [leftHidden]);
}, [leftHidden, _sizes[0]]);
const memoizedRightPaneStyle = useMemo(() => {
return {
@ -269,7 +270,7 @@ export const AppSplitter = React.memo(
sashRender={sashRender}>
<Pane
style={memoizedLeftPaneStyle}
className="left-pane flex h-full flex-col"
className={'left-pane flex h-full flex-col'}
minSize={leftPanelMinSize}
maxSize={leftPanelMaxSize}>
{leftHidden || size?.width === 0 || size?.width === undefined ? null : leftChildren}

View File

@ -18,6 +18,7 @@ import Link from 'next/link';
import { assetParamsToRoute } from '@/lib/assets';
import { useAppLayoutContextSelector } from '@/context/BusterAppLayout';
import { useIsMetricReadOnly } from '@/context/Metrics/useIsMetricReadOnly';
import { BusterRoutes, createBusterRoute } from '@/routes';
export const MetricContainerHeaderButtons: React.FC<FileContainerButtonsProps> = React.memo(
({ selectedFileId }) => {
@ -102,6 +103,7 @@ const EditChartButton = React.memo(({ metricId }: { metricId: string }) => {
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
//SHALLOW PAGE CHANGED! DO NOT REMOVE
}}>
<SelectableButton
tooltipText="Edit chart"
@ -125,41 +127,35 @@ const EditSQLButton = React.memo(({ metricId }: { metricId: string }) => {
const isSelectedView = selectedFileViewSecondary === editableSecondaryView;
const href = useMemo(() => {
if (isSelectedView) {
return assetParamsToRoute({
chatId,
assetId: metricId,
type: 'metric',
secondaryView: null,
versionNumber: metricVersionNumber
if (!isSelectedView) {
return createBusterRoute({
route: BusterRoutes.APP_METRIC_ID_RESULTS,
versionNumber: metricVersionNumber,
metricId,
secondaryView: 'sql-edit'
});
}
return assetParamsToRoute({
chatId,
assetId: metricId,
type: 'metric',
secondaryView: 'sql-edit',
versionNumber: metricVersionNumber
return createBusterRoute({
route: BusterRoutes.APP_METRIC_ID_RESULTS,
versionNumber: metricVersionNumber,
metricId
});
}, [chatId, metricId, metricVersionNumber]);
}, [chatId, metricId, metricVersionNumber, isSelectedView]);
const onClickButton = useMemoizedFn(() => {
const secondaryView = isSelectedView ? null : editableSecondaryView;
onSetFileView({ secondaryView, fileView: 'results' });
});
// const onClickButton = useMemoizedFn(() => {
// const secondaryView = isSelectedView ? null : editableSecondaryView;
// onSetFileView({ secondaryView, fileView: 'results' });
// });
console.log('href', href);
return (
<Link
href={href}
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
}}>
<Link href={href}>
<SelectableButton
tooltipText="SQL editor"
icon={<SquareCode />}
onClick={onClickButton}
onClick={() => {}}
selected={isSelectedView}
/>
</Link>

View File

@ -8,7 +8,7 @@ export enum BusterAppRoutes {
APP_METRIC_ID_CHART = '/app/metrics/:metricId/chart?secondary_view=:secondaryView',
APP_METRIC_ID_VERSION_NUMBER = '/app/metrics/:metricId/chart?metric_version_number=:versionNumber&secondary_view=:secondaryView',
APP_METRIC_ID_FILE = '/app/metrics/:metricId/file',
APP_METRIC_ID_RESULTS = '/app/metrics/:metricId/results?secondary_view=:secondaryView',
APP_METRIC_ID_RESULTS = '/app/metrics/:metricId/results?secondary_view=:secondaryView&metric_version_number=:versionNumber',
APP_DASHBOARDS = '/app/dashboards',
APP_DASHBOARD_ID = '/app/dashboards/:dashboardId?secondary_view=:secondaryView',
APP_DASHBOARD_ID_VERSION_NUMBER = '/app/dashboards/:dashboardId?dashboard_version_number=:versionNumber&secondary_view=:secondaryView',
@ -33,7 +33,7 @@ export enum BusterAppRoutes {
APP_CHAT_ID_METRIC_ID_CHART = '/app/chats/:chatId/metrics/:metricId/chart?secondary_view=:secondaryView',
APP_CHAT_ID_METRIC_ID_VERSION_NUMBER = '/app/chats/:chatId/metrics/:metricId/chart?metric_version_number=:versionNumber&secondary_view=:secondaryView',
APP_CHAT_ID_METRIC_ID_FILE = '/app/chats/:chatId/metrics/:metricId/file',
APP_CHAT_ID_METRIC_ID_RESULTS = '/app/chats/:chatId/metrics/:metricId/results?secondary_view=:secondaryView',
APP_CHAT_ID_METRIC_ID_RESULTS = '/app/chats/:chatId/metrics/:metricId/results?secondary_view=:secondaryView&metric_version_number=:versionNumber',
APP_CHAT_ID_COLLECTION_ID = '/app/chats/:chatId/collections/:collectionId',
APP_CHAT_ID_DASHBOARD_ID = '/app/chats/:chatId/dashboards/:dashboardId?secondary_view=:secondaryView&dashboard_version_number=:versionNumber',
APP_CHAT_ID_DASHBOARD_ID_VERSION_NUMBER = '/app/chats/:chatId/dashboards/:dashboardId?dashboard_version_number=:versionNumber&secondary_view=:secondaryView',
@ -71,7 +71,8 @@ export type BusterAppRoutesWithArgs = {
[BusterAppRoutes.APP_METRIC_ID_RESULTS]: {
route: BusterAppRoutes.APP_METRIC_ID_RESULTS;
metricId: string;
secondaryView?: MetricFileViewSecondary;
versionNumber?: number;
secondaryView?: MetricFileViewSecondary | null;
};
[BusterAppRoutes.APP_DASHBOARDS]: { route: BusterAppRoutes.APP_DASHBOARDS };
[BusterAppRoutes.APP_DASHBOARD_ID]: {
@ -149,6 +150,7 @@ export type BusterAppRoutesWithArgs = {
route: BusterAppRoutes.APP_CHAT_ID_METRIC_ID_RESULTS;
chatId: string;
metricId: string;
versionNumber?: number;
secondaryView?: MetricFileViewSecondary;
};
[BusterAppRoutes.APP_CHAT_ID_COLLECTION_ID]: {