"use client"; //components/main/uebersicht/NetworkInfo.tsx
import React, { useEffect } from "react";
import { useSelector, useDispatch } from "react-redux";
import { RootState, AppDispatch } from "../../../redux/store";
import { fetchSystemSettingsThunk } from "../../../redux/thunks/fetchSystemSettingsThunk";
import { fetchOpcUaSettingsThunk } from "../../../redux/thunks/fetchOpcUaSettingsThunk";

const NetworkInfo: React.FC = () => {
  const dispatch: AppDispatch = useDispatch();

  // ✅ OPC UA Daten laden, wenn Komponente angezeigt wird
  useEffect(() => {
    dispatch(fetchSystemSettingsThunk());
    dispatch(fetchOpcUaSettingsThunk());
  }, [dispatch]);
  // Werte direkt aus Redux holen
  const ip =
    useSelector((state: RootState) => state.systemSettingsSlice.ip) ||
    "Unbekannt";
  const subnet =
    useSelector((state: RootState) => state.systemSettingsSlice.subnet) ||
    "Unbekannt";
  const gateway =
    useSelector((state: RootState) => state.systemSettingsSlice.gateway) ||
    "Unbekannt";
  const opcUaZustandRaw = useSelector(
    (state: RootState) => state.opcuaSettingsSlice.opcUaZustand
  );
  const opcUaNodesetName =
    useSelector(
      (state: RootState) => state.opcuaSettingsSlice.opcUaNodesetName
    ) || "Unbekannt";
  // OPC-UA Zustand in lesbaren Text umwandeln
  const opcUaZustand =
    Number(opcUaZustandRaw) === 1
      ? "Server betriebsbereit"
      : Number(opcUaZustandRaw) === 0
      ? "Server außer Betrieb"
      : "Unbekannt";

  return (
    <div className="w-full flex-direction: row flex">
      <div className=" flex-grow flex justify-between items-center mt-1 bg-white p-2 rounded-lg shadow-md border border-gray-200 laptop:m-0 laptop:scale-y-75 2xl:scale-y-75">
        <div className="flex items-center space-x-4">
          <img
            src="/images/IP-icon.svg"
            alt="IP Address"
            className="w-6 text-littwin-blue"
          />
          <div>
            <p className="text-xs text-gray-500">IP-Adresse</p>
            <p className="text-sm font-medium text-gray-700">{ip}</p>
          </div>
        </div>

        <div className="flex items-center space-x-4">
          <img
            src="/images/subnet-mask.svg"
            alt="subnet mask"
            className="w-6"
          />
          <div>
            <p className="text-xs text-gray-500">Subnet-Maske</p>
            <p className="text-sm font-medium text-gray-700">{subnet}</p>
          </div>
        </div>

        <div className="flex items-center space-x-4">
          <img src="/images/gateway.svg" alt="gateway" className="w-6" />
          <div>
            <p className="text-xs text-gray-500">Gateway</p>
            <p className="text-sm font-medium text-gray-700">{gateway}</p>
          </div>
        </div>

        <div className="flex items-center space-x-4">
          <div className="text-xs font-bold text-littwin-blue">OPC-UA</div>
          <div>
            <p className="text-xs text-gray-500">Status</p>
            <p className="text-sm font-medium text-gray-700">{opcUaZustand}</p>
          </div>
        </div>

        <div className="flex items-center space-x-4">
          <div>
            <p className="text-xs text-gray-500">Nodeset Name</p>
            <p className="text-sm font-medium text-gray-700">
              {opcUaNodesetName}
            </p>
          </div>
        </div>
      </div>
    </div>
  );
};

export default NetworkInfo;
