diff --git a/desktop/renderer-app/src/components/EditRoomPage/style.less b/desktop/renderer-app/src/components/EditRoomPage/style.less index 4ea0683d3bb..130eb64881a 100644 --- a/desktop/renderer-app/src/components/EditRoomPage/style.less +++ b/desktop/renderer-app/src/components/EditRoomPage/style.less @@ -7,7 +7,7 @@ width: 100%; top: 0; z-index: 1; - // margin: 0 24px; + padding-top: 9px; background: #fff; } diff --git a/desktop/renderer-app/src/pages/PeriodicRoomDetailPage/index.less b/desktop/renderer-app/src/pages/PeriodicRoomDetailPage/index.less index f16fc1b8286..30bf0a7b380 100644 --- a/desktop/renderer-app/src/pages/PeriodicRoomDetailPage/index.less +++ b/desktop/renderer-app/src/pages/PeriodicRoomDetailPage/index.less @@ -4,6 +4,7 @@ top: 0; z-index: 1; margin: 0 24px; + padding-top: 12px; background: #fff; } diff --git a/desktop/renderer-app/src/pages/RoomDetailPage/index.less b/desktop/renderer-app/src/pages/RoomDetailPage/index.less index d816e34e9a2..1a457124a8a 100644 --- a/desktop/renderer-app/src/pages/RoomDetailPage/index.less +++ b/desktop/renderer-app/src/pages/RoomDetailPage/index.less @@ -1,5 +1,5 @@ .room-detail-page-header-container { - margin-top: 24px; + margin-top: 12px; margin-left: 24px; } diff --git a/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.less b/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.less index f59f69d8735..ee4cb09d4af 100644 --- a/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.less +++ b/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.less @@ -1,8 +1,7 @@ .main-page-header-container { display: flex; align-items: center; - line-height: 24px; - margin-bottom: 16px; + line-height: 3; } .main-page-header-back { diff --git a/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.tsx b/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.tsx index 3905471bd07..0a41120dc39 100644 --- a/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.tsx +++ b/packages/flat-components/src/components/MainPageLayout/MainPageHeader/index.tsx @@ -6,8 +6,8 @@ import { Divider } from "antd"; import { useTranslation } from "react-i18next"; export interface MainPageHeaderProps { - onBackPreviousPage: () => void; - title: React.ReactNode; + onBackPreviousPage?: () => void; + title?: React.ReactNode; } export const MainPageHeader: React.FC = ({ onBackPreviousPage, title }) => { diff --git a/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/MainPageNavHorizontal.stories.tsx b/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/MainPageNavHorizontal.stories.tsx index b520a4f76ff..72ebc0709c2 100644 --- a/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/MainPageNavHorizontal.stories.tsx +++ b/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/MainPageNavHorizontal.stories.tsx @@ -89,6 +89,8 @@ Overview.args = { activeKeys: ["home"], avatarSrc: "http://placekitten.com/200/200", userName: "Flat Name", + title:
Title
, + onBackPreviousPage: () => null, }; Overview.argTypes = { activeKeys: { diff --git a/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/index.tsx b/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/index.tsx index 996ff641833..6bdbeaa48ac 100644 --- a/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/index.tsx +++ b/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/index.tsx @@ -4,8 +4,9 @@ import classNames from "classnames"; import { MainPageLayoutItem } from "../types"; import { MainPageNavAvatar, MainPageNavAvatarProps } from "../MainPageNavAvatar"; import { Tabs } from "antd"; +import { MainPageHeader, MainPageHeaderProps } from "../MainPageHeader"; -export interface MainPageNavHorizontalProps extends MainPageNavAvatarProps { +export interface MainPageNavHorizontalProps extends MainPageNavAvatarProps, MainPageHeaderProps { /** when an item is clicked */ onClick: (mainPageLayoutItem: MainPageLayoutItem) => void; /** a list of keys to highlight the items */ @@ -14,6 +15,8 @@ export interface MainPageNavHorizontalProps extends MainPageNavAvatarProps { leftMenu: MainPageLayoutItem[]; /** outside footer menu in MainPageLayout */ rightMenu: MainPageLayoutItem[]; + /** display return to previous page button if provided*/ + onBackPreviousPage?: () => void; } export const MainPageNavHorizontal: React.FC = ({ @@ -24,6 +27,8 @@ export const MainPageNavHorizontal: React.FC = ({ leftMenu, rightMenu, popMenu, + onBackPreviousPage, + title, }) => { const { TabPane } = Tabs; @@ -31,27 +36,33 @@ export const MainPageNavHorizontal: React.FC = ({
- - leftMenu.some(menuItem => menuItem.key === key), - ) || "none" - } - onChange={key => { - const item = leftMenu.find(e => e.key === key); - if (item) { - onClick(item); - } else { - if (process.env.NODE_ENV === "development") { - console.warn("[MainPageNav] tab missing key", key); - } + {onBackPreviousPage ? ( +
+ +
+ ) : ( + + leftMenu.some(menuItem => menuItem.key === key), + ) || "none" } - }} - > - {leftMenu.map(menuItem => { - return ; - })} - + onChange={key => { + const item = leftMenu.find(e => e.key === key); + if (item) { + onClick(item); + } else { + if (process.env.NODE_ENV === "development") { + console.warn("[MainPageNav] tab missing key", key); + } + } + }} + > + {leftMenu.map(menuItem => { + return ; + })} +
+ )}
diff --git a/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/style.less b/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/style.less index 3ca11a4523e..12c85c90257 100644 --- a/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/style.less +++ b/packages/flat-components/src/components/MainPageLayout/MainPageNavHorizontal/style.less @@ -26,6 +26,9 @@ } } +.main-page-nav-horizontal-left-header { +} + .main-page-nav-horizontal-right { display: flex; flex-direction: row; diff --git a/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/RoomDetailBody.stories.tsx b/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/RoomDetailBody.stories.tsx index 88cf374cd9b..1f68061972d 100644 --- a/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/RoomDetailBody.stories.tsx +++ b/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/RoomDetailBody.stories.tsx @@ -24,5 +24,7 @@ Overview.args = { roomStatus: RoomStatus.Started, beginTime: 1619771930756, endTime: 1619775530756, + count: 7, }, + showRoomCountVisible: true, }; diff --git a/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.less b/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.less index 6026ea614c1..5c02a806a32 100644 --- a/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.less +++ b/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.less @@ -93,3 +93,11 @@ font-size: 12px; color: #7a7b7c; } + +.room-detail-body-content-room-count { + margin-left: auto; + text-align: center; + margin-top: 16px; + cursor: pointer; + color: #3381ff; +} diff --git a/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.tsx b/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.tsx index 4b1e62b07f9..6710084e622 100644 --- a/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.tsx +++ b/packages/flat-components/src/components/RoomDetailPage/RoomDetailBody/index.tsx @@ -9,12 +9,19 @@ import { zhCN } from "date-fns/locale"; import { RoomInfo, RoomType } from "../../../types/room"; import { RoomStatusElement } from "../../RoomStatusElement"; import { useTranslation } from "react-i18next"; +import { observer } from "mobx-react-lite"; export interface RoomDetailBodyProps { roomInfo: RoomInfo; + showRoomCountVisible?: boolean; + jumpToPeriodicRoomDetailPage?: () => void; } -export const RoomDetailBody: React.FC = ({ roomInfo }) => { +export const RoomDetailBody = observer(function RoomDetailBody({ + roomInfo, + showRoomCountVisible, + jumpToPeriodicRoomDetailPage, +}) { const { t } = useTranslation(); const { beginTime, endTime } = roomInfo; const { i18n } = useTranslation(); @@ -23,10 +30,10 @@ export const RoomDetailBody: React.FC = ({ roomInfo }) => { () => (beginTime ? formatTime(beginTime, i18n.language) : null), [beginTime, i18n.language], ); - const formattedEndTime = useMemo(() => (endTime ? formatTime(endTime, i18n.language) : null), [ - endTime, - i18n.language, - ]); + const formattedEndTime = useMemo( + () => (endTime ? formatTime(endTime, i18n.language) : null), + [endTime, i18n.language], + ); return (
@@ -65,6 +72,14 @@ export const RoomDetailBody: React.FC = ({ roomInfo }) => {
)}
+ {showRoomCountVisible && ( +
+ 查看全部 {roomInfo.count} 场房间 +
+ )}
@@ -87,4 +102,4 @@ export const RoomDetailBody: React.FC = ({ roomInfo }) => {
); -}; +}); diff --git a/packages/flat-components/src/components/RoomDetailPage/index.tsx b/packages/flat-components/src/components/RoomDetailPage/index.tsx index 6968d1c4315..84bf3838972 100644 --- a/packages/flat-components/src/components/RoomDetailPage/index.tsx +++ b/packages/flat-components/src/components/RoomDetailPage/index.tsx @@ -6,11 +6,20 @@ import { RoomDetailFooter, RoomDetailFooterProps } from "./RoomDetailFooter"; export type RoomDetailPanelProps = RoomDetailBodyProps & RoomDetailFooterProps; -export const RoomDetailPanel: React.FC = ({ roomInfo, ...restProps }) => { +export const RoomDetailPanel: React.FC = ({ + roomInfo, + showRoomCountVisible, + jumpToPeriodicRoomDetailPage, + ...restProps +}) => { return (
- +
diff --git a/web/flat-web/src/components/EditRoomPage/index.tsx b/web/flat-web/src/components/EditRoomPage/index.tsx index f28ba0cbfaf..24d38df9ef5 100644 --- a/web/flat-web/src/components/EditRoomPage/index.tsx +++ b/web/flat-web/src/components/EditRoomPage/index.tsx @@ -2,7 +2,7 @@ import "./style.less"; import React from "react"; import { observer } from "mobx-react-lite"; -import { EditRoomBody, EditRoomBodyProps, MainPageHeader } from "flat-components"; +import { EditRoomBody, EditRoomBodyProps } from "flat-components"; import { useHistory } from "react-router"; import { MainPageLayoutHorizontalContainer } from "../MainPageLayoutHorizontalContainer"; @@ -12,19 +12,16 @@ export const EditRoomPage = observer(function EditRoomPage(pr const history = useHistory(); return ( - -
-
- history.goBack()} - title={ - - {props.type === "schedule" ? "预定房间" : "修改房间"} - - } - /> + + {props.type === "schedule" ? "预定房间" : "修改房间"}
-
+ } + onBackPreviousPage={() => history.goBack()} + > +
+
diff --git a/web/flat-web/src/components/MainPageLayoutHorizontalContainer/index.tsx b/web/flat-web/src/components/MainPageLayoutHorizontalContainer/index.tsx index 66b0ed6d39a..ac9cfd9beeb 100644 --- a/web/flat-web/src/components/MainPageLayoutHorizontalContainer/index.tsx +++ b/web/flat-web/src/components/MainPageLayoutHorizontalContainer/index.tsx @@ -16,10 +16,12 @@ export interface MainPageLayoutHorizontalContainerProps { subMenu?: MainPageLayoutItem[]; activeKeys?: string[]; onRouteChange?: MainPageLayoutProps["onClick"]; + title?: React.ReactNode; + onBackPreviousPage?: () => void; } export const MainPageLayoutHorizontalContainer: React.FC = - ({ subMenu, children, activeKeys, onRouteChange }) => { + ({ subMenu, children, activeKeys, onRouteChange, title, onBackPreviousPage }) => { const leftMenu = [ { key: routeConfig[RouteNameType.HomePage].path, @@ -97,6 +99,8 @@ export const MainPageLayoutHorizontalContainer: React.FC(function PeriodicRoomDetailPa } return ( - + {title}} + onBackPreviousPage={backPreviousPage} + >
-
- -

{title}

- - } - onBackPreviousPage={backPreviousPage} - /> -
-
+
(function RoomDetailPage() { +export const RoomDetailPage = observer(function RoomDetailPage() { const { roomUUID, periodicUUID } = useParams>(); const pushHistory = usePushHistory(); const history = useHistory(); @@ -101,33 +101,17 @@ export const RoomDetailPage = observer<{}>(function RoomDetailPage() { } return ( - + {roomInfo.title}} + onBackPreviousPage={() => history.goBack()} + >
-
- -

{roomInfo.title}

- {periodicUUID && ( - <> - 周期 - {roomInfo.roomStatus !== RoomStatus.Stopped && ( -
- 查看全部 {roomInfo.count} 场房间 -
- )} - - )} - - } - onBackPreviousPage={() => history.goBack()} - /> -