Files
twenty/front/src/modules/workspace/components/WorkspaceInviteLink.tsx
gitstart-twenty 77a1840611 Chore(front): Create a custom eslint rule for Props naming (#1904)
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Matheus <matheus_benini@hotmail.com>
Co-authored-by: bosiraphael <raphael.bosi@gmail.com>
2023-10-09 16:31:13 +02:00

53 lines
1.3 KiB
TypeScript

import { useTheme } from '@emotion/react';
import styled from '@emotion/styled';
import { Button } from '@/ui/button/components/Button';
import { IconCopy, IconLink } from '@/ui/icon';
import { TextInputSettings } from '@/ui/input/text/components/TextInputSettings';
import { useSnackBar } from '@/ui/snack-bar/hooks/useSnackBar';
const StyledContainer = styled.div`
align-items: center;
display: flex;
flex-direction: row;
`;
const StyledLinkContainer = styled.div`
flex: 1;
margin-right: ${({ theme }) => theme.spacing(2)};
`;
type WorkspaceInviteLinkProps = {
inviteLink: string;
};
export const WorkspaceInviteLink = ({
inviteLink,
}: WorkspaceInviteLinkProps) => {
const theme = useTheme();
const { enqueueSnackBar } = useSnackBar();
return (
<StyledContainer>
<StyledLinkContainer>
<TextInputSettings value={inviteLink} disabled fullWidth />
</StyledLinkContainer>
<Button
Icon={IconLink}
variant="primary"
accent="blue"
title="Copy link"
onClick={() => {
enqueueSnackBar('Link copied to clipboard', {
variant: 'success',
icon: <IconCopy size={theme.icon.size.md} />,
duration: 2000,
});
navigator.clipboard.writeText(inviteLink);
}}
/>
</StyledContainer>
);
};