v0.9.29 Bugs fixes
This commit is contained in:
@@ -191,7 +191,7 @@ function AllGroupsTab({ allUsers, onRefresh }) {
|
||||
}
|
||||
|
||||
// ── Direct Messages tab ───────────────────────────────────────────────────────
|
||||
function DirectMessagesTab({ allUserGroups, onRefresh }) {
|
||||
function DirectMessagesTab({ allUserGroups, onRefresh, refreshKey }) {
|
||||
const toast = useToast();
|
||||
const [dms, setDms] = useState([]);
|
||||
const [selected, setSelected] = useState(null);
|
||||
@@ -203,8 +203,9 @@ function DirectMessagesTab({ allUserGroups, onRefresh }) {
|
||||
const [showDelete, setShowDelete] = useState(false);
|
||||
|
||||
const load = useCallback(() =>
|
||||
api.getMultiGroupDms().then(({ dms }) => setDms(dms)).catch(() => {}), []);
|
||||
useEffect(() => { load(); }, [load]);
|
||||
api.getMultiGroupDms().then(({ dms }) => setDms(dms || [])).catch(e => console.error('multigroup load error:', e)), []);
|
||||
// Reload whenever parent refreshes (e.g. after user group changes that affect membership)
|
||||
useEffect(() => { load(); }, [load, refreshKey]);
|
||||
|
||||
const clearSelection = () => {
|
||||
setSelected(null); setDmName(''); setGroupIds(new Set()); setSavedGroupIds(new Set()); setShowDelete(false);
|
||||
@@ -355,7 +356,7 @@ export default function GroupManagerModal({ onClose }) {
|
||||
</div>
|
||||
<div style={{ flex: 1, overflowY: 'auto', minHeight: 0 }}>
|
||||
{tab === 'all' && <AllGroupsTab allUsers={allUsers} onRefresh={onRefresh} />}
|
||||
{tab === 'dm' && <DirectMessagesTab allUserGroups={allUserGroups} onRefresh={onRefresh} />}
|
||||
{tab === 'dm' && <DirectMessagesTab allUserGroups={allUserGroups} onRefresh={onRefresh} refreshKey={refreshKey} />}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -53,7 +53,18 @@ export default function NavDrawer({ open, onClose, onMessages, onGroupManager, o
|
||||
<div className={`nav-drawer-backdrop${open ? ' open' : ''}`} onClick={onClose} />
|
||||
{/* Drawer */}
|
||||
<div ref={drawerRef} className={`nav-drawer${open ? ' open' : ''}`}>
|
||||
<div className="nav-drawer-section-label">Menu</div>
|
||||
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: 8 }}>
|
||||
<div className="nav-drawer-section-label" style={{ margin: 0, padding: 0 }}>Menu</div>
|
||||
<button
|
||||
onClick={onClose}
|
||||
style={{ background: 'none', border: 'none', cursor: 'pointer', color: 'var(--text-secondary)', padding: 4, borderRadius: 6, display: 'flex', alignItems: 'center' }}
|
||||
aria-label="Close menu"
|
||||
>
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
|
||||
<line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
{item(NAV_ICON.messages, 'Messages', onMessages)}
|
||||
{!isMobile && item(NAV_ICON.schedules, 'Schedules', () => {}, true)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user