navbar.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import reflex as rx
  2. from ...webui import styles
  3. from ...webui.state import State
  4. def navbar():
  5. return rx.chakra.box(
  6. rx.chakra.hstack(
  7. rx.chakra.hstack(
  8. rx.chakra.icon(
  9. tag="hamburger",
  10. mr=4,
  11. on_click=State.toggle_drawer,
  12. cursor="pointer",
  13. ),
  14. rx.chakra.link(
  15. rx.chakra.box(
  16. rx.chakra.image(src="favicon.ico", width=30, height="auto"),
  17. p="1",
  18. border_radius="6",
  19. bg="#F0F0F0",
  20. mr="2",
  21. ),
  22. href="/",
  23. ),
  24. rx.chakra.breadcrumb(
  25. rx.chakra.breadcrumb_item(
  26. rx.chakra.heading("ReflexGPT", size="sm"),
  27. ),
  28. rx.chakra.breadcrumb_item(
  29. rx.chakra.text(
  30. State.current_chat, size="sm", font_weight="normal"
  31. ),
  32. ),
  33. ),
  34. ),
  35. rx.chakra.hstack(
  36. rx.chakra.button(
  37. "+ New chat",
  38. bg=styles.accent_color,
  39. px="4",
  40. py="2",
  41. h="auto",
  42. on_click=State.toggle_modal,
  43. ),
  44. rx.chakra.menu(
  45. rx.chakra.menu_button(
  46. rx.chakra.avatar(name="User", size="md"),
  47. rx.chakra.box(),
  48. ),
  49. rx.chakra.menu_list(
  50. rx.chakra.menu_item("Help"),
  51. rx.chakra.menu_divider(),
  52. rx.chakra.menu_item("Settings"),
  53. ),
  54. ),
  55. spacing="8",
  56. ),
  57. justify="space-between",
  58. ),
  59. bg=styles.bg_dark_color,
  60. backdrop_filter="auto",
  61. backdrop_blur="lg",
  62. p="4",
  63. border_bottom=f"1px solid {styles.border_color}",
  64. position="sticky",
  65. top="0",
  66. z_index="100",
  67. )