에디터 정리 및 버그 수정
This commit is contained in:
@@ -337,10 +337,48 @@ export function PublicPageRenderer({ blocks }: PublicPageRendererProps) {
|
||||
.filter(Boolean)
|
||||
.join(" ");
|
||||
|
||||
const hasImage = typeof (props as any).imageSrc === "string" && (props as any).imageSrc.trim() !== "";
|
||||
const placement = ((props as any).imagePlacement as string | undefined) ?? "left";
|
||||
|
||||
let innerContent: React.ReactNode;
|
||||
if (!hasImage) {
|
||||
innerContent = <span className="whitespace-pre-wrap">{props.label}</span>;
|
||||
} else {
|
||||
const src = (props as any).imageSrc as string;
|
||||
const altRaw = (props as any).imageAlt as string | undefined;
|
||||
const alt = altRaw && altRaw.trim() !== "" ? altRaw.trim() : props.label;
|
||||
|
||||
const imgEl = (
|
||||
// eslint-disable-next-line @next/next/no-img-element
|
||||
<img src={src} alt={alt} className="inline-block max-w-full h-auto" />
|
||||
);
|
||||
|
||||
const labelSpan = <span className="whitespace-pre-wrap">{props.label}</span>;
|
||||
const isVertical = placement === "top" || placement === "bottom";
|
||||
const wrapperClassNames = [
|
||||
"inline-flex",
|
||||
"items-center",
|
||||
"gap-2",
|
||||
isVertical ? "flex-col" : "",
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(" ");
|
||||
|
||||
const first = placement === "left" || placement === "top" ? imgEl : labelSpan;
|
||||
const second = placement === "left" || placement === "top" ? labelSpan : imgEl;
|
||||
|
||||
innerContent = (
|
||||
<span className={wrapperClassNames}>
|
||||
{first}
|
||||
{second}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div key={block.id} className={wrapperClass}>
|
||||
<a href={props.href} className={buttonClassName} style={buttonStyle}>
|
||||
<span className="whitespace-pre-wrap">{props.label}</span>
|
||||
{innerContent}
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user