* website: add b2c pricing Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add FAQ section for internal/external Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add blurb about enterprise support Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix typo Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make consistent Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import React, { useState } from "react";
|
|
|
|
interface CardProps {
|
|
title: string;
|
|
body: string;
|
|
}
|
|
|
|
const Card = ({ title, body }: CardProps): JSX.Element => {
|
|
const [isActive, setIsActive] = useState(false);
|
|
|
|
return (
|
|
<div>
|
|
<div
|
|
style={{
|
|
padding: "1rem",
|
|
marginBottom: "1rem",
|
|
marginTop: "1rem",
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
cursor: "pointer",
|
|
}}
|
|
className="card"
|
|
onClick={() => setIsActive((state) => !state)}
|
|
>
|
|
<div
|
|
style={{
|
|
display: "flex",
|
|
flexDirection: "row",
|
|
}}
|
|
>
|
|
<div
|
|
style={{
|
|
marginLeft: "0.5rem",
|
|
}}
|
|
>
|
|
<strong>{title}</strong>
|
|
</div>
|
|
</div>
|
|
{isActive && (
|
|
<div
|
|
className="card__body"
|
|
dangerouslySetInnerHTML={{ __html: body }}
|
|
>
|
|
{}
|
|
</div>
|
|
)}
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default Card;
|