Skip to content

Commit

Permalink
yauheni/76938/timeline ts migration
Browse files Browse the repository at this point in the history
  • Loading branch information
“yauheni-kryzhyk-deriv” committed Sep 23, 2022
1 parent 71b2327 commit 601993c
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 44 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Timeline from './timeline.jsx';
import Timeline from './timeline';
import './timeline.scss';

export default Timeline;
43 changes: 0 additions & 43 deletions packages/components/src/components/timeline/timeline.jsx

This file was deleted.

52 changes: 52 additions & 0 deletions packages/components/src/components/timeline/timeline.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import React from 'react';
import classNames from 'classnames';
import Text from '../text';

type TOval = {
children: number;
};

const Oval = ({ children }: TOval) => {
return (
<div className='dc-timeline__oval'>
<Text color='colored-background' sizd='s' weight='bold' className='dc-timeline__number'>
{children}
</Text>
</div>
);
};

type TItem = React.HTMLAttributes<HTMLDivElement> & { item_title: string | React.ReactNode };

type TTimeline = React.HTMLAttributes<HTMLDivElement> & { disabled_items: number[] };

const Timeline = ({ children, disabled_items, ...props }: React.PropsWithChildren<TTimeline>) => {
return (
<div {...props}>
{Array.isArray(children) &&
children.map((child, idx) => (
<div
key={idx}
className={classNames('dc-timeline__flex', {
'dc-timeline__flex--no-border': children.length === idx + 1,
'dc-timeline__flex--disabled': disabled_items && disabled_items.includes(idx + 1),
})}
>
<Oval>{idx + 1}</Oval>
<div className='dc-timeline__container'>
<Text as='h2' color='prominent' size='xs' className='dc-timeline__title'>
{child.props.item_title}
</Text>
<div className='dc-timeline__content'>{child}</div>
</div>
</div>
))}
</div>
);
};

const Item = ({ children, ...props }: React.PropsWithChildren<TItem>) => <div {...props}>{children}</div>;

Timeline.Item = Item;

export default Timeline;

0 comments on commit 601993c

Please sign in to comment.