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)}>