Fixed UI misalignments
This commit is contained in:
@@ -353,6 +353,12 @@ export const BeneficiariesPage: React.FC = () => {
|
||||
const updateCompMutation = useMutation({
|
||||
mutationFn: (vals: ComplianceFormValues) => {
|
||||
if (!editingComp) throw new Error('No item selected');
|
||||
if (
|
||||
(vals.status === ComplianceStatus.Met || vals.status === ComplianceStatus.Exceeded) &&
|
||||
isMaker(editingComp.createdBy)
|
||||
) {
|
||||
throw new Error('Maker-Checker Violation: You created this compliance item and cannot approve it.');
|
||||
}
|
||||
return updateComplianceItem({
|
||||
complianceItemId: editingComp.id,
|
||||
title: vals.title,
|
||||
@@ -399,6 +405,12 @@ export const BeneficiariesPage: React.FC = () => {
|
||||
const updateOutcomeMutation = useMutation({
|
||||
mutationFn: (vals: OutcomeFormValues) => {
|
||||
if (!editingOutcome) throw new Error('No outcome selected for update');
|
||||
if (
|
||||
(vals.status === ComplianceStatus.Met || vals.status === ComplianceStatus.Exceeded) &&
|
||||
isMaker(editingOutcome.createdBy)
|
||||
) {
|
||||
throw new Error('Maker-Checker Violation: You created this outcome record and cannot approve or certify fulfillment.');
|
||||
}
|
||||
return updateOutcome({
|
||||
outcomeId: editingOutcome.id,
|
||||
name: vals.name,
|
||||
@@ -1467,11 +1479,15 @@ export const BeneficiariesPage: React.FC = () => {
|
||||
{...compForm.register('status')}
|
||||
className="w-full bg-slate-900 border border-slate-800 rounded-xl px-3 py-2 text-xs text-white focus:outline-none focus:border-blue-500 cursor-pointer"
|
||||
>
|
||||
{COMPLIANCE_STATUS_OPTIONS.map((opt) => (
|
||||
<option key={opt.value} value={opt.value}>
|
||||
{opt.label}
|
||||
</option>
|
||||
))}
|
||||
{COMPLIANCE_STATUS_OPTIONS.map((opt) => {
|
||||
const isApprovedOpt = opt.value === ComplianceStatus.Met || opt.value === ComplianceStatus.Exceeded;
|
||||
const makerRestricted = editingComp && isApprovedOpt && isMaker(editingComp.createdBy);
|
||||
return (
|
||||
<option key={opt.value} value={opt.value} disabled={makerRestricted}>
|
||||
{opt.label} {makerRestricted ? '(Maker-Checker: Restricted)' : ''}
|
||||
</option>
|
||||
);
|
||||
})}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -1680,11 +1696,15 @@ export const BeneficiariesPage: React.FC = () => {
|
||||
{...outcomeForm.register('status')}
|
||||
className="w-full bg-slate-900 border border-slate-800 rounded-xl px-3 py-2 text-xs text-white focus:outline-none focus:border-blue-500 cursor-pointer"
|
||||
>
|
||||
{COMPLIANCE_STATUS_OPTIONS.map((opt) => (
|
||||
<option key={opt.value} value={opt.value}>
|
||||
{opt.label}
|
||||
</option>
|
||||
))}
|
||||
{COMPLIANCE_STATUS_OPTIONS.map((opt) => {
|
||||
const isMetOpt = opt.value === ComplianceStatus.Met || opt.value === ComplianceStatus.Exceeded;
|
||||
const makerRestricted = editingOutcome && isMetOpt && isMaker(editingOutcome.createdBy);
|
||||
return (
|
||||
<option key={opt.value} value={opt.value} disabled={makerRestricted}>
|
||||
{opt.label} {makerRestricted ? '(Maker-Checker: Restricted)' : ''}
|
||||
</option>
|
||||
);
|
||||
})}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user