오류 수정
CI / test (push) Failing after 5m41s
CI / e2e (push) Has been skipped
CI / pr_and_merge (push) Has been skipped

This commit is contained in:
2025-12-12 18:04:31 +09:00
parent 6804665b95
commit 4840a530b6
205 changed files with 1802 additions and 9887 deletions
+13 -8
View File
@@ -206,7 +206,7 @@ function EditorPageInner() {
}
updateProjectConfig({
title: "새 페이지",
title: "New page",
slug: "my-landing",
canvasPreset: "full",
canvasBgColorHex: "#020617",
@@ -1084,6 +1084,7 @@ function EditorPageInner() {
listItemToolbarMoveDownLabel={m.listItemToolbarMoveDownLabel}
listItemToolbarIndentLabel={m.listItemToolbarIndentLabel}
listItemToolbarOutdentLabel={m.listItemToolbarOutdentLabel}
imageBlockEmptyPreviewPlaceholder={m.imageBlockEmptyPreviewPlaceholder}
/>
</Fragment>
);
@@ -1425,6 +1426,7 @@ interface SortableEditorBlockProps {
listItemToolbarMoveDownLabel: string;
listItemToolbarIndentLabel: string;
listItemToolbarOutdentLabel: string;
imageBlockEmptyPreviewPlaceholder: string;
}
function SortableEditorBlock({
@@ -1449,6 +1451,7 @@ function SortableEditorBlock({
listItemToolbarMoveDownLabel,
listItemToolbarIndentLabel,
listItemToolbarOutdentLabel,
imageBlockEmptyPreviewPlaceholder,
}: SortableEditorBlockProps) {
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
id: block.id,
@@ -1560,7 +1563,7 @@ function SortableEditorBlock({
<button
type="button"
className="mt-0.5 h-4 w-4 rounded border border-slate-300 bg-slate-50 text-[10px] flex items-center justify-center text-slate-500 hover:bg-slate-100 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-400 dark:hover:bg-slate-800"
aria-label="블록 드래그 핸들"
aria-label="Block drag handle"
{...listeners}
{...attributes}
>
@@ -1571,7 +1574,7 @@ function SortableEditorBlock({
isEditing ? (
<textarea
className="w-full bg-transparent outline-none resize-none text-sm"
aria-label="텍스트 블록 내용 편집"
aria-label="Edit text block content"
value={editingText}
onChange={(e) => setEditingText(e.target.value)}
onBlur={commitEditing}
@@ -1715,8 +1718,8 @@ function SortableEditorBlock({
const options = Array.isArray(selectProps.options) && selectProps.options.length > 0
? selectProps.options
: [
{ label: "옵션 1", value: "option_1" },
{ label: "옵션 2", value: "option_2" },
{ label: "Option 1", value: "option_1" },
{ label: "Option 2", value: "option_2" },
];
const selectTokens = computeFormSelectEditorTokens(selectProps);
@@ -2080,7 +2083,7 @@ function SortableEditorBlock({
/>
) : (
<span className="text-[10px] text-slate-900 dark:text-slate-500 px-2 py-4">
URL .
{imageBlockEmptyPreviewPlaceholder}
</span>
)}
</div>
@@ -2147,7 +2150,7 @@ function SortableEditorBlock({
: [
{
id: `${block.id}_item_1`,
text: "리스트 아이템 1",
text: "List item 1",
children: [],
},
];
@@ -2350,6 +2353,8 @@ interface ColumnDroppableProps {
function ColumnDroppable({ id, sectionId, columnId, basis, blocks, renderBlocks, span }: ColumnDroppableProps) {
const { setNodeRef } = useDroppable({ id });
const { over } = useDndContext();
const locale = useAppLocale();
const editorMessages = getEditorMessages(locale);
// 현재 드롭 대상이 이 컬럼이거나, 이 컬럼 안 블록들의 dropzone-before / dropzone-after 인 경우
// 컬럼 박스를 강조해서 사용자가 어느 컬럼으로 이동 중인지 명확히 보여준다.
@@ -2400,7 +2405,7 @@ function ColumnDroppable({ id, sectionId, columnId, basis, blocks, renderBlocks,
>
{blocks.length === 0 ? (
<span className="text-[11px] px-2 text-center text-slate-900 dark:text-slate-300">
{`컬럼 영역 (span ${span}/12)`}
{`${editorMessages.columnAreaLabel} (span ${span}/12)`}
</span>
) : (
<SortableContext items={blocks.map((b) => b.id)} strategy={verticalListSortingStrategy}>