import { runInAction } from "mobx"; import { observer } from "mobx-react"; import { FC } from "react"; import { useTranslation, withTranslation } from "react-i18next"; import styled from "styled-components"; import defined from "terriajs-cesium/Source/Core/defined"; import SplitDirection from "terriajs-cesium/Source/Scene/SplitDirection"; import CommonStrata from "../../../Models/Definition/CommonStrata"; import hasTraits from "../../../Models/Definition/hasTraits"; import Model from "../../../Models/Definition/Model"; import Box from "../../../Styled/Box"; import { RawButton } from "../../../Styled/Button"; import Spacing from "../../../Styled/Spacing"; import SplitterTraits from "../../../Traits/TraitsClasses/SplitterTraits"; interface ILeftRightButton { isActive: boolean; } const LeftRightButton = styled(RawButton).attrs({ fullWidth: true })` text-align: center; padding: 5px; color: ${(p) => p.theme.textLight}; background-color: ${(p) => p.theme.dark}; ${(p) => p.isActive && ` background-color: ${p.theme.colorSecondary}; `} &:hover, &:focus { background-color: ${(p) => p.theme.colorSecondary}; } `; interface ILeftRightSection { item: Model; } const LeftRightSection: FC = observer( ({ item }: ILeftRightSection) => { const goLeft = () => { runInAction(() => { item.setTrait(CommonStrata.user, "splitDirection", SplitDirection.LEFT); }); }; const goBoth = () => { runInAction(() => { item.setTrait(CommonStrata.user, "splitDirection", SplitDirection.NONE); }); }; const goRight = () => { runInAction(() => { item.setTrait( CommonStrata.user, "splitDirection", SplitDirection.RIGHT ); }); }; const { t } = useTranslation(); const splitDirection = item.splitDirection; if ( !hasTraits(item, SplitterTraits, "splitDirection") || item.disableSplitter || !defined(splitDirection) || !item.terria.showSplitter ) { return null; } return ( <> {t("splitterTool.workbench.goleft")} {t("splitterTool.workbench.both")} {t("splitterTool.workbench.goright")} ); } ); export default withTranslation()(LeftRightSection);