import React, { useMemo } from "react"; import { Link, RouteComponentProps, withRouter } from "react-router-dom"; import { useSelector } from "react-redux"; import { getIsFetchingPage } from "selectors/appViewSelectors"; import styled from "styled-components"; import { AppViewerRouteParams } from "constants/routes"; import { theme } from "constants/DefaultTheme"; import { Icon, NonIdealState, Spinner } from "@blueprintjs/core"; import Centered from "components/designSystems/appsmith/CenteredWrapper"; import AppPage from "./AppPage"; import { getCanvasWidth, getCurrentPageName } from "selectors/editorSelectors"; import RequestConfirmationModal from "pages/Editor/RequestConfirmationModal"; import { getCurrentApplication } from "selectors/applicationSelectors"; import { isPermitted, PERMISSION_TYPE, } from "../Applications/permissionHelpers"; import { builderURL } from "RouteBuilder"; import { getCanvasWidgetsStructure } from "selectors/entitiesSelector"; import { isEqual } from "lodash"; const Section = styled.section` height: 100%; width: 100%; margin: 0 auto; position: relative; overflow-x: auto; overflow-y: auto; `; type AppViewerPageContainerProps = RouteComponentProps; function AppViewerPageContainer(props: AppViewerPageContainerProps) { const currentPageName = useSelector(getCurrentPageName); const widgetsStructure = useSelector(getCanvasWidgetsStructure, isEqual); const canvasWidth = useSelector(getCanvasWidth); const isFetchingPage = useSelector(getIsFetchingPage); const currentApplication = useSelector(getCurrentApplication); const { match } = props; // get appsmith editr link const appsmithEditorLink = useMemo(() => { if ( currentApplication?.userPermissions && isPermitted( currentApplication?.userPermissions, PERMISSION_TYPE.MANAGE_APPLICATION, ) ) { return (

Please add widgets to this page in the  Appsmith Editor

); } }, [currentApplication?.userPermissions]); const pageNotFound = ( } title="This page seems to be blank" /> ); const pageLoading = ( ); if (isFetchingPage) return pageLoading; if (!(widgetsStructure.children && widgetsStructure.children.length > 0)) return pageNotFound; return (
); } export default withRouter(AppViewerPageContainer);