import { shell } from 'electron'; import { isEmpty } from 'lodash'; import { Dispatch } from 'react'; import { useDispatch } from 'react-redux'; import styled from 'styled-components'; import { MessageInteraction } from '../../interactions'; import { OpenUrlModalState, updateOpenUrlModal } from '../../state/ducks/modalDialog'; import { SessionWrapperModal } from '../SessionWrapperModal'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton'; import { SpacerMD } from '../basic/Text'; import { StyledI18nSubText } from '../basic/StyledI18nSubText'; import { StyledModalDescriptionContainer } from './shared/ModalDescriptionContainer'; const StyledScrollDescriptionContainer = styled(StyledModalDescriptionContainer)` max-height: 110px; overflow-y: auto; `; export function OpenUrlModal(props: OpenUrlModalState) { const dispatch = useDispatch(); if (!props || isEmpty(props) || !props.urlToOpen) { return null; } const url = props.urlToOpen; function onClose() { dispatch(updateOpenUrlModal(null)); } function onClickOpen() { void shell.openExternal(url); onClose(); } function onClickCopy() { MessageInteraction.copyBodyToClipboard(url); onClose(); } return (
); } export const showLinkVisitWarningDialog = (urlToOpen: string, dispatch: Dispatch) => { dispatch( updateOpenUrlModal({ urlToOpen, }) ); };