import React, { useState } from "react"; import { useQuery } from "react-query"; import { AxiosError } from "axios"; import { DEFAULT_USE_QUERY_OPTIONS, LEARN_MORE_ABOUT_BASE_LINK, } from "utilities/constants"; import mdmAPI, { IGetSetupExperienceScriptResponse, } from "services/entities/mdm"; import configAPI from "services/entities/config"; import teamsAPI, { ILoadTeamResponse } from "services/entities/teams"; import { IConfig } from "interfaces/config"; import { API_NO_TEAM_ID, ITeamConfig } from "interfaces/team"; import SectionHeader from "components/SectionHeader"; import DataError from "components/DataError"; import Spinner from "components/Spinner"; import CustomLink from "components/CustomLink"; import SetupExperiencePreview from "./components/SetupExperienceScriptPreview"; import SetupExperienceScriptUploader from "./components/SetupExperienceScriptUploader"; import SetupExperienceScriptCard from "./components/SetupExperienceScriptCard"; import DeleteSetupExperienceScriptModal from "./components/DeleteSetupExperienceScriptModal"; import SetupExperienceContentContainer from "../../components/SetupExperienceContentContainer"; import { getManualAgentInstallSetting } from "../BootstrapPackage/BootstrapPackage"; const baseClass = "run-script"; interface IRunScriptProps { currentTeamId: number; } const RunScript = ({ currentTeamId }: IRunScriptProps) => { const [showDeleteScriptModal, setShowDeleteScriptModal] = useState(false); const { data: script, error: scriptError, isLoading, isError, refetch: refetchScript, remove: removeScriptFromCache, } = useQuery( ["setup-experience-script", currentTeamId], () => mdmAPI.getSetupExperienceScript(currentTeamId), { ...DEFAULT_USE_QUERY_OPTIONS, retry: false } ); const { data: globalConfig, isLoading: isLoadingGlobalConfig } = useQuery< IConfig, Error >(["config", currentTeamId], () => configAPI.loadAll(), { ...DEFAULT_USE_QUERY_OPTIONS, enabled: currentTeamId === API_NO_TEAM_ID, }); const { data: teamConfig, isLoading: isLoadingTeamConfig } = useQuery< ILoadTeamResponse, Error, ITeamConfig >(["team", currentTeamId], () => teamsAPI.load(currentTeamId), { ...DEFAULT_USE_QUERY_OPTIONS, enabled: currentTeamId !== API_NO_TEAM_ID, select: (res) => res.team, }); const onUpload = () => { refetchScript(); }; const onDelete = () => { removeScriptFromCache(); setShowDeleteScriptModal(false); refetchScript(); }; const scriptUploaded = true; const hasManualAgentInstall = getManualAgentInstallSetting( currentTeamId, globalConfig, teamConfig ); const renderContent = () => { if (isLoading || isLoadingGlobalConfig || isLoadingTeamConfig) { ; } if (isError && scriptError.status !== 404) { return ; } return (

Upload a script to run on hosts that automatically enroll to Fleet.

{!scriptUploaded || !script ? ( ) : ( <>

Script will run during setup:

setShowDeleteScriptModal(true)} /> )}
); }; return (
<>{renderContent()} {showDeleteScriptModal && script && ( setShowDeleteScriptModal(false)} /> )}
); }; export default RunScript;