Versioned agreements with per-user acceptance and audit trails.
Agreement authoring and version lifecycle management combined with user-side pending-agreement retrieval and acceptance recording for compliance-ready governance.
import { useState } from 'react';
import { Modal, Checkbox, CheckboxGroup, Button } from '@cleen/cleen-components';
import { useAgreement, useAcceptAgreement } from '@/hooks/useAgreements';
export function AgreementsAcceptanceModal({ code, onAccepted }) {
const { agreement, loading } = useAgreement(code);
const accept = useAcceptAgreement();
const [accepted, setAccepted] = useState([]);
if (!agreement) return null;
return (
<Modal isOpen size="lg" title={agreement.title}>
<div className="agreement-body" dangerouslySetInnerHTML={{ __html: agreement.html }} />
<CheckboxGroup
value={accepted}
onChange={setAccepted}
options={agreement.consents.map((c) => ({ value: c.id, label: c.label }))}
/>
<Button
variant="primary"
disabled={accepted.length < agreement.consents.length}
loading={loading}
onClick={() => accept(agreement.versionId).then(onAccepted)}
>Accept and continue</Button>
</Modal>
);
}Internal code areas in the licensed Full-Stack codebase that back this module.
ApiAdmin agreement endpointsApiUser agreement accept/latest endpointsApiPublic agreement endpointsA quick visual of how Legal Policy Management participates across the CleenUI stack, alongside the named operations it adds to the API surface.
Each operation maps to an endpoint in the licensed C# Web API surface.