export default()

in src/frontend/src/components/AddMediaContent.js [7:47]


export default ({ onSubmit, onAdded, onError, tasks }) => {
  const [addModalShown, showAddModal] = useState(false);
  const [adding, setAdding] = useState(false);
  const [mediaDescription, setMediaDescription] = useState("");
  const [mediaTitle, setMediaTitle] = useState("");
  const [mediaUrl, setMediaUrl] = useState("");

  const hideModal = () => showAddModal(false);
  const addMediaItem = () => {
    setAdding(true);

    const afterAdding = () => {
      hideModal();
      setAdding(false);
      setMediaDescription("");
      setMediaTitle("");
      setMediaUrl("");
      onAdded();
    };

    const withError = () => {
      afterAdding();
      onError();
    };

    return onSubmit({ mediaDescription, mediaTitle, mediaUrl })
      .then(afterAdding)
      .catch(withError);
  };

  const isMediaTitleValid = !isEmpty(mediaTitle);
  const isMediaUrlValid = isUrl(mediaUrl) && !contains(tasks, mediaUrl);

  const validationAttributes = isValid =>
    isValid ? { isValid: true } : { isInvalid: true };

  const submitEnabled = isMediaUrlValid && isMediaTitleValid;

  return (
    <>
      <Button size="sm" variant="success" onClick={() => showAddModal(true)}>