goldenChat base source add
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import React, { useState } from 'react';
|
||||
|
||||
interface AlertManagerProps {
|
||||
alerts: Array<{ price: number; label: string }>;
|
||||
onAdd: (price: number, label: string) => void;
|
||||
onRemove: (price: number) => void;
|
||||
onClose: () => void;
|
||||
currentPrice: number;
|
||||
}
|
||||
|
||||
const AlertManager: React.FC<AlertManagerProps> = ({ alerts, onAdd, onRemove, onClose, currentPrice }) => {
|
||||
const [priceInput, setPriceInput] = useState(currentPrice.toFixed(2));
|
||||
const [labelInput, setLabelInput] = useState('');
|
||||
|
||||
const handleAdd = () => {
|
||||
const price = parseFloat(priceInput);
|
||||
if (!isNaN(price) && price > 0) {
|
||||
onAdd(price, labelInput.trim());
|
||||
setLabelInput('');
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="alert-panel">
|
||||
<div className="alert-header">
|
||||
<span className="alert-title">🔔 가격 알림</span>
|
||||
<button className="alert-close" onClick={onClose}>✕</button>
|
||||
</div>
|
||||
<div className="alert-add">
|
||||
<input
|
||||
className="alert-input"
|
||||
type="number"
|
||||
value={priceInput}
|
||||
onChange={e => setPriceInput(e.target.value)}
|
||||
placeholder="가격"
|
||||
/>
|
||||
<input
|
||||
className="alert-input"
|
||||
value={labelInput}
|
||||
onChange={e => setLabelInput(e.target.value)}
|
||||
placeholder="메모 (선택)"
|
||||
/>
|
||||
<button className="alert-add-btn" onClick={handleAdd}>추가</button>
|
||||
</div>
|
||||
<div className="alert-body">
|
||||
{alerts.length === 0 && <div className="alert-empty">설정된 알림 없음</div>}
|
||||
{alerts.map((a, i) => (
|
||||
<div key={i} className="alert-item">
|
||||
<span className="alert-price">{a.price.toFixed(2)}</span>
|
||||
{a.label && <span className="alert-label">{a.label}</span>}
|
||||
<button className="alert-remove" onClick={() => onRemove(a.price)}>✕</button>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default AlertManager;
|
||||
Reference in New Issue
Block a user