1
0

navbar.py 2.0 KB

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