/** * ============LICENSE_START======================================================================== * ONAP : ccsdk feature sdnr wt odlux * ================================================================================================= * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved. * ================================================================================================= * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. * ============LICENSE_END========================================================================== */ import * as React from 'react'; import { TextField, Tabs, Tab, Typography, AppBar, Button, Tooltip } from '@material-ui/core'; import MaterialTable, { ColumnModel, ColumnType, MaterialTableCtorType } from "../../../../../framework/src/components/material-table"; import { site, Device } from '../../model/site'; import DenseTable from '../denseTable'; import { LatLonToDMS } from '../../utils/mapUtils'; type minLinks = { name: string, azimuth: string} const FaultAlarmNotificationTable = MaterialTable as MaterialTableCtorType; type panelId="links" | "nodes"; type props = { site: site, updatedDevices: Device[]|null, navigate(applicationName: string, path?: string):void, onLinkClick(id: string): void, loadDevices(devices:Device[]): void }; const SiteDetails: React.FunctionComponent = (props) => { const [value, setValue] = React.useState("links"); const [height, setHeight] = React.useState(330); const handleResize = () =>{ //console.log("resize") const el = document.getElementById('site-details-panel')?.getBoundingClientRect(); const el2 = document.getElementById('site-tabs')?.getBoundingClientRect(); if(el && el2){ setHeight(el!.height - el2!.y +20); } } //on mount React.useEffect(()=>{ handleResize(); window.addEventListener("resize", ()=>{console.log("really got resized.")}); },[]); // on update React.useEffect(()=>{ props.loadDevices(props.site.devices); handleResize(); }, [props.site]) const onHandleTabChange = (event: React.ChangeEvent<{}>, newValue: panelId) => { setValue(newValue); } const linkRows: minLinks[] = props.site.links.map(link=> { return {name: link.name, azimuth: link.azimuthB.toFixed(2) } }); return (

{props.site.name}

{ props.site.operator !== '' && props.site.operator !== null ? : } { props.site.type !== undefined && props.site.type.length > 0 && } { props.site.address !== undefined && props.site.address.length > 0 && } { props.site.heighAGLInMeters !== undefined && props.site.heighAGLInMeters > 0 && } { props.site.antennaHeightAGLInMeters !== undefined && props.site.antennaHeightAGLInMeters > 0 && } { value === "links" && <> { props.site.links.length === 0 && No links available. } { props.site.links.length > 0 && /** * * */ } } { value === "nodes" && <> { props.site.devices.length === 0 && No nodes available. } { props.site.devices.length>0 && props.updatedDevices !== null && } }
) } export default SiteDetails;