1import React from "react";
2import { apiFetch } from "../../lib/api";
4export default function TabServices({ agentId }) {
5 const [services, setServices] = React.useState([]);
9 apiFetch(`/agent/${agentId}/services`).then(setServices);
11 React.useEffect(load, [agentId]);
13 function action(name, type) {
15 apiFetch(`/agent/${agentId}/service/${name}/${type}`, { method: "POST" })
19 // Defensive: ensure services is an array
20 const safeServices = Array.isArray(services) ? services : [];
22 if (!Array.isArray(services)) {
24 <div className="tab-container">
25 <h2>Windows Services</h2>
26 <div className="card error">Service data is not available or invalid.</div>
32 <div className="tab-container">
33 <h2>Windows Services</h2>
34 <div className="card-grid">
35 {safeServices.map((s) => (
36 <div key={s.name} className="card">
37 <strong>{s.name}</strong> ({s.status})
38 <div className="flex-row">
39 <button className="btn-sm" onClick={() => action(s.name, "start")}>
42 <button className="btn-sm" onClick={() => action(s.name, "stop")}>
45 <button className="btn-sm" onClick={() => action(s.name, "restart")}>