2025-09-09 14:29:04 +09:00
|
|
|
"use client";
|
|
|
|
|
|
2026-03-11 15:57:02 +09:00
|
|
|
import React from "react";
|
|
|
|
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
2025-09-10 14:09:32 +09:00
|
|
|
import { ComponentData } from "@/types/screen";
|
2026-03-11 15:57:02 +09:00
|
|
|
import { BasicTab } from "./button-config/BasicTab";
|
|
|
|
|
import { ActionTab } from "./button-config/ActionTab";
|
|
|
|
|
import { DataflowTab } from "./button-config/DataflowTab";
|
|
|
|
|
import { AdvancedTab } from "./button-config/AdvancedTab";
|
2025-11-18 16:12:47 +09:00
|
|
|
|
2025-09-10 14:09:32 +09:00
|
|
|
interface ButtonConfigPanelProps {
|
|
|
|
|
component: ComponentData;
|
|
|
|
|
onUpdateProperty: (path: string, value: any) => void;
|
2026-03-11 15:57:02 +09:00
|
|
|
allComponents?: ComponentData[];
|
|
|
|
|
currentTableName?: string;
|
|
|
|
|
currentScreenCompanyCode?: string;
|
2025-09-12 14:24:25 +09:00
|
|
|
}
|
|
|
|
|
|
2025-10-27 11:11:08 +09:00
|
|
|
export const ButtonConfigPanel: React.FC<ButtonConfigPanelProps> = ({
|
|
|
|
|
component,
|
2025-10-23 18:23:01 +09:00
|
|
|
onUpdateProperty,
|
2026-03-11 15:57:02 +09:00
|
|
|
allComponents = [],
|
|
|
|
|
currentTableName,
|
|
|
|
|
currentScreenCompanyCode,
|
2025-10-23 18:23:01 +09:00
|
|
|
}) => {
|
2026-01-20 14:01:35 +09:00
|
|
|
if (!component) {
|
2026-02-05 17:38:06 +09:00
|
|
|
return <div className="text-muted-foreground p-4 text-sm">컴포넌트 정보를 불러올 수 없습니다.</div>;
|
2026-01-20 14:01:35 +09:00
|
|
|
}
|
2026-02-05 17:38:06 +09:00
|
|
|
|
2026-03-11 15:57:02 +09:00
|
|
|
const tabProps = {
|
|
|
|
|
component,
|
|
|
|
|
onUpdateProperty,
|
2026-02-05 17:38:06 +09:00
|
|
|
allComponents,
|
2026-03-11 15:57:02 +09:00
|
|
|
currentTableName,
|
|
|
|
|
currentScreenCompanyCode,
|
2026-01-09 17:56:48 +09:00
|
|
|
};
|
|
|
|
|
|
2026-01-09 15:32:02 +09:00
|
|
|
return (
|
2026-03-11 15:57:02 +09:00
|
|
|
<Tabs defaultValue="basic" className="w-full">
|
|
|
|
|
<TabsList className="grid w-full grid-cols-4">
|
|
|
|
|
<TabsTrigger value="basic" className="text-xs">기본</TabsTrigger>
|
|
|
|
|
<TabsTrigger value="action" className="text-xs">액션</TabsTrigger>
|
|
|
|
|
<TabsTrigger value="dataflow" className="text-xs">데이터플로우</TabsTrigger>
|
|
|
|
|
<TabsTrigger value="advanced" className="text-xs">고급</TabsTrigger>
|
|
|
|
|
</TabsList>
|
|
|
|
|
|
|
|
|
|
<TabsContent value="basic" className="mt-4">
|
|
|
|
|
<BasicTab {...tabProps} />
|
|
|
|
|
</TabsContent>
|
|
|
|
|
|
|
|
|
|
<TabsContent value="action" className="mt-4">
|
|
|
|
|
<ActionTab {...tabProps} />
|
|
|
|
|
</TabsContent>
|
|
|
|
|
|
|
|
|
|
<TabsContent value="dataflow" className="mt-4">
|
|
|
|
|
<DataflowTab {...tabProps} />
|
|
|
|
|
</TabsContent>
|
|
|
|
|
|
|
|
|
|
<TabsContent value="advanced" className="mt-4">
|
|
|
|
|
<AdvancedTab {...tabProps} />
|
|
|
|
|
</TabsContent>
|
|
|
|
|
</Tabs>
|
2026-01-09 15:32:02 +09:00
|
|
|
);
|
|
|
|
|
};
|