Skip to content

Commit

Permalink
Merge pull request #17 from jim-deriv/Jim/75752/text-component-ts-mig…
Browse files Browse the repository at this point in the history
…ration-current

Jim/75752/text component ts migration current
  • Loading branch information
jim-deriv committed Sep 23, 2022
2 parents 0570996 + 9eb2869 commit 673f7ed
Show file tree
Hide file tree
Showing 18 changed files with 61 additions and 56 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import PropTypes from 'prop-types';
import * as React from 'react';
import classNames from 'classnames';
import Text from '../text/text.jsx';
import Text from '../text/text';

const AppSettingsMenuItem = ({ is_active, title, refSetter, onClick }) => {
const text_colour = is_active ? 'prominent' : 'less-prominent';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import classNames from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import { CSSTransition } from 'react-transition-group';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';

const ContentExpander = ({
arrow_style,
Expand Down
2 changes: 1 addition & 1 deletion packages/components/src/components/dropdown/dropdown.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { mobileOSDetect, getPosition } from '@deriv/shared';
import { listPropType, findNextFocusableNode, findPreviousFocusableNode } from './dropdown';
import Items from './items.jsx';
import DisplayText from './display-text.jsx';
import Text from '../text/text.jsx';
import Text from '../text/text';
import { useBlockScroll, useOnClickOutside } from '../../hooks';
import ThemedScrollbars from '../themed-scrollbars/themed-scrollbars.jsx';
import Icon from '../icon/icon';
Expand Down
2 changes: 1 addition & 1 deletion packages/components/src/components/input/input.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import classNames from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import Field from '../field';
import Text from '../text/text.jsx';
import Text from '../text/text';

const InputWrapper = ({ children, has_footer }) =>
has_footer ? <div className='dc-input__wrapper'>{children}</div> : children;
Expand Down
2 changes: 1 addition & 1 deletion packages/components/src/components/loading/loading.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import classNames from 'classnames';
import React from 'react';
import PropTypes from 'prop-types';
import Text from '../text/text.jsx';
import Text from '../text/text';

const Loading = ({ className, id, is_fullscreen = true, is_slow_loading, status, theme }) => {
const theme_class = theme ? `barspinner-${theme}` : 'barspinner-light';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import PropTypes from 'prop-types';
import React from 'react';
import ReactDOM from 'react-dom';
import { CSSTransition } from 'react-transition-group';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';
import Div100vhContainer from '../div100vh-container';

const MobileDialog = props => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import classNames from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';

const SubMenuSection = props => {
const { submenu_toggle_class, section_title, section_icon, children } = props;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import classNames from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import { CSSTransition } from 'react-transition-group';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';

const SubMenu = ({
children,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import SubHeader from './mobile-drawer-subheader.jsx';
import Item from './mobile-drawer-item.jsx';
import SubMenu from './mobile-drawer-submenu.jsx';
import SubMenuSection from './mobile-drawer-submenu-section.jsx';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';

const MobileDrawer = ({
className,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import classNames from 'classnames';
import Div100vhContainer from '../div100vh-container';
import FadeWrapper from '../fade-wrapper';
import PageOverlay from '../page-overlay/page-overlay.jsx';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';

const MobileFullPageModal = ({
body_className,
Expand Down
2 changes: 1 addition & 1 deletion packages/components/src/components/modal/modal.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import ReactDOM from 'react-dom';
import { CSSTransition } from 'react-transition-group';
import Body from './modal-body.jsx';
import Footer from './modal-footer.jsx';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';
import { useOnClickOutside } from '../../hooks';

const ModalElement = ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { isMobile } from '@deriv/shared';
import ButtonLink from '../button-link/button-link.jsx';
import DesktopWrapper from '../desktop-wrapper/desktop-wrapper.jsx';
import MobileWrapper from '../mobile-wrapper/mobile-wrapper.jsx';
import Text from '../text/text.jsx';
import Text from '../text/text';

const PageError = ({
buttonOnClick,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { isMobile } from '@deriv/shared';
import Modal from '../modal/modal.jsx';
import Button from '../button/button.jsx';
import Popover from '../popover/popover.jsx';
import Text from '../text/text.jsx';
import Text from '../text/text';
import './popover-mobile.scss';

const PopoverMobile = ({
Expand Down
2 changes: 1 addition & 1 deletion packages/components/src/components/popup/popup-overlay.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as React from 'react';
import { createPortal } from 'react-dom';
import PropTypes from 'prop-types';
import Button from '../button/button.jsx';
import Text from '../text/text.jsx';
import Text from '../text/text';

const PopupOverlay = ({ title, descriptions, overlay_ref, toggleOverlay, done_text }) =>
createPortal(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import classNames from 'classnames';
import React from 'react';
import PropTypes from 'prop-types';
import Field from '../field/field.jsx';
import Text from '../text/text';
import Icon from '../icon/icon';
import Text from '../text/text.jsx';

const getDisplayText = (list_items, value) => {
const dropdown_items = Array.isArray(list_items) ? list_items : [].concat(...Object.values(list_items));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Text from './text.jsx';
import Text from './text';
import './text.scss';

export default Text;
40 changes: 0 additions & 40 deletions packages/components/src/components/text/text.jsx

This file was deleted.

45 changes: 45 additions & 0 deletions packages/components/src/components/text/text.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import classNames from 'classnames';
import React, { CSSProperties, HTMLProps } from 'react';
import { isEmptyObject } from '@deriv/shared';

type TTextProps = Omit<HTMLProps<HTMLElement>, 'size'> & {
align?: string;
weight?: string;
line_height?: string;
styles?: CSSProperties;
size: string;
};
const Text = ({
children,
size = 's',
color = 'general',
align = 'left',
weight = 'normal',
line_height = 'm',
as,
className,
styles,
...props
}: TTextProps) => {
const class_styles = {
'--text-size': `var(--text-size-${size})`,
'--text-color': `var(--text-${color})`,
'--text-lh': `var(--text-lh-${line_height})`,
'--text-weight': `var(--text-weight-${weight})`,
'--text-align': `var(--text-align-${align})`,
};
const [style, setStyle] = React.useState(class_styles);
React.useEffect(() => {
if (!isEmptyObject(styles)) {
const combined_style = { ...class_styles, ...styles };
setStyle(combined_style);
} else {
setStyle(class_styles);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [size, color, line_height, weight, align]);
const class_names = classNames('dc-text', className);
return React.createElement(as || 'span', { className: class_names, style, ...props }, children);
};

export default Text;

0 comments on commit 673f7ed

Please sign in to comment.