From 814e08edd496eb812d2a50d66e53af54df09944f Mon Sep 17 00:00:00 2001 From: Pierre Donias Date: Thu, 20 Feb 2020 15:51:32 +0100 Subject: [PATCH] fix(xo-web/vm/disks): don't pass `null` to `Size` component (#4811) Fixes support#2181 - `vdi.size` should always be defined - `null` was passed when `vdi.size` was `0` --- packages/xo-web/src/common/editable/index.js | 13 +++++++++++-- packages/xo-web/src/xo-app/vm/tab-disks.js | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/xo-web/src/common/editable/index.js b/packages/xo-web/src/common/editable/index.js index f2ace8cb0..62392f3f3 100644 --- a/packages/xo-web/src/common/editable/index.js +++ b/packages/xo-web/src/common/editable/index.js @@ -490,7 +490,8 @@ export class XoSelect extends Editable { export class Size extends Editable { static propTypes = { - value: PropTypes.number.isRequired, + value: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([null])]) + .isRequired, } get value() { @@ -498,7 +499,15 @@ export class Size extends Editable { } _renderDisplay() { - return this.props.children || formatSize(this.props.value) + if (this.props.children !== undefined) { + return this.props.children + } + + if (this.props.value != null) { + return formatSize(this.props.value) + } + + return null } _saveIfUnfocused = () => { diff --git a/packages/xo-web/src/xo-app/vm/tab-disks.js b/packages/xo-web/src/xo-app/vm/tab-disks.js index 1dbb1aef8..073335a67 100644 --- a/packages/xo-web/src/xo-app/vm/tab-disks.js +++ b/packages/xo-web/src/xo-app/vm/tab-disks.js @@ -2,6 +2,7 @@ import _, { messages } from 'intl' import ActionButton from 'action-button' import Component from 'base-component' import copy from 'copy-to-clipboard' +import defined from '@xen-orchestra/defined' import HTML5Backend from 'react-dnd-html5-backend' import Icon from 'icon' import IsoDevice from 'iso-device' @@ -131,7 +132,7 @@ const COLUMNS_VM_PV = [ { itemRenderer: ({ vdi }) => ( editVdi(vdi, { size })} /> ),