index.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 className='flex flex-1 flex-col gap-4 sm:gap-6'>
  28. <div className='flex flex-wrap items-end justify-between gap-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. <UsersTable data={users} search={search} navigate={navigate} />
  38. </Main>
  39. <UsersDialogs />
  40. </UsersProvider>
  41. )
  42. }