revite/src/components/common/Tooltip.tsx

50 lines
1.2 KiB
TypeScript
Raw Normal View History

import { Text } from "preact-i18n";
import styled from "styled-components";
2021-06-19 13:46:05 -04:00
import { Children } from "../../types/Preact";
import Tippy, { TippyProps } from '@tippyjs/react';
2021-06-19 13:46:05 -04:00
type Props = Omit<TippyProps, 'children'> & {
2021-06-19 13:46:05 -04:00
children: Children;
content: Children;
}
export default function Tooltip(props: Props) {
const { children, content, ...tippyProps } = props;
2021-06-19 13:46:05 -04:00
return (
<Tippy content={content} {...tippyProps}>
{/*
// @ts-expect-error */}
<div>{ children }</div>
</Tippy>
2021-06-19 13:46:05 -04:00
);
}
const PermissionTooltipBase = styled.div`
display: flex;
align-items: center;
flex-direction: column;
2021-06-28 05:36:37 -04:00
span {
font-weight: 700;
text-transform: uppercase;
color: var(--secondary-foreground);
font-size: 11px;
}
code {
font-family: var(--monoscape-font);
}
`;
export function PermissionTooltip(props: Omit<Props, 'content'> & { permission: string }) {
const { permission, ...tooltipProps } = props;
return (
<Tooltip content={<PermissionTooltipBase>
2021-06-28 05:36:37 -04:00
<span><Text id="app.permissions.required" /></span>
<code>{ permission }</code>
</PermissionTooltipBase>} {...tooltipProps} />
)
}