Skip to content

Commit aae29d1

Browse files
committed
refactor: update PropTypes
1 parent 89a9a1d commit aae29d1

File tree

10 files changed

+41
-37
lines changed

10 files changed

+41
-37
lines changed

src/components/carousel/CCarousel.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export interface CCarouselProps extends HTMLAttributes<HTMLDivElement> {
1515
animate?: boolean
1616
/**
1717
* A string of all className you want applied to the base component. [docs]
18-
*
18+
*
1919
* @type string
2020
*/
2121
className?: string
@@ -27,7 +27,7 @@ export interface CCarouselProps extends HTMLAttributes<HTMLDivElement> {
2727
controls?: boolean
2828
/**
2929
* Add darker controls, indicators, and captions. [docs]
30-
*
30+
*
3131
* @type boolean
3232
*/
3333
dark?: boolean
@@ -36,7 +36,7 @@ export interface CCarouselProps extends HTMLAttributes<HTMLDivElement> {
3636
*
3737
* @type boolean | number
3838
*/
39-
interval: boolean | number
39+
interval?: boolean | number
4040
/**
4141
* index of the active item. [docs]
4242
*
@@ -158,7 +158,7 @@ export const CCarousel = forwardRef<HTMLDivElement, CCarouselProps>(
158158
setAnimating,
159159
}}
160160
>
161-
{indicators && <CCarouselIndicators/>}
161+
{indicators && <CCarouselIndicators />}
162162
<CCarouselInner>{children}</CCarouselInner>
163163
{controls && (
164164
<>
@@ -176,9 +176,13 @@ CCarousel.propTypes = {
176176
animate: PropTypes.bool,
177177
children: PropTypes.node,
178178
className: PropTypes.string,
179+
controls: PropTypes.bool,
180+
dark: PropTypes.bool,
179181
index: PropTypes.number,
180-
interval: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]).isRequired,
182+
indicators: PropTypes.bool,
183+
interval: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),
181184
onSlideChange: PropTypes.func,
185+
transition: PropTypes.oneOf(['slide', 'crossfade']),
182186
}
183187

184188
CCarousel.displayName = 'CCarousel'

src/components/form/CFormControl.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,7 @@ CFormControl.propTypes = {
113113
invalid: PropTypes.bool,
114114
plainText: PropTypes.bool,
115115
size: PropTypes.oneOf(['sm', 'lg']),
116-
type: PropTypes.oneOfType([
117-
PropTypes.oneOf(['color', 'file', 'text']),
118-
PropTypes.string,
119-
]),
116+
type: PropTypes.oneOfType([PropTypes.oneOf(['color', 'file', 'text']), PropTypes.string]),
120117
valid: PropTypes.bool,
121118
}
122119

src/components/nav/CNavGroup.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, {
22
CSSProperties,
3-
ElementType,
43
forwardRef,
54
ReactNode,
65
useContext,
@@ -21,7 +20,7 @@ export interface CNavGroupProps {
2120
/**
2221
* Set component's icon. [docs]
2322
*/
24-
icon?: string | ElementType
23+
icon?: string | ReactNode
2524
/**
2625
* TODO: . [docs]
2726
*/
@@ -134,7 +133,7 @@ export const CNavGroup = forwardRef<HTMLLIElement, CNavGroupProps>(
134133
CNavGroup.propTypes = {
135134
children: PropTypes.node,
136135
className: PropTypes.string,
137-
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
136+
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
138137
idx: PropTypes.string,
139138
toggler: PropTypes.string,
140139
visible: PropTypes.bool,

src/components/nav/CNavLink.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { ElementType, forwardRef, useContext, useEffect, useRef } from 'react'
1+
import React, { ElementType, forwardRef, ReactNode, useContext, useEffect, useRef } from 'react'
22
import PropTypes from 'prop-types'
33
import classNames from 'classnames'
44

@@ -25,7 +25,10 @@ export interface CNavLinkProps extends Omit<CLinkProps, 'idx'> {
2525
* Toggle the disabled state for the component. [docs]
2626
*/
2727
disabled?: boolean
28-
icon?: string | ElementType
28+
/**
29+
* TODO:. [docs]
30+
*/
31+
icon?: string | ReactNode
2932

3033
/**
3134
* @ignore
@@ -63,7 +66,7 @@ export const CNavLink = forwardRef<
6366
CNavLink.propTypes = {
6467
children: PropTypes.node,
6568
className: PropTypes.string,
66-
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
69+
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
6770
idx: PropTypes.string,
6871
}
6972

src/components/popover/CPopover.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ export const CPopover: FC<CPopoverProps> = ({
4848
const [_visible, setVisible] = useState(visible)
4949
const _placement = placement === 'start' ? 'left' : placement === 'end' ? 'right' : placement
5050

51-
5251
const getTransitionClass = (state: string) => {
5352
return state === 'entering'
5453
? 'fade'
@@ -129,7 +128,7 @@ CPopover.propTypes = {
129128
'left',
130129
'left-end',
131130
'start',
132-
'end'
131+
'end',
133132
]),
134133
trigger: triggerPropType,
135134
visible: PropTypes.bool,

src/components/tooltip/CTooltip.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ CTooltip.propTypes = {
121121
'left-start',
122122
'left',
123123
'left-end',
124+
'start',
125+
'end',
124126
]),
125127
trigger: triggerPropType,
126128
visible: PropTypes.bool,

src/components/widgets/CWidgetBrand.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { ElementType, forwardRef, HTMLAttributes, useMemo } from 'react'
1+
import React, { forwardRef, HTMLAttributes, ReactNode, useMemo } from 'react'
22
import PropTypes from 'prop-types'
33
import classNames from 'classnames'
44

@@ -20,7 +20,7 @@ export interface CWidgetBrandProps extends HTMLAttributes<HTMLDivElement> {
2020
* @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string
2121
*/
2222
color?: Colors
23-
headerChildren?: string | ElementType
23+
headerChildren?: string | ReactNode
2424
values?: Array<string | number> | Array<Array<string | number>>
2525
}
2626

@@ -37,15 +37,15 @@ export const CWidgetBrand = forwardRef<HTMLDivElement, CWidgetBrandProps>(
3737
const generatedItems = useMemo(() => {
3838
return (
3939
values &&
40-
values.map((value: any, index: any) => {
40+
values.map((value: any, index: number) => {
4141
return (
42-
<>
42+
<React.Fragment key={index}>
4343
{index % 2 !== 0 && <div className="vr"></div>}
44-
<CCol key={index}>
44+
<CCol>
4545
<div className="fs-5 fw-semibold">{value[0]}</div>
4646
<div className="text-uppercase text-medium-emphasis small">{value[1]}</div>
4747
</CCol>
48-
</>
48+
</React.Fragment>
4949
)
5050
})
5151
)
@@ -63,7 +63,7 @@ export const CWidgetBrand = forwardRef<HTMLDivElement, CWidgetBrandProps>(
6363
CWidgetBrand.propTypes = {
6464
className: PropTypes.string,
6565
color: colorPropType,
66-
headerChildren: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
66+
headerChildren: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
6767
values: PropTypes.arrayOf(PropTypes.any),
6868
}
6969

src/components/widgets/CWidgetDropdown.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
1+
import React, { forwardRef, HTMLAttributes, ReactNode } from 'react'
22
import PropTypes from 'prop-types'
33
import classNames from 'classnames'
44

@@ -8,8 +8,8 @@ import { CCard } from '../card/CCard'
88
import { CCardBody } from '../card/CCardBody'
99

1010
export interface CWidgetDropdownProps extends HTMLAttributes<HTMLDivElement> {
11-
action?: string | ElementType
12-
chart?: string | ElementType
11+
action?: string | ReactNode
12+
chart?: string | ReactNode
1313
/**
1414
* A string of all className you want applied to the base component. [docs]
1515
*/
@@ -47,8 +47,8 @@ export const CWidgetDropdown = forwardRef<HTMLDivElement, CWidgetDropdownProps>(
4747
)
4848

4949
CWidgetDropdown.propTypes = {
50-
action: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
51-
chart: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
50+
action: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
51+
chart: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
5252
className: PropTypes.string,
5353
color: colorPropType,
5454
title: PropTypes.string,

src/components/widgets/CWidgetIcon.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
1+
import React, { forwardRef, HTMLAttributes, ReactNode } from 'react'
22
import PropTypes from 'prop-types'
33
import classNames from 'classnames'
44

@@ -19,8 +19,8 @@ export interface CWidgetIconProps extends HTMLAttributes<HTMLDivElement> {
1919
* @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string
2020
*/
2121
color?: Colors
22-
footer?: string | ElementType
23-
icon?: string | ElementType
22+
footer?: string | ReactNode
23+
icon?: string | ReactNode
2424
iconPadding?: number
2525
padding?: number
2626
title?: string
@@ -52,8 +52,8 @@ export const CWidgetIcon = forwardRef<HTMLDivElement, CWidgetIconProps>(
5252
CWidgetIcon.propTypes = {
5353
className: PropTypes.string,
5454
color: colorPropType,
55-
footer: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
56-
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
55+
footer: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
56+
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
5757
iconPadding: PropTypes.number,
5858
padding: PropTypes.number,
5959
title: PropTypes.string,

src/components/widgets/CWidgetProgressIcon.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
1+
import React, { forwardRef, HTMLAttributes, ReactNode } from 'react'
22
import PropTypes from 'prop-types'
33

44
import { Colors, colorPropType } from '../Types'
@@ -18,7 +18,7 @@ export interface CWidgetProgressIconProps extends HTMLAttributes<HTMLDivElement>
1818
* @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string
1919
*/
2020
color?: Colors
21-
icon?: string | ElementType
21+
icon?: string | ReactNode
2222
/**
2323
* Sets the color context of the progress bar to one of CoreUI’s themed colors. [docs]
2424
*
@@ -93,7 +93,7 @@ export const CWidgetProgressIcon = forwardRef<HTMLDivElement, CWidgetProgressIco
9393
CWidgetProgressIcon.propTypes = {
9494
className: PropTypes.string,
9595
color: colorPropType,
96-
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
96+
icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
9797
progressColor: PropTypes.string,
9898
progressValue: PropTypes.number,
9999
progressWhite: PropTypes.bool,

0 commit comments

Comments
 (0)