// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import React from 'react'; import { Dispatch } from 'redux'; import { connect } from 'react-redux'; import { withStyles, StyleRulesCallback, WithStyles, Typography } from '@material-ui/core'; import { ArvadosTheme } from 'common/custom-theme'; import { openRichTextEditorDialog } from 'store/rich-text-editor-dialog/rich-text-editor-dialog-actions'; type CssRules = "root"; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ root: { color: theme.palette.primary.main, cursor: 'pointer' } }); interface RichTextEditorLinkData { title: string; label: string; content: string; } interface RichTextEditorLinkActions { onClick: (title: string, content: string) => void; } type RichTextEditorLinkProps = RichTextEditorLinkData & RichTextEditorLinkActions & WithStyles; const mapDispatchToProps = (dispatch: Dispatch) => ({ onClick: (title: string, content: string) => dispatch(openRichTextEditorDialog(title, content)) }); export const RichTextEditorLink = connect(undefined, mapDispatchToProps)( withStyles(styles)(({ classes, title, content, label, onClick }: RichTextEditorLinkProps) => onClick(title, content) }> {label} ));