index.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { getRouteApi } from '@tanstack/react-router'
  2. import { ConfigDrawer } from '@/components/config-drawer'
  3. import { Header } from '@/components/layout/header'
  4. import { Main } from '@/components/layout/main'
  5. import { ProfileDropdown } from '@/components/profile-dropdown'
  6. import { Search } from '@/components/search'
  7. import { ThemeSwitch } from '@/components/theme-switch'
  8. import { UsersDialogs } from './components/users-dialogs'
  9. import { UsersPrimaryButtons } from './components/users-primary-buttons'
  10. import { UsersProvider } from './components/users-provider'
  11. import { UsersTable } from './components/users-table'
  12. import { users } from './data/users'
  13. const route = getRouteApi('/_authenticated/users/')
  14. export function Users() {
  15. const search = route.useSearch()
  16. const navigate = route.useNavigate()
  17. return (
  18. <UsersProvider>
  19. <Header fixed>
  20. <Search />
  21. <div className='ms-auto flex items-center space-x-4'>
  22. <ThemeSwitch />
  23. <ConfigDrawer />
  24. <ProfileDropdown />
  25. </div>
  26. </Header>
  27. <Main>
  28. <div className='mb-2 flex flex-wrap items-center justify-between space-y-2'>
  29. <div>
  30. <h2 className='text-2xl font-bold tracking-tight'>User List</h2>
  31. <p className='text-muted-foreground'>
  32. Manage your users and their roles here.
  33. </p>
  34. </div>
  35. <UsersPrimaryButtons />
  36. </div>
  37. <div className='-mx-4 flex-1 overflow-auto px-4 py-1 lg:flex-row lg:space-y-0 lg:space-x-12'>
  38. <UsersTable data={users} search={search} navigate={navigate} />
  39. </div>
  40. </Main>
  41. <UsersDialogs />
  42. </UsersProvider>
  43. )
  44. }