Skip to content

Commit 9f2e913

Browse files
author
deshi
committed
feat(@qiwi/pijma-desktop): add overrides prop
1 parent 4f31018 commit 9f2e913

1 file changed

Lines changed: 22 additions & 18 deletions

File tree

packages/desktop/src/markdown/Markdown.tsx

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, {Children, FC} from 'react'
2-
import MarkdownComponent from 'markdown-to-jsx'
2+
import MarkdownComponent, {MarkdownOptions} from 'markdown-to-jsx'
33
import {Paragraph, Heading, Text} from '../typography'
44
import {Link} from '../link'
55
import {List} from '../list'
@@ -8,6 +8,7 @@ import {styled, Box, Image} from '@qiwi/pijma-core'
88
export interface MarkdownProps {
99
size?: 's' | 'm' | 'l'
1010
children: string
11+
overrides?: {[tag: string]: FC<any>}
1112
}
1213

1314
const MarkdownBox = styled(Box)({
@@ -127,7 +128,7 @@ const ol: FC<NumericListProps> = ({size, start, children}) => (
127128
</MarkdownBox>
128129
)
129130

130-
const overrides: {[tag: string]: FC<any>} = {
131+
const defaultOverrides: MarkdownProps['overrides'] = {
131132
p,
132133
h1,
133134
h2,
@@ -143,21 +144,24 @@ const overrides: {[tag: string]: FC<any>} = {
143144
img,
144145
}
145146

146-
export const Markdown: FC<MarkdownProps> = ({size = 'm', children}) => (
147-
<MarkdownComponent
148-
children={children}
149-
options={{
150-
overrides: Object.keys(overrides).reduce((prev, tag) => ({
151-
...prev,
152-
...{
153-
[tag]: {
154-
component: overrides[tag],
155-
props: {
156-
size,
147+
export const Markdown: FC<MarkdownProps> = ({size = 'm', children, overrides = {}}) => {
148+
const allOverrides = {...defaultOverrides, ...overrides}
149+
return (
150+
<MarkdownComponent
151+
children={children}
152+
options={{
153+
overrides: Object.keys(allOverrides).reduce<MarkdownOptions['overrides']>((prev, tag) => ({
154+
...prev,
155+
...{
156+
[tag]: {
157+
component: allOverrides[tag],
158+
props: {
159+
size,
160+
},
157161
},
158162
},
159-
},
160-
}), {}),
161-
}}
162-
/>
163-
)
163+
}), {}),
164+
}}
165+
/>
166+
)
167+
}

0 commit comments

Comments
 (0)