mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +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>
51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import classnames from "classnames";
|
|
import React from "react";
|
|
|
|
import CustomLink from "components/CustomLink";
|
|
|
|
interface ISandboxMessageProps {
|
|
variant?: "demo" | "sales";
|
|
/** message to display in the sandbox error */
|
|
message: string;
|
|
/** UTM (Urchin Tracking Module) source text that is added to the demo link */
|
|
utmSource?: string;
|
|
className?: string;
|
|
}
|
|
|
|
const baseClass = "sandbox-message";
|
|
|
|
const SandboxMessage = ({
|
|
variant = "demo",
|
|
message,
|
|
utmSource,
|
|
className,
|
|
}: ISandboxMessageProps): JSX.Element => {
|
|
const classes = classnames(baseClass, className);
|
|
const variants = {
|
|
demo: (
|
|
<CustomLink
|
|
url={`https://calendly.com/fleetdm/demo?utm_source=${utmSource}`}
|
|
text={"Schedule a demo"}
|
|
newTab
|
|
/>
|
|
),
|
|
sales: (
|
|
<CustomLink
|
|
url={`https://fleetdm.com/upgrade`}
|
|
text={"Contact sales"}
|
|
newTab
|
|
/>
|
|
),
|
|
};
|
|
|
|
return (
|
|
<div className={classes}>
|
|
<h2 className={`${baseClass}__message`}>{message}</h2>
|
|
<p className={`${baseClass}__link-message`}>
|
|
Want to learn more? {variants[variant]}
|
|
</p>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default SandboxMessage;
|