Files
OutFleet/client/src/pages/certificates/certificates.tsx

39 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-10-03 01:10:06 +03:00
import type { RouteObject } from 'react-router';
2025-10-18 18:53:38 +03:00
import { useAppDispatch, useAppSelector } from '../../common/hooks';
import { useEffect } from 'react';
import { fetchCertificates, getCertificatesState } from '../../features';
import { CreateCertificate } from '../../features/certificates';
import { CertificateList } from '../../features/certificates/components/certificate-list';
2025-10-03 01:10:06 +03:00
export const Certificates = () => {
2025-10-18 18:53:38 +03:00
const dispatch = useAppDispatch()
const { loading, certificates } = useAppSelector(getCertificatesState)
useEffect(()=>{
dispatch(fetchCertificates())
}, [dispatch])
2025-10-03 01:10:06 +03:00
return (
<div id="certificates" className="tab-content active">
<div className="section">
<h2>Add Certificate</h2>
2025-10-18 18:53:38 +03:00
<CreateCertificate/>
2025-10-03 01:10:06 +03:00
</div>
<div className="section">
<h2>Certificates List</h2>
<div id="certificatesList" className="loading">
2025-10-18 18:53:38 +03:00
{ loading && 'Loading...' }
{ certificates.length ? <CertificateList certificates={certificates}/> : <p>No certificates found</p> }
2025-10-03 01:10:06 +03:00
</div>
</div>
</div>
);
};
export const CertificatesRoute: RouteObject = {
path: '/certificates',
Component: Certificates,
};