From b7b484e932fe7f12743d61521b4e7f5c0b5e7e9d Mon Sep 17 00:00:00 2001 From: JF-Cozy Date: Wed, 7 Feb 2024 14:53:23 +0100 Subject: [PATCH] feat(MidEllipsis): Use `ui.midellipsis-lib.enabled` flag for better one --- react/MidEllipsis/Readme.md | 36 ++++-------------------------------- react/MidEllipsis/index.jsx | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/react/MidEllipsis/Readme.md b/react/MidEllipsis/Readme.md index 3ec0e8690f..4710cc8867 100644 --- a/react/MidEllipsis/Readme.md +++ b/react/MidEllipsis/Readme.md @@ -1,39 +1,11 @@ #### Ellipsis in the middle -```jsx -import MidEllipsis from 'cozy-ui/transpiled/react/MidEllipsis'; - - -``` - -#### Ellipsis in directory tree - -```jsx -import MidEllipsis from 'cozy-ui/transpiled/react/MidEllipsis'; - - -``` - -#### Ellipsis with React string children +Text can be passed in `text` prop or as `child`. ```jsx -import MidEllipsis from 'cozy-ui/transpiled/react/MidEllipsis'; +import MidEllipsis from 'cozy-ui/transpiled/react/MidEllipsis' -/Administratif/Netflix -``` - -#### Ellipsis in directory tree with complex names - -```jsx -import MidEllipsis from 'cozy-ui/transpiled/react/MidEllipsis'; - - -``` - -#### Ellipsis in directory tree with complex names and unusual characters +; -```jsx -import MidEllipsis from 'cozy-ui/transpiled/react/MidEllipsis'; - - + ``` diff --git a/react/MidEllipsis/index.jsx b/react/MidEllipsis/index.jsx index 2b07310f29..eead048fc7 100644 --- a/react/MidEllipsis/index.jsx +++ b/react/MidEllipsis/index.jsx @@ -1,6 +1,8 @@ import React, { forwardRef } from 'react' -import cx from 'classnames' import PropTypes from 'prop-types' +import cx from 'classnames' +import MiddleEllipsis from 'react-middle-ellipsis' +import flag from 'cozy-flags' /** The left-to-right mark (LRM) is a control character (an invisible formatting character) * used in computerized typesetting (including word processing in a program like Microsoft Word) @@ -14,7 +16,7 @@ import PropTypes from 'prop-types' * */ const LRM = <>‎ -const MidEllipsis = forwardRef( +const MidEllipsisLegacy = forwardRef( ({ text, className, children, ...props }, ref) => { if (text && typeof text !== 'string') throw new Error('The "text" prop of MidEllipsis can only be a string') @@ -41,11 +43,36 @@ const MidEllipsis = forwardRef( } ) -MidEllipsis.displayName = 'MidEllipsis' +MidEllipsisLegacy.displayName = 'MidEllipsis' -MidEllipsis.propTypes = { +MidEllipsisLegacy.propTypes = { text: PropTypes.string, className: PropTypes.string } +// -- +// This is new component based on react-middle-ellipsis +// We will delete all other stuff if perf test are successful with this one +const styles = { whiteSpace: 'nowrap', overflow: 'hidden' } + +const MidEllipsisWithLib = forwardRef(({ text, ...props }, ref) => { + return ( + + + {text} + + + ) +}) +// +// -- + +const MidEllipsis = forwardRef((props, ref) => { + if (flag('ui.midellipsis-lib.enabled')) { + return + } + + return +}) + export default MidEllipsis