import React, { useContext, useState } from "react"; import { NotificationContext } from "context/notification"; import scriptAPI from "services/entities/scripts"; import FileUploader from "components/FileUploader"; import { getErrorMessage } from "./helpers"; const baseClass = "script-uploader"; interface IScriptPackageUploaderProps { currentTeamId: number; onUpload: () => void; } const ScriptPackageUploader = ({ currentTeamId, onUpload, }: IScriptPackageUploaderProps) => { const { renderFlash } = useContext(NotificationContext); const [showLoading, setShowLoading] = useState(false); const onUploadFile = async (files: FileList | null) => { if (!files || files.length === 0) { return; } const file = files[0]; setShowLoading(true); try { await scriptAPI.uploadScript(file, currentTeamId); renderFlash("success", "Successfully uploaded!"); onUpload(); } catch (e) { renderFlash("error", getErrorMessage(e)); } finally { setShowLoading(false); } }; return ( ); }; export default ScriptPackageUploader;