Skip to content

Commit 5fb06ba

Browse files
committed
Fix newlines in logs UI
1 parent 5de8e12 commit 5fb06ba

3 files changed

Lines changed: 5 additions & 3 deletions

File tree

frontend/src/pages/Runs/Details/Logs/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export const Logs: React.FC<IProps> = ({ className, projectName, runName, jobSub
3131

3232
const writeDataToTerminal = (logs: ILogItem[]) => {
3333
logs.forEach((logItem) => {
34-
terminalInstance.current.write(logItem.message);
34+
terminalInstance.current.write(logItem.message.replace(/(?<!\r)\n/g, '\r\n'));
3535
});
3636

3737
fitAddonInstance.current.fit();

frontend/src/services/project.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
44
import { base64ToArrayBuffer } from 'libs';
55
import fetchBaseQueryHeaders from 'libs/fetchBaseQueryHeaders';
66

7+
const decoder = new TextDecoder('utf-8');
8+
79
// Helper function to transform backend response to frontend format
810
// eslint-disable-next-line @typescript-eslint/no-explicit-any
911
const transformProjectResponse = (project: any): IProject => ({
@@ -131,7 +133,7 @@ export const projectApi = createApi({
131133
transformResponse: (response: { logs: ILogItem[]; next_token: string }) => {
132134
const logs = response.logs.map((logItem) => ({
133135
...logItem,
134-
message: base64ToArrayBuffer(logItem.message as string),
136+
message: decoder.decode(base64ToArrayBuffer(logItem.message)),
135137
}));
136138

137139
return {

frontend/src/types/log.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
declare interface ILogItem {
22
log_source: 'stdout' | 'stderr';
33
timestamp: string;
4-
message: string | Uint8Array;
4+
message: string;
55
}
66

77
declare type TRequestLogsParams = {

0 commit comments

Comments
 (0)