import { Button } from "@dashboard/components/Button"; import CardTitle from "@dashboard/components/CardTitle"; import Skeleton from "@dashboard/components/Skeleton"; import TableRowLink from "@dashboard/components/TableRowLink"; import { FormChange } from "@dashboard/hooks/useForm"; import { Card, CardActions, CardContent, Table, TableCell, TableHead, Typography, } from "@material-ui/core"; import { ExpandIcon, IconButton } from "@saleor/macaw-ui"; import clsx from "clsx"; import React, { useEffect, useMemo, useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { WebhookFormData } from "../WebhookDetailsPage"; import { messages } from "./messages"; import useStyles from "./styles"; import { mapHeaders, stringifyHeaders } from "./utils"; import WebhookHeadersTableBody from "./WebhookHeadersTableBody"; export interface WebhookHeadersProps { data: WebhookFormData; onChange: FormChange; } const WebhookHeaders: React.FC = ({ data: { customHeaders }, onChange, }) => { const intl = useIntl(); const [expanded, setExpanded] = useState(false); const classes = useStyles(); const headers = useMemo(() => mapHeaders(customHeaders), [customHeaders]); useEffect(() => { if (headers.length > 0) { setExpanded(true); } }, [headers.length]); const add = () => { const items = [...headers]; items.push({ name: "", value: "", error: false }); onChange({ target: { name: "customHeaders", value: stringifyHeaders(items), }, }); }; return ( {intl.formatMessage(messages.header)} setExpanded(!expanded)} > } /> {headers === undefined ? ( ) : ( <> {headers.length > 0 && ( )} {expanded && ( <> {headers.length === 0 ? ( ) : ( <>
)} )} )}
); }; WebhookHeaders.displayName = "WebhookHeaders"; export default WebhookHeaders;