import React, { CSSProperties } from 'react'
import LmIcon from '../icon/LmIcon'
import { LmDividerProps } from './dividerTypes'
import Divider, { DividerProps } from '@mui/material/Divider'
import { LmComponentRender } from '@LmComponentRender'
export function LmDivider({
content,
isStackDivider
}: LmDividerProps): JSX.Element {
const style: CSSProperties = {}
const customColor = content.color?.rgba
const iconName = content.icon?.name
const iconSize = content.size
if (iconSize) {
style.height = `${iconSize}px`
}
const childStyle: CSSProperties = {
borderTopWidth: `${content.thickness || 1}px`
}
if (content.width) {
childStyle.width = `${content.width}%`
}
const isVertical = isStackDivider || content.orientation === 'vertical'
const dividerProps: DividerProps = {
orientation: isVertical ? 'vertical' : 'horizontal',
flexItem: isVertical ? true : undefined,
textAlign: content.alignment || 'center',
sx: {
width: content.width ? `${content.width}%` : isVertical ? '50%' : '100%',
marginX: content.width && !isVertical ? `auto` : undefined,
color: content.theme_color || customColor || 'grey.400',
borderColor: 'currentColor',
'&.MuiDivider-vertical': {
height: content.vertical_height
? `${content.vertical_height}px`
: undefined,
// height: content.width ? `${content.width}px` : '100%'
// marginX: 'auto'
borderRightWidth: (content.thickness || 1) + 'px'
},
'& .MuiDivider-wrapper': {
display: 'flex'
},
borderBottomWidth: content.thickness
? `${content.thickness}px`
: undefined,
'&:not(.MuiDivider-withChildren)': {
marginY: '10px'
},
'&.MuiDivider-withChildren': {
'&:before': {
borderColor: 'currentColor',
borderTopWidth: content.thickness
? `${content.thickness || 1}px`
: undefined,
marginTop: content.thickness ? `-${content.thickness}px` : undefined
},
'&:after': {
borderColor: 'currentColor',
borderTopWidth: content.thickness
? `${content.thickness || 1}px`
: undefined,
marginTop: content.thickness ? `-${content.thickness}px` : undefined
}
}
}
}
if (iconName || content.body?.length) {
dividerProps.children = (
<>
{iconName && (
)}
{content.body?.map((blok) => (
))}
>
)
}
return
}