diff --git a/web/src/components/RealtimeTable/RealtimeTable.jsx b/web/src/components/RealtimeTable/RealtimeTable.jsx index e03d971..ea9c8b6 100644 --- a/web/src/components/RealtimeTable/RealtimeTable.jsx +++ b/web/src/components/RealtimeTable/RealtimeTable.jsx @@ -219,9 +219,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction, year }) => { ); const handleClickRowCell = useCallback((rowId) => { - setRowSelection((prev) => ({ - [rowId]: !prev[rowId], - })); + setRowSelection((prev) => (prev[rowId] ? {} : { [rowId]: true })); }, []); const handleColumnSelect = useCallback((columnId) => { @@ -358,7 +356,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction, year }) => { enableRowSelection: true, onRowSelectionChange: setRowSelection, muiTableBodyRowProps: ({ row }) => ({ - onClick: () => setRowSelection({ [row.id]: true }), + onClick: () => handleClickRowCell(row.id), hover: false, sx: { '& > td::after': { diff --git a/web/src/components/RealtimeTable/tableColumns.jsx b/web/src/components/RealtimeTable/tableColumns.jsx index 134326c..caf5a9e 100644 --- a/web/src/components/RealtimeTable/tableColumns.jsx +++ b/web/src/components/RealtimeTable/tableColumns.jsx @@ -248,7 +248,8 @@ export const getTableColumns = ({ size: 50, enableEditing: false, Cell: ({ cell, row }) => { - const handleClick = useCallback(() => { + const handleClick = useCallback((event) => { + event.stopPropagation(); onCellNumberClick(row.id); }, [row.id, onCellNumberClick]); return ; diff --git a/web/src/pages/Svod2Page/Svod2Page.jsx b/web/src/pages/Svod2Page/Svod2Page.jsx index 59db4b6..99a1f8a 100644 --- a/web/src/pages/Svod2Page/Svod2Page.jsx +++ b/web/src/pages/Svod2Page/Svod2Page.jsx @@ -34,6 +34,7 @@ const valueAt = (row, path) => path.reduce((value, key) => value?.[key], row.dat const formatValue = (value) => { if (value === null || value === undefined || value === '') return '—'; const numericValue = typeof value === 'number' ? value : Number(value); + if (numericValue === 0) return '-'; return Number.isNaN(numericValue) ? value : numberFormatter.format(numericValue); }; diff --git a/web/src/pages/SvodPage/SvodPage.jsx b/web/src/pages/SvodPage/SvodPage.jsx index f88df85..d844994 100644 --- a/web/src/pages/SvodPage/SvodPage.jsx +++ b/web/src/pages/SvodPage/SvodPage.jsx @@ -41,6 +41,7 @@ const tableSize = (rem) => rem * 16; const formatValue = (value) => { if (value === null || value === undefined || value === '') return '—'; const numericValue = typeof value === 'number' ? value : Number(value); + if (numericValue === 0) return '-'; return Number.isNaN(numericValue) ? value : numberFormatter.format(numericValue); };