{props.title}
{props.extra &&
{props.extra}
}
diff --git a/packages/web_ui/src/components/SiteLayout.jsx b/packages/web_ui/src/components/SiteLayout.tsx
similarity index 87%
rename from packages/web_ui/src/components/SiteLayout.jsx
rename to packages/web_ui/src/components/SiteLayout.tsx
index 86bcfcef..2bf69d47 100644
--- a/packages/web_ui/src/components/SiteLayout.jsx
+++ b/packages/web_ui/src/components/SiteLayout.tsx
@@ -1,6 +1,6 @@
import React, { useContext, useEffect, useState } from "react";
import { Route, Routes, useNavigate } from "react-router-dom";
-import { Dropdown, Layout, Menu } from "antd";
+import { Dropdown, Layout, Menu, MenuProps } from "antd";
import UserOutlined from "@ant-design/icons/UserOutlined";
import webUiPackage from "../../package.json";
@@ -12,22 +12,21 @@ import { pages } from "../pages";
const { Header, Sider } = Layout;
-
-export default function SiteLayout(props) {
+export default function SiteLayout() {
let navigate = useNavigate();
- let [currentSidebarPath, setCurrentSidebarPath] = useState(null);
+ let [currentSidebarPath, setCurrentSidebarPath] = useState
(null);
let account = useAccount();
let plugins = useContext(ControlContext).plugins;
- function SetSidebar(setSidebarProps) {
+ function SetSidebar(props: { path: string|null }) {
useEffect(() => {
- setCurrentSidebarPath(setSidebarProps.path);
+ setCurrentSidebarPath(props.path);
});
return null;
}
- let accountMenuProps = {
- onClick: ({ key }) => {
+ let accountMenuProps: MenuProps = {
+ onClick: ({ key }: {key:string}) => {
if (key === "user") {
navigate(`/users/${account.name}/view`);
} else if (key === "logOut") {
@@ -87,7 +86,7 @@ export default function SiteLayout(props) {
@@ -105,7 +104,7 @@ export default function SiteLayout(props) {