Files
invyone/frontend/components/builder/props/FormProps.tsx
T
2026-04-10 13:33:37 +09:00

42 lines
1.6 KiB
TypeScript

"use client";
import React from "react";
import { useBuilderState } from "../hooks/useBuilderState";
import FieldListEditor from "./FieldListEditor";
import type { Component, FormConfig } from "@/types/invyone-component";
export default function FormProps({ block }: { block: Component }) {
const updateBlockConfig = useBuilderState((s) => s.updateBlockConfig);
const config = block.config as FormConfig;
const update = (key: string, val: any) => updateBlockConfig(block.id, { [key]: val });
return (
<>
<div className="dev-prop-sec"> </div>
<div className="dev-prop-row inline">
<span className="dev-prop-label"> </span>
<select className="dev-select" value={config.columns}
onChange={(e) => update("columns", Number(e.target.value))}>
<option value={1}>1</option>
<option value={2}>2</option>
<option value={3}>3</option>
</select>
</div>
<div className="dev-prop-row inline">
<span className="dev-prop-label"> </span>
<select className="dev-select" value={config.saveAction?.method || "UPSERT"}
onChange={(e) => update("saveAction", { ...config.saveAction, method: e.target.value })}>
<option value="INSERT"></option>
<option value="UPDATE"></option>
<option value="UPSERT">/</option>
</select>
</div>
<div className="dev-prop-sec"> </div>
<div className="dev-hint">체크: 폼에 · 클릭: 상세 </div>
<FieldListEditor filter={(f) => !f.system} toggleKey="visible" />
</>
);
}