mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 21:47:20 +00:00
## Addresses #9371 ### Adds a suite of UI logic for premium features in the Sandbox environment For reviewer: please review the work for the below 3 substasks, which are the only remaining subtasks encompassed by this PR that have not yet passed review individually: - #10822 (9) - #10823 (10) - #10824 (11) ## Checklist for submitter - [x] Changes file added for user-visible changes in `changes/` - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com> Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
import CustomLink from "components/CustomLink";
|
|
import Icon from "components/Icon";
|
|
import { uniqueId } from "lodash";
|
|
import React from "react";
|
|
import ReactTooltip, { Place } from "react-tooltip";
|
|
import { COLORS } from "styles/var/colors";
|
|
|
|
interface IPremiumFeatureIconWithTooltip {
|
|
tooltipPlace?: Place;
|
|
tooltipDelayHide?: number;
|
|
tooltipPositionOverrides?: {
|
|
leftAdj?: number;
|
|
topAdj?: number;
|
|
};
|
|
}
|
|
const PremiumFeatureIconWithTooltip = ({
|
|
tooltipPlace,
|
|
tooltipDelayHide = 100,
|
|
tooltipPositionOverrides,
|
|
}: IPremiumFeatureIconWithTooltip) => {
|
|
const [leftAdj, topAdj] = [
|
|
tooltipPositionOverrides?.leftAdj ?? 0,
|
|
tooltipPositionOverrides?.topAdj ?? 0,
|
|
];
|
|
const tipId = uniqueId();
|
|
return (
|
|
<span className="premium-icon-tip">
|
|
<span data-tip data-for={tipId}>
|
|
<Icon name="premium-feature" className="premium-feature-icon" />
|
|
</span>
|
|
<ReactTooltip
|
|
place={tooltipPlace ?? "top"}
|
|
type="dark"
|
|
effect="solid"
|
|
id={tipId}
|
|
backgroundColor={COLORS["tooltip-bg"]}
|
|
delayHide={tooltipDelayHide}
|
|
delayUpdate={500}
|
|
overridePosition={(pos: { left: number; top: number }) => {
|
|
return {
|
|
left: pos.left + leftAdj,
|
|
top: pos.top + topAdj,
|
|
};
|
|
}}
|
|
>
|
|
{`This is a Fleet Premium feature. `}
|
|
<CustomLink
|
|
url="https://fleetdm.com/upgrade"
|
|
text="Learn more"
|
|
newTab
|
|
multiline={false}
|
|
iconColor="core-fleet-white"
|
|
/>
|
|
</ReactTooltip>
|
|
</span>
|
|
);
|
|
};
|
|
|
|
export default PremiumFeatureIconWithTooltip;
|