feat(react-components): Added Pattern component
This commit is contained in:
parent
c95ebd5934
commit
e146e55c69
20 changed files with 868 additions and 0 deletions
41
packages/react-components/src/pattern/svg.mjs
Normal file
41
packages/react-components/src/pattern/svg.mjs
Normal file
|
@ -0,0 +1,41 @@
|
|||
import React from 'react'
|
||||
import { forwardRef } from 'react'
|
||||
|
||||
export const Svg = forwardRef(
|
||||
(
|
||||
{
|
||||
embed = true,
|
||||
locale = 'en',
|
||||
className = 'freesewing pattern',
|
||||
style = {},
|
||||
viewBox = false,
|
||||
width,
|
||||
height,
|
||||
children,
|
||||
},
|
||||
ref
|
||||
) => {
|
||||
if (width < 1) width = 1000
|
||||
if (height < 1) height = 1000
|
||||
let attributes = {
|
||||
xmlns: 'http://www.w3.org/2000/svg',
|
||||
'xmlns:svg': 'http://www.w3.org/2000/svg',
|
||||
xmlnsXlink: 'http://www.w3.org/1999/xlink',
|
||||
xmlLang: locale,
|
||||
viewBox: viewBox || `0 0 ${width} ${height}`,
|
||||
className,
|
||||
style,
|
||||
}
|
||||
|
||||
if (!embed) {
|
||||
attributes.width = width + 'mm'
|
||||
attributes.height = height + 'mm'
|
||||
}
|
||||
|
||||
return (
|
||||
<svg {...attributes} ref={ref}>
|
||||
{children}
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue