All checks were successful
Deploy Development / deploy (push) Successful in 40s
Test Suite / pytest-backend (push) Successful in 25s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 7s
Test Suite / playwright-tests (push) Successful in 23s
- Introduced a new utility function to filter and return only active club memberships, improving role management and access control. - Updated various components and pages to utilize the new active club memberships function, ensuring only relevant memberships are considered. - Enhanced user interface elements to reflect the status of club memberships, including visual indicators for inactive memberships. - Improved backend logic for resolving tenant contexts and managing club roles based on active memberships.
40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
import { useAuth } from '../context/AuthContext'
|
|
|
|
/**
|
|
* Hinweis, wenn der Vereinszugang (Mitgliedschaft) deaktiviert wurde — Login bleibt möglich.
|
|
*/
|
|
export default function InactiveMembershipBanner() {
|
|
const { user } = useAuth()
|
|
const inactive = (user?.clubs || []).filter(
|
|
(c) => (c.membership_status || '').toString().trim().toLowerCase() === 'inactive'
|
|
)
|
|
if (!inactive.length) return null
|
|
|
|
const names = inactive.map((c) => c.name || `Verein #${c.id}`).join(', ')
|
|
|
|
return (
|
|
<div
|
|
role="status"
|
|
className="inactive-membership-banner"
|
|
style={{
|
|
marginBottom: '0.75rem',
|
|
padding: '0.65rem 0.85rem',
|
|
borderRadius: '8px',
|
|
background: 'var(--surface2, #2a2a2a)',
|
|
border: '1px solid color-mix(in srgb, var(--warning, #d4a012) 45%, transparent)',
|
|
color: 'var(--text1)',
|
|
fontSize: '0.88rem',
|
|
lineHeight: 1.45,
|
|
}}
|
|
>
|
|
<strong>Vereinszugang vorübergehend deaktiviert</strong>
|
|
<span style={{ display: 'block', marginTop: '0.35rem' }}>
|
|
Für {inactive.length === 1 ? 'den Verein' : 'die Vereine'}{' '}
|
|
<strong>{names}</strong>{' '}
|
|
ist der Zugang zu Vereinsinhalten ausgesetzt — du kannst dich weiterhin anmelden und z. B.
|
|
öffentliche Inhalte oder andere Vereine nutzen. Bei Fragen wende dich an eine:n Vereinsadministrator:in.
|
|
</span>
|
|
</div>
|
|
)
|
|
}
|