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

53 lines
2.0 KiB
TypeScript

"use client";
import React from "react";
import { useBuilderState } from "../hooks/useBuilderState";
import type { Component, TitleConfig } from "@/types/invyone-component";
export default function TitleProps({ block }: { block: Component }) {
const updateBlockConfig = useBuilderState((s) => s.updateBlockConfig);
const config = block.config as TitleConfig;
const update = (key: string, val: any) => updateBlockConfig(block.id, { [key]: val });
return (
<>
<div className="dev-prop-sec"> </div>
<div className="dev-prop-row">
<span className="dev-prop-label"></span>
<input className="dev-input" value={config.text}
onChange={(e) => update("text", e.target.value)} />
</div>
<div className="dev-prop-row inline">
<span className="dev-prop-label"></span>
<select className="dev-select" value={config.fontSize}
onChange={(e) => update("fontSize", e.target.value)}>
<option value="0.5rem"></option>
<option value="0.75rem"></option>
<option value="1rem"></option>
<option value="1.2rem"> </option>
</select>
</div>
<div className="dev-prop-row inline">
<span className="dev-prop-label"></span>
<select className="dev-select" value={config.fontWeight}
onChange={(e) => update("fontWeight", e.target.value)}>
<option value="400"></option>
<option value="500"> </option>
<option value="700"></option>
<option value="800"> </option>
</select>
</div>
<div className="dev-prop-row inline">
<span className="dev-prop-label"></span>
<select className="dev-select" value={config.align}
onChange={(e) => update("align", e.target.value)}>
<option value="left"></option>
<option value="center"></option>
<option value="right"></option>
</select>
</div>
</>
);
}