import { useEffect, useState } from 'react'; import { Link, useSearchParams } from 'react-router-dom'; import { Button, Table } from 'react-bootstrap'; import { MdDelete } from 'react-icons/md'; import PaginationForTable from '../components/PaginationForTable'; import HttpService from '../services/HttpService'; import { getPageInfoFromSearchParams } from '../helpers'; export default function SecretList() { const [searchParams] = useSearchParams(); const [secrets, setSecrets] = useState([]); const [pagination, setPagination] = useState(null); useEffect(() => { const setSecretsFromResult = (result: any) => { setSecrets(result.results); setPagination(result.pagination); }; const { page, perPage } = getPageInfoFromSearchParams(searchParams); HttpService.makeCallToBackend({ path: `/secrets?per_page=${perPage}&page=${page}`, successCallback: setSecretsFromResult, }); }, [searchParams]); const reloadSecrets = (_result: any) => { window.location.reload(); }; const handleDeleteSecret = (key: any) => { HttpService.makeCallToBackend({ path: `/secrets/${key}`, successCallback: reloadSecrets, httpMethod: 'DELETE', }); }; const buildTable = () => { const rows = secrets.map((row) => { return ( {(row as any).id} {(row as any).key} {(row as any).username} handleDeleteSecret((row as any).key)} /> ); }); return ( {rows}
ID Secret Key Creator Delete
); }; const SecretsDisplayArea = () => { const { page, perPage } = getPageInfoFromSearchParams(searchParams); let displayText = null; if (secrets?.length > 0) { displayText = ( ); } else { displayText =

No Secrets to Display

; } return displayText; }; if (pagination) { return (

Secrets

{SecretsDisplayArea()}
); } return null; }