Skip to content

Commit a1a9aed

Browse files
committed
lint dev-center
1 parent 4c8760a commit a1a9aed

File tree

9 files changed

+212
-208
lines changed

9 files changed

+212
-208
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"@sprig-technologies/sprig-browser": "^2.20.1",
2727
"@stripe/react-stripe-js": "1.13.0",
2828
"@stripe/stripe-js": "1.41.0",
29+
"@types/testing-library__jest-dom": "^5.14.5",
2930
"apexcharts": "^3.36.0",
3031
"axios": "^1.1.2",
3132
"browser-cookies": "^1.2.0",

src-ts/.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ module.exports = {
3535
}
3636
},
3737
rules: {
38+
'@typescript-eslint/ban-ts-comment': 'off',
3839
'@typescript-eslint/ban-types': [
3940
'error',
4041
{

src-ts/tools/dev-center/dev-center-lib/CopyButton/CopyButton.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as React from 'react'
2+
import classNames from 'classnames'
23

34
import { Button, copyTextToClipboard, IconOutline } from '../../../../lib'
45

@@ -10,15 +11,17 @@ interface CopyButtonProps {
1011
}
1112

1213
export const CopyButton: React.FC<CopyButtonProps> = props => {
13-
const { text = '', className = '' }: CopyButtonProps = props
14+
function handleCopyClick(): void {
15+
copyTextToClipboard(props.text ?? '')
16+
}
1417

1518
return (
1619
<Button
1720
size='xl'
1821
buttonStyle='icon'
19-
className={`${styles['copy-btn']} ${className}`}
22+
className={classNames(styles['copy-btn'], props.className)}
2023
icon={IconOutline.DocumentDuplicateIcon}
21-
onClick={() => copyTextToClipboard(text)}
24+
onClick={handleCopyClick}
2225
/>
2326
)
2427
}

src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/LayoutDoc.tsx

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,17 @@ interface LayoutDocProps {
1010
toc: TOC
1111
}
1212

13-
export const LayoutDoc: React.FC<LayoutDocProps> = props => {
14-
const { children, toc, disableToc }: LayoutDocProps = props
15-
16-
return (
17-
<main className={styles.main}>
18-
<div
19-
className={`${styles.mainContent} ${
20-
disableToc ? styles.disableToc : ''
21-
}`}
22-
>
23-
{children}
24-
</div>
25-
{disableToc ? undefined : <TableOfContents toc={toc} />}
26-
</main>
27-
)
28-
}
13+
export const LayoutDoc: React.FC<LayoutDocProps> = props => (
14+
<main className={styles.main}>
15+
<div
16+
className={`${styles.mainContent} ${
17+
props.disableToc ? styles.disableToc : ''
18+
}`}
19+
>
20+
{props.children}
21+
</div>
22+
{props.disableToc ? undefined : <TableOfContents toc={props.toc} />}
23+
</main>
24+
)
2925

3026
export default LayoutDoc

src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/MarkdownAccordion.tsx

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,44 @@
1-
import * as React from 'react'
1+
import {
2+
Children,
3+
Dispatch,
4+
FC, isValidElement, ReactNode, SetStateAction, useState,
5+
} from 'react'
26

37
import { IconSolid, useWindowSize } from '../../../../lib'
48
import { Breakpoints } from '../../../../lib/styles'
59

610
import styles from './MarkdownAccordion.module.scss'
711

812
interface MarkdownAccordionProps {
9-
children: React.ReactNode
13+
children: ReactNode
1014
}
1115

12-
export const MarkdownAccordion: React.FC<MarkdownAccordionProps> = props => {
13-
const { children: childrenProp }: MarkdownAccordionProps = props
16+
export const MarkdownAccordion: FC<MarkdownAccordionProps> = props => {
1417

1518
const [collapsed, setCollapsed]: [
1619
boolean,
17-
React.Dispatch<React.SetStateAction<boolean>>
18-
] = React.useState<boolean>(false)
20+
Dispatch<SetStateAction<boolean>>
21+
] = useState<boolean>(false)
1922
const size: ReturnType<typeof useWindowSize> = useWindowSize()
2023

2124
if (size && size.width > Breakpoints.lgMax) {
22-
return <>{childrenProp}</>
25+
return <>{props.children}</>
26+
}
27+
28+
const [header, ...childs]: ReturnType<typeof Children.toArray>
29+
= Children.toArray(props.children)
30+
31+
function handleClickOutline(): void {
32+
if (isValidElement(header)) {
33+
setCollapsed(!collapsed)
34+
}
2335
}
2436

25-
const [header, ...children]: ReturnType<typeof React.Children.toArray>
26-
= React.Children.toArray(childrenProp)
2737
return (
2838
<div className={`${styles.accordion}`}>
2939
<div
3040
className={`${styles['pane-outline']}`}
31-
onClick={() => {
32-
if (React.isValidElement(header)) {
33-
setCollapsed(!collapsed)
34-
}
35-
}}
41+
onClick={handleClickOutline}
3642
>
3743
{header}
3844
{collapsed ? (
@@ -42,7 +48,7 @@ export const MarkdownAccordion: React.FC<MarkdownAccordionProps> = props => {
4248
)}
4349
</div>
4450

45-
{!collapsed && children}
51+
{!collapsed && childs}
4652
</div>
4753
)
4854
}

0 commit comments

Comments
 (0)