* feat: Add type guards for ViewField email values and definitions, update ViewFieldTypes & peopleViewFields * feat: use ContactLink for EditablePhoneCell & create EditableEmailCell & EmailInputDisplay comp * fix: set second value for field * enhance: add edit btn for phone cell * feat: install dependencies intl-tel-input * feat: add phone cell input & connect intl-tel-input * fix: resolve rebase errors * fix: remove placeholder * feat(storybook): create stories for EmailInputDisplay, PhoneInputDisplay, and PhoneEditableField components --------- Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
39 lines
900 B
TypeScript
39 lines
900 B
TypeScript
import * as React from 'react';
|
|
import { Link as ReactLink } from 'react-router-dom';
|
|
import styled from '@emotion/styled';
|
|
|
|
type OwnProps = {
|
|
className?: string;
|
|
href: string;
|
|
children?: React.ReactNode;
|
|
onClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
|
};
|
|
|
|
const StyledClickable = styled.div`
|
|
display: flex;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
|
|
a {
|
|
color: inherit;
|
|
text-decoration: underline;
|
|
text-decoration-color: ${({ theme }) => theme.border.color.strong};
|
|
|
|
&:hover {
|
|
text-decoration-color: ${({ theme }) => theme.font.color.primary};
|
|
}
|
|
}
|
|
`;
|
|
|
|
export function ContactLink({ className, href, children, onClick }: OwnProps) {
|
|
return (
|
|
<div>
|
|
<StyledClickable className={className}>
|
|
<ReactLink target="_blank" onClick={onClick} to={href}>
|
|
{children}
|
|
</ReactLink>
|
|
</StyledClickable>
|
|
</div>
|
|
);
|
|
}
|