sd-new.tsx 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import homeStyles from "@/app/components/home.module.scss";
  2. import { IconButton } from "@/app/components/button";
  3. import GithubIcon from "@/app/icons/github.svg";
  4. import ReturnIcon from "@/app/icons/return.svg";
  5. import Locale from "@/app/locales";
  6. import HistoryIcon from "@/app/icons/history.svg";
  7. import { Path, REPO_URL } from "@/app/constant";
  8. import { useNavigate } from "react-router-dom";
  9. import dynamic from "next/dynamic";
  10. import {
  11. SideBarContainer,
  12. SideBarBody,
  13. SideBarTail,
  14. useDragSideBar,
  15. useHotKey,
  16. } from "@/app/components/sidebar";
  17. const SdPanel = dynamic(
  18. async () => (await import("@/app/components/sd")).SdPanel,
  19. {
  20. loading: () => null,
  21. },
  22. );
  23. export function SdNew() {
  24. useHotKey();
  25. const { onDragStart, shouldNarrow } = useDragSideBar();
  26. const navigate = useNavigate();
  27. return (
  28. <SideBarContainer
  29. onDragStart={onDragStart}
  30. shouldNarrow={shouldNarrow}
  31. className={homeStyles["sidebar-show"]}
  32. >
  33. <div
  34. className="window-header"
  35. data-tauri-drag-region
  36. style={{
  37. paddingLeft: 0,
  38. paddingRight: 0,
  39. }}
  40. >
  41. {
  42. <div className="window-actions">
  43. <div className="window-action-button">
  44. <IconButton
  45. icon={<ReturnIcon />}
  46. bordered
  47. title={Locale.Sd.Actions.ReturnHome}
  48. onClick={() => navigate(Path.Home)}
  49. />
  50. </div>
  51. </div>
  52. }
  53. <div className={`window-header-title`}>
  54. <div className={`window-header-main-title`}>Stability</div>
  55. </div>
  56. <div className="window-actions">
  57. <div className="window-action-button">
  58. <IconButton
  59. icon={<HistoryIcon />}
  60. bordered
  61. title={Locale.Sd.Actions.History}
  62. onClick={() => navigate(Path.Sd)}
  63. />
  64. </div>
  65. </div>
  66. </div>
  67. <SideBarBody>
  68. <SdPanel />
  69. </SideBarBody>
  70. <SideBarTail
  71. primaryAction={
  72. <a href={REPO_URL} target="_blank" rel="noopener noreferrer">
  73. <IconButton icon={<GithubIcon />} shadow />
  74. </a>
  75. }
  76. />
  77. </SideBarContainer>
  78. );
  79. }