box-ui-elements 15.0.0-beta.39 → 15.0.0-beta.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CONTRIBUTING.md CHANGED
@@ -48,7 +48,7 @@ longer description here if necessary.
48
48
  include BREAKING CHANGE keyword for breaking changes.
49
49
  ```
50
50
 
51
- The message summary should be a one-sentence description of the change, and it must be 72 characters in length or shorter. For a list of tags, please [click here](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional#type-enum). See the [default release rules](https://github.com/conventional-changelog/commitlint/blob/master/%40commitlint/config-conventional/index.js) based on the commit tag. Note that you must include the exact keyword "BREAKING CHANGE" for breaking changes, to learn more [click here](https://github.com/conventional-changelog/conventional-changelog/blob/master/packages/conventional-changelog-conventionalcommits/parser-opts.js#L13).
51
+ The message summary should be a one-sentence description of the change, and it must be 72 characters in length or shorter. For a list of tags, please [click here](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional#type-enum). See the [default release rules](https://github.com/conventional-changelog/commitlint/blob/master/%40commitlint/config-conventional/index.js) based on the commit tag. Note that you must include the exact keyword "BREAKING CHANGE" for breaking changes, to learn more [click here](https://github.com/conventional-changelog/conventional-changelog/blob/master/packages/conventional-changelog-conventionalcommits/parser-opts.js#L13). IMPORTANT: Add "BREAKING CHANGE" to your PR title as well, because when multiple commits are merged the PR title takes precedence as the merge commit message.
52
52
 
53
53
  Shown below are examples of the release type that will be done based on a commit message.
54
54
 
@@ -60,6 +60,7 @@ var itemNameCellRenderer = function itemNameCellRenderer(rendererParams) {
60
60
  return name && React.createElement("div", {
61
61
  className: TABLE_CELL_CLASS
62
62
  }, React.createElement(ItemListName, {
63
+ itemId: id,
63
64
  type: type,
64
65
  name: name,
65
66
  label: label,
@@ -57,6 +57,7 @@ const itemNameCellRenderer = rendererParams => {
57
57
  name && (
58
58
  <div className={TABLE_CELL_CLASS}>
59
59
  <ItemListName
60
+ itemId={id}
60
61
  type={type}
61
62
  name={name}
62
63
  label={label}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","className","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","noItemsRenderer","width","height","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","props","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","displayName","propTypes","string","isRequired","number","func","ItemListBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\n\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n contentExplorerMode,\n className = '',\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n noItemsRenderer,\n width,\n height,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = defaultTableRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n return (\n <div className={classNames('content-explorer-item-list table', className)}>\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n rowHeight={40}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","className","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","noItemsRenderer","width","height","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","props","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","displayName","propTypes","string","isRequired","number","func","ItemListBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\n\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n itemId={id}\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n contentExplorerMode,\n className = '',\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n noItemsRenderer,\n width,\n height,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = defaultTableRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n return (\n <div className={classNames('content-explorer-item-list table', className)}>\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n rowHeight={40}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
@@ -1,3 +1,9 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
1
7
  import PropTypes from 'prop-types';
2
8
  import React from 'react';
3
9
  import PlainButton from '../../../components/plain-button';
@@ -7,7 +13,9 @@ import { ItemTypePropType } from '../prop-types';
7
13
  var ITEM_LIST_NAME_CLASS = 'item-list-name';
8
14
 
9
15
  var ItemListName = function ItemListName(_ref) {
10
- var type = _ref.type,
16
+ var _ref$itemId = _ref.itemId,
17
+ itemId = _ref$itemId === void 0 ? '' : _ref$itemId,
18
+ type = _ref.type,
11
19
  name = _ref.name,
12
20
  _ref$label = _ref.label,
13
21
  label = _ref$label === void 0 ? '' : _ref$label,
@@ -31,7 +39,9 @@ var ItemListName = function ItemListName(_ref) {
31
39
  };
32
40
 
33
41
  var renderLink = function renderLink() {
34
- return linkRenderer ? linkRenderer(linkProps) : React.createElement(PlainButton, linkProps);
42
+ return linkRenderer ? linkRenderer(_objectSpread({}, linkProps, {
43
+ itemId: itemId
44
+ })) : React.createElement(PlainButton, linkProps);
35
45
  };
36
46
 
37
47
  return React.createElement("div", {
@@ -44,6 +54,7 @@ var ItemListName = function ItemListName(_ref) {
44
54
  };
45
55
 
46
56
  ItemListName.propTypes = {
57
+ itemId: PropTypes.string,
47
58
  type: ItemTypePropType,
48
59
  name: PropTypes.string.isRequired,
49
60
  label: PropTypes.string,
@@ -9,7 +9,7 @@ import { ItemTypePropType } from '../prop-types';
9
9
 
10
10
  const ITEM_LIST_NAME_CLASS = 'item-list-name';
11
11
 
12
- const ItemListName = ({ type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
12
+ const ItemListName = ({ itemId = '', type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
13
13
  const isFolder = type === ItemTypes.FOLDER;
14
14
 
15
15
  const linkProps = {
@@ -26,7 +26,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
26
26
  />,
27
27
  ],
28
28
  };
29
- const renderLink = () => (linkRenderer ? linkRenderer(linkProps) : <PlainButton {...linkProps} />);
29
+ const renderLink = () => (linkRenderer ? linkRenderer({ ...linkProps, itemId }) : <PlainButton {...linkProps} />);
30
30
 
31
31
  return (
32
32
  <div className="item-list-name-container">
@@ -37,6 +37,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
37
37
  };
38
38
 
39
39
  ItemListName.propTypes = {
40
+ itemId: PropTypes.string,
40
41
  type: ItemTypePropType,
41
42
  name: PropTypes.string.isRequired,
42
43
  label: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemListName.js"],"names":["PropTypes","React","PlainButton","IconChevron","ItemTypes","ItemTypePropType","ITEM_LIST_NAME_CLASS","ItemListName","type","name","label","isSelected","onClick","linkRenderer","isFolder","FOLDER","linkProps","className","children","renderLink","propTypes","string","isRequired","bool","func"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AAEA,OAAOC,SAAP,MAAsB,eAAtB;AACA,SAASC,gBAAT,QAAiC,eAAjC;AAEA,IAAMC,oBAAoB,GAAG,gBAA7B;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAA2E;AAAA,MAAxEC,IAAwE,QAAxEA,IAAwE;AAAA,MAAlEC,IAAkE,QAAlEA,IAAkE;AAAA,wBAA5DC,KAA4D;AAAA,MAA5DA,KAA4D,2BAApD,EAAoD;AAAA,6BAAhDC,UAAgD;AAAA,MAAhDA,UAAgD,gCAAnC,KAAmC;AAAA,MAA5BC,OAA4B,QAA5BA,OAA4B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AAC5F,MAAMC,QAAQ,GAAGN,IAAI,KAAKJ,SAAS,CAACW,MAApC;AAEA,MAAMC,SAAS,GAAG;AACdC,IAAAA,SAAS,gBAASX,oBAAT,CADK;AAEdM,IAAAA,OAAO,EAAPA,OAFc;AAGdM,IAAAA,QAAQ,EAAE,CACN;AAAM,MAAA,GAAG,EAAC;AAAV,OAAkBT,IAAlB,CADM,EAEN,oBAAC,WAAD;AACI,MAAA,GAAG,EAAC,MADR;AAEI,MAAA,KAAK,EAAEE,UAAU,GAAG,SAAH,GAAe,MAFpC;AAGI,MAAA,SAAS,EAAC,OAHd;AAII,MAAA,IAAI,EAAC,KAJT;AAKI,MAAA,SAAS,EAAC;AALd,MAFM;AAHI,GAAlB;;AAcA,MAAMQ,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAON,YAAY,GAAGA,YAAY,CAACG,SAAD,CAAf,GAA6B,oBAAC,WAAD,EAAiBA,SAAjB,CAAhD;AAAA,GAAnB;;AAEA,SACI;AAAK,IAAA,SAAS,EAAC;AAAf,KACKF,QAAQ,GAAGK,UAAU,EAAb,GAAkB;AAAM,IAAA,SAAS,EAAEb;AAAjB,KAAwCG,IAAxC,CAD/B,EAEK,CAAC,CAACC,KAAF,IAAW;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAwCA,KAAxC,CAFhB,CADJ;AAMH,CAzBD;;AA2BAH,YAAY,CAACa,SAAb,GAAyB;AACrBZ,EAAAA,IAAI,EAAEH,gBADe;AAErBI,EAAAA,IAAI,EAAET,SAAS,CAACqB,MAAV,CAAiBC,UAFF;AAGrBZ,EAAAA,KAAK,EAAEV,SAAS,CAACqB,MAHI;AAIrBV,EAAAA,UAAU,EAAEX,SAAS,CAACuB,IAJD;AAKrBX,EAAAA,OAAO,EAAEZ,SAAS,CAACwB,IALE;AAMrBX,EAAAA,YAAY,EAAEb,SAAS,CAACwB;AANH,CAAzB;AASA,eAAejB,YAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport PlainButton from '../../../components/plain-button';\nimport IconChevron from '../../../icons/general/IconChevron';\n\nimport ItemTypes from '../item-types';\nimport { ItemTypePropType } from '../prop-types';\n\nconst ITEM_LIST_NAME_CLASS = 'item-list-name';\n\nconst ItemListName = ({ type, name, label = '', isSelected = false, onClick, linkRenderer }) => {\n const isFolder = type === ItemTypes.FOLDER;\n\n const linkProps = {\n className: `lnk ${ITEM_LIST_NAME_CLASS}`,\n onClick,\n children: [\n <span key=\"name\">{name}</span>,\n <IconChevron\n key=\"icon\"\n color={isSelected ? '#447991' : '#333'}\n direction=\"right\"\n size=\"4px\"\n thickness=\"1px\"\n />,\n ],\n };\n const renderLink = () => (linkRenderer ? linkRenderer(linkProps) : <PlainButton {...linkProps} />);\n\n return (\n <div className=\"item-list-name-container\">\n {isFolder ? renderLink() : <span className={ITEM_LIST_NAME_CLASS}>{name}</span>}\n {!!label && <span className=\"item-list-name-label\">{label}</span>}\n </div>\n );\n};\n\nItemListName.propTypes = {\n type: ItemTypePropType,\n name: PropTypes.string.isRequired,\n label: PropTypes.string,\n isSelected: PropTypes.bool,\n onClick: PropTypes.func,\n linkRenderer: PropTypes.func,\n};\n\nexport default ItemListName;\n"],"file":"ItemListName.js"}
1
+ {"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemListName.js"],"names":["PropTypes","React","PlainButton","IconChevron","ItemTypes","ItemTypePropType","ITEM_LIST_NAME_CLASS","ItemListName","itemId","type","name","label","isSelected","onClick","linkRenderer","isFolder","FOLDER","linkProps","className","children","renderLink","propTypes","string","isRequired","bool","func"],"mappings":";;;;;;AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAOC,WAAP,MAAwB,kCAAxB;AACA,OAAOC,WAAP,MAAwB,oCAAxB;AAEA,OAAOC,SAAP,MAAsB,eAAtB;AACA,SAASC,gBAAT,QAAiC,eAAjC;AAEA,IAAMC,oBAAoB,GAAG,gBAA7B;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAAwF;AAAA,yBAArFC,MAAqF;AAAA,MAArFA,MAAqF,4BAA5E,EAA4E;AAAA,MAAxEC,IAAwE,QAAxEA,IAAwE;AAAA,MAAlEC,IAAkE,QAAlEA,IAAkE;AAAA,wBAA5DC,KAA4D;AAAA,MAA5DA,KAA4D,2BAApD,EAAoD;AAAA,6BAAhDC,UAAgD;AAAA,MAAhDA,UAAgD,gCAAnC,KAAmC;AAAA,MAA5BC,OAA4B,QAA5BA,OAA4B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AACzG,MAAMC,QAAQ,GAAGN,IAAI,KAAKL,SAAS,CAACY,MAApC;AAEA,MAAMC,SAAS,GAAG;AACdC,IAAAA,SAAS,gBAASZ,oBAAT,CADK;AAEdO,IAAAA,OAAO,EAAPA,OAFc;AAGdM,IAAAA,QAAQ,EAAE,CACN;AAAM,MAAA,GAAG,EAAC;AAAV,OAAkBT,IAAlB,CADM,EAEN,oBAAC,WAAD;AACI,MAAA,GAAG,EAAC,MADR;AAEI,MAAA,KAAK,EAAEE,UAAU,GAAG,SAAH,GAAe,MAFpC;AAGI,MAAA,SAAS,EAAC,OAHd;AAII,MAAA,IAAI,EAAC,KAJT;AAKI,MAAA,SAAS,EAAC;AALd,MAFM;AAHI,GAAlB;;AAcA,MAAMQ,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAON,YAAY,GAAGA,YAAY,mBAAMG,SAAN;AAAiBT,MAAAA,MAAM,EAANA;AAAjB,OAAf,GAA4C,oBAAC,WAAD,EAAiBS,SAAjB,CAA/D;AAAA,GAAnB;;AAEA,SACI;AAAK,IAAA,SAAS,EAAC;AAAf,KACKF,QAAQ,GAAGK,UAAU,EAAb,GAAkB;AAAM,IAAA,SAAS,EAAEd;AAAjB,KAAwCI,IAAxC,CAD/B,EAEK,CAAC,CAACC,KAAF,IAAW;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAwCA,KAAxC,CAFhB,CADJ;AAMH,CAzBD;;AA2BAJ,YAAY,CAACc,SAAb,GAAyB;AACrBb,EAAAA,MAAM,EAAER,SAAS,CAACsB,MADG;AAErBb,EAAAA,IAAI,EAAEJ,gBAFe;AAGrBK,EAAAA,IAAI,EAAEV,SAAS,CAACsB,MAAV,CAAiBC,UAHF;AAIrBZ,EAAAA,KAAK,EAAEX,SAAS,CAACsB,MAJI;AAKrBV,EAAAA,UAAU,EAAEZ,SAAS,CAACwB,IALD;AAMrBX,EAAAA,OAAO,EAAEb,SAAS,CAACyB,IANE;AAOrBX,EAAAA,YAAY,EAAEd,SAAS,CAACyB;AAPH,CAAzB;AAUA,eAAelB,YAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport PlainButton from '../../../components/plain-button';\nimport IconChevron from '../../../icons/general/IconChevron';\n\nimport ItemTypes from '../item-types';\nimport { ItemTypePropType } from '../prop-types';\n\nconst ITEM_LIST_NAME_CLASS = 'item-list-name';\n\nconst ItemListName = ({ itemId = '', type, name, label = '', isSelected = false, onClick, linkRenderer }) => {\n const isFolder = type === ItemTypes.FOLDER;\n\n const linkProps = {\n className: `lnk ${ITEM_LIST_NAME_CLASS}`,\n onClick,\n children: [\n <span key=\"name\">{name}</span>,\n <IconChevron\n key=\"icon\"\n color={isSelected ? '#447991' : '#333'}\n direction=\"right\"\n size=\"4px\"\n thickness=\"1px\"\n />,\n ],\n };\n const renderLink = () => (linkRenderer ? linkRenderer({ ...linkProps, itemId }) : <PlainButton {...linkProps} />);\n\n return (\n <div className=\"item-list-name-container\">\n {isFolder ? renderLink() : <span className={ITEM_LIST_NAME_CLASS}>{name}</span>}\n {!!label && <span className=\"item-list-name-label\">{label}</span>}\n </div>\n );\n};\n\nItemListName.propTypes = {\n itemId: PropTypes.string,\n type: ItemTypePropType,\n name: PropTypes.string.isRequired,\n label: PropTypes.string,\n isSelected: PropTypes.bool,\n onClick: PropTypes.func,\n linkRenderer: PropTypes.func,\n};\n\nexport default ItemListName;\n"],"file":"ItemListName.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-ui-elements",
3
- "version": "15.0.0-beta.39",
3
+ "version": "15.0.0-beta.41",
4
4
  "description": "Box UI Elements",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -57,6 +57,7 @@ const itemNameCellRenderer = rendererParams => {
57
57
  name && (
58
58
  <div className={TABLE_CELL_CLASS}>
59
59
  <ItemListName
60
+ itemId={id}
60
61
  type={type}
61
62
  name={name}
62
63
  label={label}
@@ -9,7 +9,7 @@ import { ItemTypePropType } from '../prop-types';
9
9
 
10
10
  const ITEM_LIST_NAME_CLASS = 'item-list-name';
11
11
 
12
- const ItemListName = ({ type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
12
+ const ItemListName = ({ itemId = '', type, name, label = '', isSelected = false, onClick, linkRenderer }) => {
13
13
  const isFolder = type === ItemTypes.FOLDER;
14
14
 
15
15
  const linkProps = {
@@ -26,7 +26,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
26
26
  />,
27
27
  ],
28
28
  };
29
- const renderLink = () => (linkRenderer ? linkRenderer(linkProps) : <PlainButton {...linkProps} />);
29
+ const renderLink = () => (linkRenderer ? linkRenderer({ ...linkProps, itemId }) : <PlainButton {...linkProps} />);
30
30
 
31
31
  return (
32
32
  <div className="item-list-name-container">
@@ -37,6 +37,7 @@ const ItemListName = ({ type, name, label = '', isSelected = false, onClick, lin
37
37
  };
38
38
 
39
39
  ItemListName.propTypes = {
40
+ itemId: PropTypes.string,
40
41
  type: ItemTypePropType,
41
42
  name: PropTypes.string.isRequired,
42
43
  label: PropTypes.string,
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import PropTypes from 'prop-types';
2
3
  import sinon from 'sinon';
3
4
 
4
5
  import ItemListName from '../ItemListName';
@@ -53,15 +54,28 @@ describe('features/content-explorer/item-list/ItemListName', () => {
53
54
 
54
55
  describe('linkRenderer', () => {
55
56
  test('should use linkRenderer when specified', () => {
57
+ const itemId = '1';
56
58
  const name = 'item';
57
- const linkRenderer = () => <button type="button" className="name-test" />;
59
+ const linkRenderer = props => <button type="button" className={`name-${props.itemId}`} />;
60
+ linkRenderer.propTypes = { itemId: PropTypes.string };
58
61
  const wrapper = renderComponent({
62
+ itemId,
59
63
  name,
60
64
  type: 'folder',
61
65
  linkRenderer,
62
66
  });
67
+ expect(wrapper.find(`button.name-${itemId}`)).toHaveLength(1);
68
+ });
63
69
 
64
- expect(wrapper.find('button.name-test').length).toBe(1);
70
+ test('should not pass id to PlainButton', () => {
71
+ const itemId = 'abc'; // Must be a valid html ID for this test. wrapper.find('#1') will crash.
72
+ const name = 'item';
73
+ const wrapper = renderComponent({
74
+ itemId,
75
+ name,
76
+ type: 'folder',
77
+ });
78
+ expect(wrapper.find(`#${itemId}`)).toHaveLength(0);
65
79
  });
66
80
  });
67
81
  });