fleet/frontend/components/Sandbox/SandboxMessage/SandboxMessage.tsx
Jacob Shandling cb58849d95
Fleet Premium to Sandbox (#11372)
## 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>
2023-04-27 08:53:30 -07:00

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;