Skip to content

Commit 30f7087

Browse files
committed
fix: save progress
1 parent 6953af6 commit 30f7087

File tree

13 files changed

+180
-530
lines changed

13 files changed

+180
-530
lines changed

src/containers/Tenant/Query/QueryResult/QueryResultViewer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ export function QueryResultViewer({
328328
{renderRightControls()}
329329
</div>
330330
{isLoading || isQueryCancelledError(error) ? null : <QuerySettingsBanner />}
331-
<LoaderWrapper loading={isLoading}>
331+
<LoaderWrapper loading={isLoading && !streaming}>
332332
<Fullscreen className={b('result')}>{renderResultSection()}</Fullscreen>
333333
</LoaderWrapper>
334334
</React.Fragment>

src/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.tsx

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,6 @@ interface StreamingResultSetsProps extends BaseResultSetsViewerProps {
2828
type ResultSetsViewerProps = RegularResultSetsProps | StreamingResultSetsProps;
2929

3030
export function ResultSetsViewer(props: ResultSetsViewerProps) {
31-
console.log('[ResultSetsViewer] Rendering with props:', {
32-
type: props.type,
33-
selectedResultSet: props.selectedResultSet,
34-
isStreaming: props.type === 'streaming',
35-
streamingState:
36-
props.type === 'streaming'
37-
? {
38-
hasColumns: Boolean(props.streaming.columns),
39-
rowCount: props.streaming.rows?.length,
40-
active: props.streaming.active,
41-
progress: props.streaming.progress,
42-
}
43-
: undefined,
44-
regularState:
45-
props.type === 'regular'
46-
? {
47-
resultSetsCount: props.resultSets.length,
48-
currentSetColumns: Boolean(
49-
props.resultSets[props.selectedResultSet]?.columns,
50-
),
51-
currentSetRows: props.resultSets[props.selectedResultSet]?.result?.length,
52-
}
53-
: undefined,
54-
});
55-
5631
const {selectedResultSet, setSelectedResultSet} = props;
5732

5833
const resultsSetsCount = props.type === 'streaming' ? 1 : props.resultSets.length;
@@ -66,13 +41,6 @@ export function ResultSetsViewer(props: ResultSetsViewerProps) {
6641
}
6742
: props.resultSets[selectedResultSet];
6843

69-
console.log('[ResultSetsViewer] Current result:', {
70-
hasResult: Boolean(currentResult),
71-
hasColumns: Boolean(currentResult?.columns),
72-
rowCount: currentResult?.result?.length,
73-
truncated: currentResult?.truncated,
74-
});
75-
7644
const renderTabs = () => {
7745
if (resultsSetsCount > 1) {
7846
const tabsItems = getArray(resultsSetsCount).map((item) => ({

src/services/api/viewer.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import type {TUserToken} from '../../types/api/whoami';
3535
import type {QuerySyntax, TransactionMode} from '../../types/store/query';
3636
import {BINARY_DATA_IN_PLAIN_TEXT_DISPLAY} from '../../utils/constants';
3737
import type {Nullable} from '../../utils/typecheckers';
38-
import {parseMultipart, resetMultipartState} from '../parsers/parseMultipart';
38+
import {parseMultipart} from '../parsers/parseMultipart';
3939
import {settingsManager} from '../settings';
4040

4141
import {BaseYdbAPI} from './base';
@@ -389,8 +389,11 @@ export class ViewerAPI extends BaseYdbAPI {
389389
true,
390390
);
391391

392-
// Create parser state in closure
393-
let parserState = resetMultipartState();
392+
// Create parser state and tracking in closure
393+
let parserState = {
394+
lastProcessedLength: 0,
395+
buffer: '',
396+
};
394397

395398
return this.get<string>(
396399
this.getPath('/viewer/query'),
@@ -413,14 +416,15 @@ export class ViewerAPI extends BaseYdbAPI {
413416
Accept: 'multipart/x-mixed-replace',
414417
},
415418
onDownloadProgress: (progressEvent) => {
416-
console.log('progressEvent', progressEvent.event.target);
417419
const response = progressEvent.event.target as XMLHttpRequest;
418-
const {chunks, state} = parseMultipart<QueryAPIResponse<Action>>({
420+
const {chunks, state} = parseMultipart({
419421
responseText: response.responseText,
420422
state: parserState,
421423
});
422424
parserState = state;
423-
chunks.forEach((chunk) => onChunk?.(chunk.content));
425+
for (const chunk of chunks) {
426+
onChunk?.(chunk);
427+
}
424428
},
425429
},
426430
);

src/services/parsers/__test__/parseMultipart.test.ts

Lines changed: 0 additions & 180 deletions
This file was deleted.

0 commit comments

Comments
 (0)