ERP-node/frontend/lib/registry/components/table-search-widget/TableSearchWidgetConfigPane...

79 lines
2.8 KiB
TypeScript

"use client";
import React, { useState, useEffect } from "react";
import { Label } from "@/components/ui/label";
import { Checkbox } from "@/components/ui/checkbox";
interface TableSearchWidgetConfigPanelProps {
component: any;
onUpdateProperty: (property: string, value: any) => void;
}
export function TableSearchWidgetConfigPanel({
component,
onUpdateProperty,
}: TableSearchWidgetConfigPanelProps) {
const [localAutoSelect, setLocalAutoSelect] = useState(
component.componentConfig?.autoSelectFirstTable ?? true
);
const [localShowSelector, setLocalShowSelector] = useState(
component.componentConfig?.showTableSelector ?? true
);
useEffect(() => {
setLocalAutoSelect(component.componentConfig?.autoSelectFirstTable ?? true);
setLocalShowSelector(component.componentConfig?.showTableSelector ?? true);
}, [component.componentConfig]);
return (
<div className="space-y-4">
<div className="space-y-2">
<h3 className="text-sm font-semibold"> </h3>
<p className="text-xs text-muted-foreground">
, , .
</p>
</div>
{/* 첫 번째 테이블 자동 선택 */}
<div className="flex items-center space-x-2">
<Checkbox
id="autoSelectFirstTable"
checked={localAutoSelect}
onCheckedChange={(checked) => {
setLocalAutoSelect(checked as boolean);
onUpdateProperty("componentConfig.autoSelectFirstTable", checked);
}}
/>
<Label htmlFor="autoSelectFirstTable" className="text-xs sm:text-sm cursor-pointer">
</Label>
</div>
{/* 테이블 선택 드롭다운 표시 */}
<div className="flex items-center space-x-2">
<Checkbox
id="showTableSelector"
checked={localShowSelector}
onCheckedChange={(checked) => {
setLocalShowSelector(checked as boolean);
onUpdateProperty("componentConfig.showTableSelector", checked);
}}
/>
<Label htmlFor="showTableSelector" className="text-xs sm:text-sm cursor-pointer">
( )
</Label>
</div>
<div className="rounded-md bg-muted p-3 text-xs">
<p className="font-medium mb-1">:</p>
<ul className="list-disc list-inside space-y-1 text-muted-foreground">
<li> , , </li>
<li> </li>
<li> </li>
</ul>
</div>
</div>
);
}