feat: add hideLocked checkbox to filter out gesperrt users by default
Some checks failed
Staging Build / build (push) Has been cancelled
Some checks failed
Staging Build / build (push) Has been cancelled
This commit is contained in:
@@ -43,6 +43,7 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
const [companySearch, setCompanySearch] = useState('')
|
||||
const [searchQuery, setSearchQuery] = useState('')
|
||||
const [groupByCompany, setGroupByCompany] = useState(false)
|
||||
const [hideLocked, setHideLocked] = useState(true)
|
||||
const dropdownRef = useRef<HTMLDivElement>(null)
|
||||
|
||||
useEffect(() => {
|
||||
@@ -124,6 +125,8 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
}
|
||||
|
||||
const filteredUsers = initialUsers.filter((user) => {
|
||||
if (hideLocked && user.role === 'gesperrt') return false
|
||||
|
||||
const emailMatch = user.email?.toLowerCase().includes(searchQuery.toLowerCase())
|
||||
const companyMatch = user.company_name?.toLowerCase().includes(searchQuery.toLowerCase())
|
||||
const roleMatch = user.role?.toLowerCase().includes(searchQuery.toLowerCase())
|
||||
@@ -163,17 +166,31 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
className="w-full pl-9 pr-4 py-2 text-sm bg-white/5 border border-white/10 rounded-md text-slate-200 placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-slate-950 transition-all"
|
||||
/>
|
||||
</div>
|
||||
<div className="flex items-center gap-2 bg-white/5 border border-white/10 rounded-md px-3 py-2 cursor-pointer hover:bg-white/10 transition-colors">
|
||||
<input
|
||||
type="checkbox"
|
||||
id="groupByCompany"
|
||||
checked={groupByCompany}
|
||||
onChange={(e) => setGroupByCompany(e.target.checked)}
|
||||
className="h-4 w-4 rounded border-white/10 bg-slate-950 text-primary focus:ring-primary focus:ring-offset-slate-950 accent-primary cursor-pointer"
|
||||
/>
|
||||
<label htmlFor="groupByCompany" className="text-xs text-slate-300 font-medium cursor-pointer select-none">
|
||||
Nach Firma gruppieren
|
||||
</label>
|
||||
<div className="flex flex-wrap items-center gap-3">
|
||||
<div className="flex items-center gap-2 bg-white/5 border border-white/10 rounded-md px-3 py-2 cursor-pointer hover:bg-white/10 transition-colors">
|
||||
<input
|
||||
type="checkbox"
|
||||
id="hideLocked"
|
||||
checked={hideLocked}
|
||||
onChange={(e) => setHideLocked(e.target.checked)}
|
||||
className="h-4 w-4 rounded border-white/10 bg-slate-950 text-primary focus:ring-primary focus:ring-offset-slate-950 accent-primary cursor-pointer"
|
||||
/>
|
||||
<label htmlFor="hideLocked" className="text-xs text-slate-300 font-medium cursor-pointer select-none">
|
||||
Gesperrte ausblenden
|
||||
</label>
|
||||
</div>
|
||||
<div className="flex items-center gap-2 bg-white/5 border border-white/10 rounded-md px-3 py-2 cursor-pointer hover:bg-white/10 transition-colors">
|
||||
<input
|
||||
type="checkbox"
|
||||
id="groupByCompany"
|
||||
checked={groupByCompany}
|
||||
onChange={(e) => setGroupByCompany(e.target.checked)}
|
||||
className="h-4 w-4 rounded border-white/10 bg-slate-950 text-primary focus:ring-primary focus:ring-offset-slate-950 accent-primary cursor-pointer"
|
||||
/>
|
||||
<label htmlFor="groupByCompany" className="text-xs text-slate-300 font-medium cursor-pointer select-none">
|
||||
Nach Firma gruppieren
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Table containerClassName="overflow-visible">
|
||||
|
||||
Reference in New Issue
Block a user