import { ActionIcon, Code, Group, Skeleton, Table, Text } from "@mantine/core"; import { useModals } from "@mantine/modals"; import { useEffect, useState } from "react"; import { TbEdit, TbLock } from "react-icons/tb"; import configService from "../../services/config.service"; import { AdminConfig as AdminConfigType } from "../../types/config.type"; import showUpdateConfigVariableModal from "./showUpdateConfigVariableModal"; const AdminConfigTable = () => { const modals = useModals(); const [isLoading, setIsLoading] = useState(false); const [configVariables, setConfigVariables] = useState([]); const getConfigVariables = async () => { await configService.listForAdmin().then((configVariables) => { setConfigVariables(configVariables); }); }; useEffect(() => { setIsLoading(true); getConfigVariables().then(() => setIsLoading(false)); }, []); const skeletonRows = [...Array(9)].map((c, i) => ( )); return ( {isLoading ? skeletonRows : configVariables.map((configVariable) => ( ))}
Key Value
{configVariable.key}{" "} {configVariable.secret && }
{configVariable.description}
{configVariable.obscured ? "•".repeat(configVariable.value.length) : configVariable.value} showUpdateConfigVariableModal( modals, configVariable, getConfigVariables ) } >
); }; export default AdminConfigTable;