v0.12.43 minor protection added
This commit is contained in:
@@ -21,6 +21,9 @@ export default function NewChatModal({ onClose, onCreated, features = {} }) {
|
||||
const [users, setUsers] = useState([]);
|
||||
const [selected, setSelected] = useState([]);
|
||||
const [loading, setLoading] = useState(false);
|
||||
// Mixed Age: guardian confirmation modal
|
||||
const [guardianConfirm, setGuardianConfirm] = useState(null); // { group, guardianName }
|
||||
const loginType = features.loginType || 'all_ages';
|
||||
|
||||
// True when exactly 1 user selected on private tab AND U2U messages are enabled
|
||||
const isDirect = tab === 'private' && selected.length === 1 && msgU2U;
|
||||
@@ -69,13 +72,18 @@ export default function NewChatModal({ onClose, onCreated, features = {} }) {
|
||||
};
|
||||
}
|
||||
|
||||
const { group, duplicate } = await api.createGroup(payload);
|
||||
const { group, duplicate, guardianAdded, guardianName } = await api.createGroup(payload);
|
||||
if (duplicate) {
|
||||
toast('A group with these members already exists — opening it now.', 'info');
|
||||
onCreated(group);
|
||||
} else {
|
||||
toast(isDirect ? 'Direct message started!' : `${tab === 'public' ? 'Public message' : 'Group message'} created!`, 'success');
|
||||
if (guardianAdded && guardianName) {
|
||||
setGuardianConfirm({ group, guardianName });
|
||||
} else {
|
||||
onCreated(group);
|
||||
}
|
||||
}
|
||||
onCreated(group);
|
||||
} catch (e) {
|
||||
toast(e.message, 'error');
|
||||
} finally {
|
||||
@@ -172,6 +180,20 @@ export default function NewChatModal({ onClose, onCreated, features = {} }) {
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{guardianConfirm && (
|
||||
<div className="modal-overlay">
|
||||
<div className="modal" style={{ maxWidth: 360 }}>
|
||||
<h2 className="modal-title" style={{ marginBottom: 12 }}>Guardian Added</h2>
|
||||
<p className="text-sm" style={{ color: 'var(--text-secondary)', marginBottom: 20 }}>
|
||||
<strong>{guardianConfirm.guardianName}</strong> has been added to this conversation as the guardian of this minor.
|
||||
</p>
|
||||
<div className="flex justify-end">
|
||||
<button className="btn btn-primary" onClick={() => { setGuardianConfirm(null); onCreated(guardianConfirm.group); }}>OK</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user