같은 요소를 연속으로 꺼낼 수 있게 수정

This commit is contained in:
dohyeons 2025-10-16 10:02:47 +09:00
parent 18e2280623
commit 3afcd3d9fb
2 changed files with 15 additions and 4 deletions

View File

@ -166,7 +166,11 @@ export function CanvasElement({
return;
}
onSelect(element.id);
// 선택되지 않은 경우에만 선택 처리
if (!isSelected) {
onSelect(element.id);
}
setIsDragging(true);
setDragStart({
x: e.clientX,
@ -176,7 +180,7 @@ export function CanvasElement({
});
e.preventDefault();
},
[element.id, element.position.x, element.position.y, onSelect],
[element.id, element.position.x, element.position.y, onSelect, isSelected],
);
// 리사이즈 핸들 마우스다운

View File

@ -47,10 +47,15 @@ export function DashboardTopMenu({
backgroundColor = "#f9fafb",
onBackgroundColorChange,
}: DashboardTopMenuProps) {
const [chartValue, setChartValue] = React.useState<string>("");
const [widgetValue, setWidgetValue] = React.useState<string>("");
// 차트 선택 시 캔버스 중앙에 추가
const handleChartSelect = (value: string) => {
if (onAddElement) {
onAddElement("chart", value as ElementSubtype);
// 선택 후 즉시 리셋하여 같은 항목을 연속으로 선택 가능하게
setTimeout(() => setChartValue(""), 0);
}
};
@ -58,6 +63,8 @@ export function DashboardTopMenu({
const handleWidgetSelect = (value: string) => {
if (onAddElement) {
onAddElement("widget", value as ElementSubtype);
// 선택 후 즉시 리셋하여 같은 항목을 연속으로 선택 가능하게
setTimeout(() => setWidgetValue(""), 0);
}
};
@ -148,7 +155,7 @@ export function DashboardTopMenu({
<div className="h-6 w-px bg-gray-300" />
{/* 차트 선택 */}
<Select onValueChange={handleChartSelect}>
<Select value={chartValue} onValueChange={handleChartSelect}>
<SelectTrigger className="w-[200px]">
<SelectValue placeholder="차트 추가" />
</SelectTrigger>
@ -168,7 +175,7 @@ export function DashboardTopMenu({
</Select>
{/* 위젯 선택 */}
<Select onValueChange={handleWidgetSelect}>
<Select value={widgetValue} onValueChange={handleWidgetSelect}>
<SelectTrigger className="w-[200px]">
<SelectValue placeholder="위젯 추가" />
</SelectTrigger>