import { TextField } from "@material-ui/core"; import { Button } from "@saleor/components/Button"; import { buttonMessages } from "@saleor/intl"; import { appsMessages } from "@saleor/new-apps/messages"; import React, { useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { messages } from "./messages"; import { useStyles } from "./styles"; interface Props { onSubmitted(manifestUrl: string): void; } export const InstallWithManifestFormButton: React.FC = ({ onSubmitted, }) => { const styles = useStyles(); const intl = useIntl(); const [inputOpened, setInputOpened] = useState(false); const handleFormSubmit: React.FormEventHandler = e => { e.preventDefault(); const form = new FormData(e.currentTarget); const inputValue = form.get("manifest-url") as string; try { new URL(inputValue); onSubmitted(inputValue); } catch (e) { console.error("Invalid URL from input. Should be validated by browser"); } }; if (inputOpened) { return (
); } return ( ); }; InstallWithManifestFormButton.displayName = "InstallWithManifestFormButton"; export default InstallWithManifestFormButton;