에디터 정리 및 버그 수정
CI / test (push) Failing after 13m50s
CI / pr_and_merge (push) Has been cancelled

This commit is contained in:
2025-12-01 13:34:16 +09:00
parent 5f541e9524
commit 6ad731b6e2
76 changed files with 1348 additions and 29 deletions
@@ -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>
);