fix: admin/logs: avoid endless spinner on empty log
Massimo Melina committed
Aug 18, 2022 at 23:48 UTC
21181ffd2389faa89b1810a0d8c6b612b3f695e6
2 files changed
+6
-4
admin/src/MonitorPage.ts
+1
-2
@@ -4,9 +4,8 @@ import _ from "lodash"
4
import { createElement as h, useMemo, Fragment, useState } from "react"
5
import { apiCall, useApiEvents, useApiEx, useApiList } from "./api"
6
import { PauseCircle, PlayCircle, Delete, Lock, Block, FolderZip } from '@mui/icons-material'
7
-import { Box, Chip, ChipProps } from '@mui/material'
7
+import { Alert, Box, Chip, ChipProps } from '@mui/material'
8
import { DataGrid } from "@mui/x-data-grid"
9
-import { Alert } from '@mui/material'
9
import { formatBytes, IconBtn, iconTooltip, manipulateConfig, useBreakpoint } from "./misc"
10
import { Field, SelectField } from '@hfs/mui-grid-form'
11
import { GridColumns } from '@mui/x-data-grid/models/colDef/gridColDef'
server/src/adminApis.ts
+5
-2
@@ -98,9 +98,12 @@ export const adminApis: ApiHandlers = {
98
return list.error(404, true)
99
const input = createReadStream(logger.path)
100
input.on('error', async (e: any) => {
101
- if (e.code !== 'ENOENT') // ignore ENOENT, consider it an empty log
102
- return list.error(e.code || e.message)
101
+ if (e.code === 'ENOENT') // ignore ENOENT, consider it an empty log
102
+ return list.ready()
103
+ list.error(e.code || e.message)
104
})
105
+ input.on('end', () =>
106
+ list.ready())
107
input.on('ready', () => {
108
readline.createInterface({ input }).on('line', line => {
109
if (ctx.aborted)