feat(sms): add log viewing functionality for SMS messages

This commit is contained in:
hamed
2026-06-25 14:20:59 +03:30
parent 41b435bb88
commit b1a43b7740
+30 -1
View File
@@ -57,6 +57,7 @@ export default function SmsPage() {
const [postVisitRejectId, setPostVisitRejectId] = useState<number | null>(null);
const [postVisitRejectReason, setPostVisitRejectReason] = useState('');
const [tagFilter, setTagFilter] = useState('');
const [viewLog, setViewLog] = useState<SmsLog | null>(null);
const [editMsg, setEditMsg] = useState<SmsMessageText | null>(null);
const [editBody, setEditBody] = useState('');
const [editTemplate, setEditTemplate] = useState<SmsTemplate | null>(null);
@@ -222,7 +223,17 @@ export default function SmsPage() {
{
key: 'message',
header: 'پیام',
render: (l) => <span className="muted" style={{ fontSize: 12, display: 'block', maxWidth: 280, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>{l.message}</span>,
render: (l) => (
<button
type="button"
title="نمایش متن کامل"
onClick={() => setViewLog(l)}
className="muted"
style={{ fontSize: 12, display: 'block', maxWidth: 280, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', textAlign: 'right', background: 'none', border: 'none', padding: 0, cursor: 'pointer', color: 'var(--primary)', width: '100%' }}
>
{l.message}
</button>
),
},
{
key: 'status',
@@ -643,6 +654,24 @@ export default function SmsPage() {
onConfirm={() => deleteTarget && deleteMutation.mutate(deleteTarget)}
onCancel={() => setDeleteTarget(null)}
/>
<Modal open={!!viewLog} title="متن کامل پیامک" onClose={() => setViewLog(null)}>
{viewLog && (
<div style={{ display: 'flex', flexDirection: 'column', gap: 12, minWidth: 320 }}>
<div style={{ display: 'flex', gap: 16, flexWrap: 'wrap', fontSize: 12.5 }}>
<div><span className="muted">گیرنده: </span><span dir="ltr">{viewLog.recipient}</span></div>
<div><span className="muted">تگ: </span>{TAG_LABELS[viewLog.tag] ?? viewLog.tag}</div>
<div><span className="muted">زمان: </span>{formatDateTime(viewLog.sent_at)}</div>
</div>
<div style={{ whiteSpace: 'pre-wrap', wordBreak: 'break-word', lineHeight: 1.9, fontSize: 14, padding: '12px 14px', borderRadius: 'var(--r-sm)', background: 'var(--surface-3)', border: '1px solid var(--border)' }}>
{viewLog.message}
</div>
<div className="muted" style={{ fontSize: 11, textAlign: 'left' }}>
{viewLog.message.length} کاراکتر
</div>
</div>
)}
</Modal>
</div>
);
}