/** * Prompt.tsx - don't use without guarding on useSmallScreenInterface - it won't look pretty! */ import { FC, useRef, useState } from "react"; import { useTheme } from "styled-components"; import FadeIn from "../Transitions/FadeIn/FadeIn"; import SlideUpFadeIn from "../Transitions/SlideUpFadeIn/SlideUpFadeIn"; import TourExplanationBox from "../Tour/TourExplanationBox"; import TourPrefaceBox from "../Tour/TourPrefaceBox"; import CloseButton from "../Generic/CloseButton"; import ViewState from "../../ReactViewModels/ViewState"; import Text from "../../Styled/Text"; import Box from "../../Styled/Box"; import Button from "../../Styled/Button"; import Spacing from "../../Styled/Spacing"; interface PromptProps { viewState: ViewState; title: string; content: string; dismissLabel: string; acceptLabel: string; onDismiss: () => void; onAccept: () => void; isVisible: boolean; } export const HelpPrompt: FC = ({ title, content, dismissLabel, acceptLabel, onDismiss, onAccept, isVisible }) => { const theme = useTheme(); // This is required so we can do nested animations const [childrenVisible, setChildrenVisible] = useState(isVisible); const fadeRef = useRef(null); const slideInRef = useRef(null); return ( setChildrenVisible(true)} transitionProps={{ onExiting: () => setChildrenVisible(false) }} nodeRef={fadeRef} > Number(p.theme.frontComponentZIndex) + 100}; `} > ); }; export default HelpPrompt;