import React, {useState } from 'react'; import { useNavigate, Link, useParams } from "react-router-dom"; import {isMobile} from "react-device-detect"; import {Done as DoneIcon, Clear as ClearIcon} from '@mui/icons-material'; import {Paper, Divider, List, ListItem, ListItemText, Card, CardContent, Grid, Typography, Button, ButtonGroup, FormControl, Dialog, DialogTitle, DialogActions, DialogContent, Tooltip} from '@mui/material'; import FAQ from "./Faq.jsx"; import Newsletter from "../components/Newsletter.jsx"; // 1. Create 2-3 payment tiers (slider?) // 2. Create a way to show them anywhere // // Site references: // https://logz.io/pricing/ // https://www.avanan.com/pricing const PaymentField = (props) => { const { maxFields, theme, removeAdditions } = props const parsedFields = maxFields === undefined ? 300 : maxFields const [variant, setVariant] = useState(0) const [paymentType, setPaymentType] = useState(0) const [modalOpen, setModalOpen] = useState(false) const [showPricing, ] = useState(true) const [currentPrice, setCurrentPrice] = useState(129) const [isLoaded, setIsLoaded] = useState(false) const [errorMessage, setErrorMessage] = useState("") let navigate = useNavigate(); if (typeof window === 'undefined' || window.location === undefined) { return null } if (!isLoaded) { setIsLoaded(true) const tmpsearch = typeof window === 'undefined' || window.location === undefined ? "" : window.location.search const tmpVar = new URLSearchParams(tmpsearch).get("variant") if (tmpVar !== undefined && tmpVar !== null && tmpVar < 3) { setVariant(parseInt(tmpVar)) } const tmpType = new URLSearchParams(tmpsearch).get("payment_type") if (tmpType !== undefined && tmpType !== null && tmpType < 2) { setPaymentType(parseInt(tmpType)) } const modal = new URLSearchParams(tmpsearch).get("payment_modal") if (modal !== undefined && modal !== null && modal === "open") { setModalOpen(true) } const tmpView = new URLSearchParams(tmpsearch).get("view") if (tmpView !== undefined && tmpView !== null && tmpView === "failure") { setErrorMessage("Something went wrong with your payment. Please try again.") } } const billingInfo = Billed anually or monthly at 1.2x the cost const maxwidth = isMobile ? "91%" : 1024 const activeIcon = const inActiveIcon = const cardStyle = { height: "100%", width: "100%", textAlign: "center", backgroundColor: theme.palette.surfaceColor, color: "white", } const maxWidth = isMobile ? "100%" : 1000 const margin = isMobile ? 15 : 50 const paperWidth = isMobile ? "100%" : maxWidth-margin*2 const listItemStyle = isMobile ? {textAlign: "center"} : {} const topRet =
Our team is here to help you We solve any problem that arises in a security operations center using YOUR tools. Here's how.
{navigate("/usecases")}} style={listItemStyle}> {}} style={listItemStyle}> {"https://discord.gg/B2CBzUm"}} style={listItemStyle}>
Accessibility first Shuffle was built by and for security professionals. We aim to bring our unique toolbox to every operations center globally, enabling information sharing and collaboration at scale, whether in the cloud, or on-premises.
Automation Services Our team of security and automation experts create workflows to automated your SOC end-to-end. In the case that apps are missing, we will create them for you and share with the community to everyones benefit.
{}} style={listItemStyle}> {}} style={listItemStyle}> {}} style={listItemStyle}>
{}} style={listItemStyle}> {}} style={listItemStyle}> {}} style={listItemStyle}>
Support and Maintenance We recognize that support is a vital part of keeping operations stable and secure. That's why we're offering support of both the cloud platform and usage, as well as for the open source version of Shuffle.
Training We teach you how to become a poweruser of Shuffle. It involves how to maintain, create, share and use it Shuffle, whether in a small operations center or as an MSSP.
{}} style={listItemStyle}> {}} style={listItemStyle}> {}} style={listItemStyle}>
return (
{topRet} {removeAdditions === true ? null :
Got other questions? If you got more questions about our pricing and plans, please contact us so we can help
}
) } export default PaymentField;