@ixo/editor 5.28.0 → 5.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-KWN34HVF.mjs → chunk-47XOPWSV.mjs} +22 -3
- package/dist/chunk-47XOPWSV.mjs.map +1 -0
- package/dist/{chunk-AXKLTSPX.mjs → chunk-I2OZHN6S.mjs} +148 -25
- package/dist/{chunk-AXKLTSPX.mjs.map → chunk-I2OZHN6S.mjs.map} +1 -1
- package/dist/core/index.mjs +1 -1
- package/dist/index.mjs +2 -2
- package/dist/mantine/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-KWN34HVF.mjs.map +0 -1
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
transformSurveyToCredentialSubject,
|
|
66
66
|
updateXeroWorkReviewPayloadForEditor,
|
|
67
67
|
upsertXeroWorkItemForEditor
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-47XOPWSV.mjs";
|
|
69
69
|
|
|
70
70
|
// src/mantine/hooks/useCreateIxoEditor.ts
|
|
71
71
|
import { useCreateBlockNote } from "@blocknote/react";
|
|
@@ -7394,7 +7394,7 @@ var BidViewPanel = ({ editor, block, bid, deedId, adminAddress, onRefresh, execu
|
|
|
7394
7394
|
const [maxUsdcAmount, setMaxUsdcAmount] = useState26("");
|
|
7395
7395
|
const [maxIxoAmount, setMaxIxoAmount] = useState26("");
|
|
7396
7396
|
const isEvaluator = isEvaluatorRole(bid.role);
|
|
7397
|
-
const
|
|
7397
|
+
const buildMaxAmounts2 = () => {
|
|
7398
7398
|
if (!isEvaluator) return void 0;
|
|
7399
7399
|
const coins = [];
|
|
7400
7400
|
if (maxUsdcAmount !== "" && Number(maxUsdcAmount) > 0) {
|
|
@@ -7412,7 +7412,7 @@ var BidViewPanel = ({ editor, block, bid, deedId, adminAddress, onRefresh, execu
|
|
|
7412
7412
|
return coins.length > 0 ? coins : void 0;
|
|
7413
7413
|
};
|
|
7414
7414
|
const handleApprove = () => {
|
|
7415
|
-
const maxAmounts =
|
|
7415
|
+
const maxAmounts = buildMaxAmounts2();
|
|
7416
7416
|
approveBid(maxAmounts);
|
|
7417
7417
|
};
|
|
7418
7418
|
const surveyContainerStyle = useMemo29(
|
|
@@ -26162,7 +26162,7 @@ var EvaluateBidFlowDetail = ({
|
|
|
26162
26162
|
const updatePaymentRow = useCallback91((id, patch) => {
|
|
26163
26163
|
setPaymentRows((prev) => prev.map((row) => row.id === id ? { ...row, ...patch } : row));
|
|
26164
26164
|
}, []);
|
|
26165
|
-
const
|
|
26165
|
+
const buildMaxAmounts2 = useCallback91(() => {
|
|
26166
26166
|
return paymentRows.map((row) => {
|
|
26167
26167
|
const denom = row.denom === CUSTOM_DENOM ? row.customDenom.trim() : row.denom || "";
|
|
26168
26168
|
const amount = Number(row.amount);
|
|
@@ -26186,9 +26186,9 @@ var EvaluateBidFlowDetail = ({
|
|
|
26186
26186
|
applicantAddress: selectedBid.address,
|
|
26187
26187
|
adminAddress,
|
|
26188
26188
|
rejectReason: decision === "reject" ? selectedBidIsEvaluator ? rejectReason : rejectReason.trim() || "Rejected" : void 0,
|
|
26189
|
-
maxAmounts: selectedBidIsEvaluator ? JSON.stringify(
|
|
26189
|
+
maxAmounts: selectedBidIsEvaluator ? JSON.stringify(buildMaxAmounts2()) : void 0
|
|
26190
26190
|
});
|
|
26191
|
-
}, [registerRuntimeInputs, selectedBid, decision, adminAddress, rejectReason,
|
|
26191
|
+
}, [registerRuntimeInputs, selectedBid, decision, adminAddress, rejectReason, buildMaxAmounts2]);
|
|
26192
26192
|
useEffect90(() => {
|
|
26193
26193
|
if (!unlockSigning) return;
|
|
26194
26194
|
if (!selectedBid || !decision) {
|
|
@@ -26227,7 +26227,7 @@ var EvaluateBidFlowDetail = ({
|
|
|
26227
26227
|
applicantDid: selectedBid.did,
|
|
26228
26228
|
applicantAddress: selectedBid.address,
|
|
26229
26229
|
adminAddress,
|
|
26230
|
-
maxAmounts: selectedBidIsEvaluator ? JSON.stringify(
|
|
26230
|
+
maxAmounts: selectedBidIsEvaluator ? JSON.stringify(buildMaxAmounts2()) : "[]",
|
|
26231
26231
|
reason: decision === "reject" ? selectedBidIsEvaluator ? rejectReason : rejectReason.trim() || "Rejected" : ""
|
|
26232
26232
|
}
|
|
26233
26233
|
});
|
|
@@ -26243,7 +26243,7 @@ var EvaluateBidFlowDetail = ({
|
|
|
26243
26243
|
setSubmitting(false);
|
|
26244
26244
|
}
|
|
26245
26245
|
});
|
|
26246
|
-
}, [provideSigningHandler, selectedBid, decision, adminAddress, rejectReason, collectionId, deedDid,
|
|
26246
|
+
}, [provideSigningHandler, selectedBid, decision, adminAddress, rejectReason, collectionId, deedDid, buildMaxAmounts2, refreshBids, executeAction]);
|
|
26247
26247
|
if (selectedBid) {
|
|
26248
26248
|
const bidStatus = getBidStatus(selectedBid, t);
|
|
26249
26249
|
const bidRole = String(selectedBid.role || "").toLowerCase();
|
|
@@ -28035,6 +28035,10 @@ function roleLabel(role) {
|
|
|
28035
28035
|
return role === "submit" ? "Submit (Contributor)" : "Evaluate (Evaluator)";
|
|
28036
28036
|
}
|
|
28037
28037
|
var MIN_AGENT_QUOTA = 1;
|
|
28038
|
+
var DEFAULT_EVALUATOR_QUOTA = 50;
|
|
28039
|
+
var IXO_DENOM5 = "uixo";
|
|
28040
|
+
var USDC_DENOM5 = "ibc/6BBE9BD4246F8E04948D5A4EEE7164B2630263B9EBB5E7DC5F0A46C62A2FF97B";
|
|
28041
|
+
var EMPTY_MAX_AMOUNTS = { ixo: "", usdc: "" };
|
|
28038
28042
|
function formatQuota2(value) {
|
|
28039
28043
|
if (value == null || value === "") return "\u2014";
|
|
28040
28044
|
return value;
|
|
@@ -28044,6 +28048,48 @@ function truncateAddress4(address) {
|
|
|
28044
28048
|
if (address.length <= 16) return address;
|
|
28045
28049
|
return `${address.slice(0, 10)}...${address.slice(-4)}`;
|
|
28046
28050
|
}
|
|
28051
|
+
function toIxoDid(value) {
|
|
28052
|
+
const trimmed = String(value || "").trim();
|
|
28053
|
+
if (!trimmed) return "";
|
|
28054
|
+
return trimmed.startsWith("did:") ? trimmed : `did:ixo:${trimmed}`;
|
|
28055
|
+
}
|
|
28056
|
+
function getGranteeDid(grantee) {
|
|
28057
|
+
return toIxoDid(grantee.did || grantee.address);
|
|
28058
|
+
}
|
|
28059
|
+
function buildMaxAmounts(values) {
|
|
28060
|
+
return [
|
|
28061
|
+
{ denom: IXO_DENOM5, amount: values.ixo },
|
|
28062
|
+
{ denom: USDC_DENOM5, amount: values.usdc }
|
|
28063
|
+
].filter((coin) => {
|
|
28064
|
+
const amount = Number(coin.amount);
|
|
28065
|
+
return Number.isFinite(amount) && amount > 0;
|
|
28066
|
+
});
|
|
28067
|
+
}
|
|
28068
|
+
function formatCoin2(coin) {
|
|
28069
|
+
const denom = coin.denom === IXO_DENOM5 ? "IXO" : coin.denom === USDC_DENOM5 ? "USDC" : coin.denom;
|
|
28070
|
+
return `${coin.amount} ${denom}`;
|
|
28071
|
+
}
|
|
28072
|
+
function MaxAmountsInput({ value, onChange, disabled }) {
|
|
28073
|
+
return /* @__PURE__ */ React266.createElement(Stack182, { gap: "xs" }, /* @__PURE__ */ React266.createElement(Text160, { size: "xs", c: "dimmed" }, "Evaluator max amounts"), /* @__PURE__ */ React266.createElement(Group102, { grow: true, align: "flex-start" }, /* @__PURE__ */ React266.createElement(
|
|
28074
|
+
BaseNumberInput,
|
|
28075
|
+
{
|
|
28076
|
+
label: "IXO",
|
|
28077
|
+
min: 0,
|
|
28078
|
+
value: value.ixo === "" ? "" : Number(value.ixo),
|
|
28079
|
+
onChange: (amount) => onChange({ ...value, ixo: amount === "" || amount == null ? "" : String(amount) }),
|
|
28080
|
+
disabled
|
|
28081
|
+
}
|
|
28082
|
+
), /* @__PURE__ */ React266.createElement(
|
|
28083
|
+
BaseNumberInput,
|
|
28084
|
+
{
|
|
28085
|
+
label: "USDC",
|
|
28086
|
+
min: 0,
|
|
28087
|
+
value: value.usdc === "" ? "" : Number(value.usdc),
|
|
28088
|
+
onChange: (amount) => onChange({ ...value, usdc: amount === "" || amount == null ? "" : String(amount) }),
|
|
28089
|
+
disabled
|
|
28090
|
+
}
|
|
28091
|
+
)));
|
|
28092
|
+
}
|
|
28047
28093
|
function toQuotaString(value) {
|
|
28048
28094
|
const n = Number(value);
|
|
28049
28095
|
if (!Number.isFinite(n) || n < MIN_AGENT_QUOTA) return String(MIN_AGENT_QUOTA);
|
|
@@ -28145,6 +28191,7 @@ var CollectionUsersFlowDetail = ({
|
|
|
28145
28191
|
const out = output;
|
|
28146
28192
|
return Array.isArray(out?.grantees) ? out.grantees : [];
|
|
28147
28193
|
}, [output]);
|
|
28194
|
+
const [granteeProfilesByDid, setGranteeProfilesByDid] = useState120({});
|
|
28148
28195
|
const isRunning = runtime.state === "running";
|
|
28149
28196
|
const isFailed = runtime.state === "failed";
|
|
28150
28197
|
const errorMessage = runtime.error?.message || null;
|
|
@@ -28158,6 +28205,7 @@ var CollectionUsersFlowDetail = ({
|
|
|
28158
28205
|
const [addAddress, setAddAddress] = useState120("");
|
|
28159
28206
|
const [addRole, setAddRole] = useState120("submit");
|
|
28160
28207
|
const [addQuota, setAddQuota] = useState120(String(MIN_AGENT_QUOTA));
|
|
28208
|
+
const [addMaxAmounts, setAddMaxAmounts] = useState120(EMPTY_MAX_AMOUNTS);
|
|
28161
28209
|
const [granteeKind, setGranteeKind] = useState120("user");
|
|
28162
28210
|
const [members, setMembers] = useState120([]);
|
|
28163
28211
|
const [revokeTarget, setRevokeTarget] = useState120(null);
|
|
@@ -28218,6 +28266,9 @@ var CollectionUsersFlowDetail = ({
|
|
|
28218
28266
|
setMembers([]);
|
|
28219
28267
|
}
|
|
28220
28268
|
}, [granteeKind, classification, canEnumerate, enumerateGroupMembers]);
|
|
28269
|
+
useEffect96(() => {
|
|
28270
|
+
setAddQuota(String(addRole === "evaluate" ? DEFAULT_EVALUATOR_QUOTA : MIN_AGENT_QUOTA));
|
|
28271
|
+
}, [addRole]);
|
|
28221
28272
|
const isGroup = !!classification?.daodao;
|
|
28222
28273
|
const canExerciseGrant = !!classification?.daodao?.canExerciseGrant;
|
|
28223
28274
|
const listOnLoadRef = useRef31(false);
|
|
@@ -28257,6 +28308,41 @@ var CollectionUsersFlowDetail = ({
|
|
|
28257
28308
|
listOnLoadRef.current = false;
|
|
28258
28309
|
runList();
|
|
28259
28310
|
}, [runList]);
|
|
28311
|
+
useEffect96(() => {
|
|
28312
|
+
let mounted = true;
|
|
28313
|
+
const dids = Array.from(new Set(listGrantees.map(getGranteeDid).filter(Boolean)));
|
|
28314
|
+
const missing = dids.filter((did) => !granteeProfilesByDid[did]);
|
|
28315
|
+
if (missing.length === 0)
|
|
28316
|
+
return () => {
|
|
28317
|
+
mounted = false;
|
|
28318
|
+
};
|
|
28319
|
+
const loadProfiles = async () => {
|
|
28320
|
+
const results = await Promise.all(
|
|
28321
|
+
missing.map(async (did) => {
|
|
28322
|
+
try {
|
|
28323
|
+
const profile = await handlersRef.current.getMatrixInfoPerDid(did);
|
|
28324
|
+
return [did, profile];
|
|
28325
|
+
} catch {
|
|
28326
|
+
return [did, null];
|
|
28327
|
+
}
|
|
28328
|
+
})
|
|
28329
|
+
);
|
|
28330
|
+
if (!mounted) return;
|
|
28331
|
+
setGranteeProfilesByDid((prev) => {
|
|
28332
|
+
const next = { ...prev };
|
|
28333
|
+
results.forEach(([did, profile]) => {
|
|
28334
|
+
if (profile) {
|
|
28335
|
+
next[did] = profile;
|
|
28336
|
+
}
|
|
28337
|
+
});
|
|
28338
|
+
return next;
|
|
28339
|
+
});
|
|
28340
|
+
};
|
|
28341
|
+
void loadProfiles();
|
|
28342
|
+
return () => {
|
|
28343
|
+
mounted = false;
|
|
28344
|
+
};
|
|
28345
|
+
}, [listGrantees, granteeProfilesByDid]);
|
|
28260
28346
|
const validation = useMemo106(() => {
|
|
28261
28347
|
if (section === "bids") return { ok: false };
|
|
28262
28348
|
if (!collectionId) return { ok: false, error: "No collection configured. Set one in template mode." };
|
|
@@ -28293,6 +28379,7 @@ var CollectionUsersFlowDetail = ({
|
|
|
28293
28379
|
role: revokeTarget?.role || "submit"
|
|
28294
28380
|
};
|
|
28295
28381
|
}
|
|
28382
|
+
const maxAmounts = buildMaxAmounts(addMaxAmounts);
|
|
28296
28383
|
return {
|
|
28297
28384
|
operation: "add",
|
|
28298
28385
|
collectionId,
|
|
@@ -28302,9 +28389,10 @@ var CollectionUsersFlowDetail = ({
|
|
|
28302
28389
|
role: addRole,
|
|
28303
28390
|
granteeKind,
|
|
28304
28391
|
agentQuota: toQuotaString(addQuota),
|
|
28392
|
+
maxAmount: addRole === "evaluate" && maxAmounts.length > 0 ? maxAmounts : void 0,
|
|
28305
28393
|
members: granteeKind === "group-members" ? members : void 0
|
|
28306
28394
|
};
|
|
28307
|
-
}, [section, activeOp, collectionId, adminAddress, deedDid, revokeTarget, addAddress, addRole, granteeKind, addQuota, members]);
|
|
28395
|
+
}, [section, activeOp, collectionId, adminAddress, deedDid, revokeTarget, addAddress, addRole, granteeKind, addQuota, addMaxAmounts, members]);
|
|
28308
28396
|
useEffect96(() => {
|
|
28309
28397
|
if (!registerRuntimeInputs) return;
|
|
28310
28398
|
registerRuntimeInputs(buildRuntimeInputs());
|
|
@@ -28342,7 +28430,8 @@ var CollectionUsersFlowDetail = ({
|
|
|
28342
28430
|
console.log(`${LOG2} execute success`, { operation: runtimeInputs.operation, transactionHash: payload.transactionHash });
|
|
28343
28431
|
if (runtimeInputs.operation === "add") {
|
|
28344
28432
|
setAddAddress("");
|
|
28345
|
-
setAddQuota(String(MIN_AGENT_QUOTA));
|
|
28433
|
+
setAddQuota(String(runtimeInputs.role === "evaluate" ? DEFAULT_EVALUATOR_QUOTA : MIN_AGENT_QUOTA));
|
|
28434
|
+
setAddMaxAmounts(EMPTY_MAX_AMOUNTS);
|
|
28346
28435
|
setGranteeKind("user");
|
|
28347
28436
|
setMembers([]);
|
|
28348
28437
|
setClassification(null);
|
|
@@ -28406,6 +28495,9 @@ var CollectionUsersFlowDetail = ({
|
|
|
28406
28495
|
}
|
|
28407
28496
|
), !configMissing && section === "list" && /* @__PURE__ */ React266.createElement(Stack182, { gap: "sm" }, /* @__PURE__ */ React266.createElement(Group102, { justify: "space-between", align: "center" }, /* @__PURE__ */ React266.createElement(Text160, { size: "sm", fw: 600 }, "Grantees"), /* @__PURE__ */ React266.createElement(ActionIcon42, { variant: "subtle", color: "gray", size: "sm", onClick: handleManualRefreshList, disabled: isRunning || !adminAddress }, /* @__PURE__ */ React266.createElement(IconRefresh9, { size: 16 }))), isRunning && lastOp !== "add" && lastOp !== "revoke" && /* @__PURE__ */ React266.createElement(Group102, { gap: "xs", justify: "center", py: "sm" }, /* @__PURE__ */ React266.createElement(Loader49, { size: "xs" }), /* @__PURE__ */ React266.createElement(Text160, { size: "xs", c: "dimmed" }, "Loading grantees\u2026")), !isRunning && listGrantees.length === 0 && /* @__PURE__ */ React266.createElement(Text160, { size: "sm", c: "dimmed", ta: "center", py: "sm" }, "No grantees hold a constraint for this collection yet."), listGrantees.map((grantee) => {
|
|
28408
28497
|
const isTarget = revokeTarget?.address === grantee.address && revokeTarget?.role === grantee.role;
|
|
28498
|
+
const granteeDid = getGranteeDid(grantee);
|
|
28499
|
+
const profile = granteeProfilesByDid[granteeDid];
|
|
28500
|
+
const displayName = profile?.displayname || truncateAddress4(grantee.address);
|
|
28409
28501
|
return /* @__PURE__ */ React266.createElement(
|
|
28410
28502
|
Box56,
|
|
28411
28503
|
{
|
|
@@ -28417,7 +28509,7 @@ var CollectionUsersFlowDetail = ({
|
|
|
28417
28509
|
background: "var(--mantine-color-neutralColor-5)"
|
|
28418
28510
|
}
|
|
28419
28511
|
},
|
|
28420
|
-
/* @__PURE__ */ React266.createElement(Group102, { justify: "space-between", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React266.createElement(Stack182, { gap: 2, style: { minWidth: 0 } }, /* @__PURE__ */ React266.createElement(Text160, { size: "sm", fw: 600,
|
|
28512
|
+
/* @__PURE__ */ React266.createElement(Group102, { justify: "space-between", align: "center", wrap: "nowrap" }, /* @__PURE__ */ React266.createElement(Stack182, { gap: 2, style: { minWidth: 0 } }, /* @__PURE__ */ React266.createElement(Text160, { size: "sm", fw: 600, truncate: true }, displayName), profile?.displayname && /* @__PURE__ */ React266.createElement(Text160, { size: "xs", c: "dimmed", truncate: true }, truncateAddress4(grantee.address)), /* @__PURE__ */ React266.createElement(Group102, { gap: "xs" }, /* @__PURE__ */ React266.createElement(Badge50, { size: "xs", variant: "light", color: grantee.role === "submit" ? "blue" : "green" }, roleLabel(grantee.role)), /* @__PURE__ */ React266.createElement(Text160, { size: "xs", c: "dimmed" }, "Quota: ", formatQuota2(grantee.agentQuota)))), isTarget ? /* @__PURE__ */ React266.createElement(Button55, { size: "compact-xs", variant: "subtle", color: "gray", onClick: cancelRevoke, disabled: isDisabled || isRunning }, "Cancel") : /* @__PURE__ */ React266.createElement(
|
|
28421
28513
|
Button55,
|
|
28422
28514
|
{
|
|
28423
28515
|
size: "compact-xs",
|
|
@@ -28479,7 +28571,7 @@ var CollectionUsersFlowDetail = ({
|
|
|
28479
28571
|
onChange: (value) => setAddQuota(value === "" || value == null ? "" : String(value)),
|
|
28480
28572
|
disabled: isDisabled || isRunning
|
|
28481
28573
|
}
|
|
28482
|
-
), !validation.ok && validation.error && activeOp === "add" && /* @__PURE__ */ React266.createElement(Alert52, { color: "yellow", styles: actionAlertStyles }, validation.error)), !configMissing && section === "bids" && /* @__PURE__ */ React266.createElement(BidInboxSection, { deedDid, collectionId, adminAddress, isDisabled, handlersRef }), isDisabled && /* @__PURE__ */ React266.createElement(Text160, { size: "xs", c: "dimmed" }, "This block is currently disabled."));
|
|
28574
|
+
), addRole === "evaluate" && /* @__PURE__ */ React266.createElement(MaxAmountsInput, { value: addMaxAmounts, onChange: setAddMaxAmounts, disabled: isDisabled || isRunning }), !validation.ok && validation.error && activeOp === "add" && /* @__PURE__ */ React266.createElement(Alert52, { color: "yellow", styles: actionAlertStyles }, validation.error)), !configMissing && section === "bids" && /* @__PURE__ */ React266.createElement(BidInboxSection, { deedDid, collectionId, adminAddress, isDisabled, handlersRef }), isDisabled && /* @__PURE__ */ React266.createElement(Text160, { size: "xs", c: "dimmed" }, "This block is currently disabled."));
|
|
28483
28575
|
};
|
|
28484
28576
|
var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handlersRef }) => {
|
|
28485
28577
|
const [bids, setBids] = useState120([]);
|
|
@@ -28489,9 +28581,14 @@ var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handle
|
|
|
28489
28581
|
const [decision, setDecision] = useState120("");
|
|
28490
28582
|
const [rejectReason, setRejectReason] = useState120("");
|
|
28491
28583
|
const [approveQuota, setApproveQuota] = useState120(String(MIN_AGENT_QUOTA));
|
|
28584
|
+
const [approveMaxAmounts, setApproveMaxAmounts] = useState120(EMPTY_MAX_AMOUNTS);
|
|
28492
28585
|
const [submitting, setSubmitting] = useState120(false);
|
|
28493
28586
|
const [profilesByDid, setProfilesByDid] = useState120({});
|
|
28494
28587
|
const selectedBid = useMemo106(() => bids.find((b) => b.id === selectedBidId) || null, [bids, selectedBidId]);
|
|
28588
|
+
const selectedBidIsEvaluator = useMemo106(() => {
|
|
28589
|
+
const role = String(selectedBid?.role || "").toLowerCase();
|
|
28590
|
+
return role === "evaluation_agent" || role === "ea";
|
|
28591
|
+
}, [selectedBid]);
|
|
28495
28592
|
const refreshBids = useCallback97(async () => {
|
|
28496
28593
|
if (!deedDid || !collectionId) return;
|
|
28497
28594
|
setLoading(true);
|
|
@@ -28500,9 +28597,9 @@ var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handle
|
|
|
28500
28597
|
const response = await handlersRef.current.queryBids({ collectionId, entityDid: deedDid });
|
|
28501
28598
|
const fetched = Array.isArray(response?.data) ? response.data : [];
|
|
28502
28599
|
setBids(fetched);
|
|
28503
|
-
} catch
|
|
28600
|
+
} catch {
|
|
28504
28601
|
setBids([]);
|
|
28505
|
-
setError(
|
|
28602
|
+
setError(null);
|
|
28506
28603
|
} finally {
|
|
28507
28604
|
setLoading(false);
|
|
28508
28605
|
}
|
|
@@ -28512,8 +28609,15 @@ var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handle
|
|
|
28512
28609
|
setDecision("");
|
|
28513
28610
|
setRejectReason("");
|
|
28514
28611
|
setApproveQuota(String(MIN_AGENT_QUOTA));
|
|
28612
|
+
setApproveMaxAmounts(EMPTY_MAX_AMOUNTS);
|
|
28515
28613
|
if (deedDid && collectionId) refreshBids();
|
|
28516
28614
|
}, [deedDid, collectionId, refreshBids]);
|
|
28615
|
+
useEffect96(() => {
|
|
28616
|
+
setDecision("");
|
|
28617
|
+
setRejectReason("");
|
|
28618
|
+
setApproveMaxAmounts(EMPTY_MAX_AMOUNTS);
|
|
28619
|
+
setApproveQuota(String(selectedBidIsEvaluator ? DEFAULT_EVALUATOR_QUOTA : MIN_AGENT_QUOTA));
|
|
28620
|
+
}, [selectedBidId, selectedBidIsEvaluator]);
|
|
28517
28621
|
useEffect96(() => {
|
|
28518
28622
|
let mounted = true;
|
|
28519
28623
|
const dids = Array.from(new Set(bids.map((b) => b.did).filter(Boolean)));
|
|
@@ -28555,7 +28659,15 @@ var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handle
|
|
|
28555
28659
|
if (!adminAddress) throw new Error("Entity admin account is not resolved yet.");
|
|
28556
28660
|
const quotaNum = Number(toQuotaString(approveQuota));
|
|
28557
28661
|
if (isEvaluator) {
|
|
28558
|
-
|
|
28662
|
+
const maxAmounts = buildMaxAmounts(approveMaxAmounts);
|
|
28663
|
+
await h.approveEvaluatorApplication({
|
|
28664
|
+
adminAddress,
|
|
28665
|
+
collectionId,
|
|
28666
|
+
deedDid,
|
|
28667
|
+
evaluatorAddress: selectedBid.address,
|
|
28668
|
+
agentQuota: quotaNum,
|
|
28669
|
+
maxAmounts: maxAmounts.length > 0 ? maxAmounts : void 0
|
|
28670
|
+
});
|
|
28559
28671
|
} else {
|
|
28560
28672
|
const currentUser = h.getCurrentUser?.();
|
|
28561
28673
|
await h.approveServiceAgentApplication({
|
|
@@ -28572,19 +28684,21 @@ var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handle
|
|
|
28572
28684
|
setSelectedBidId("");
|
|
28573
28685
|
setDecision("");
|
|
28574
28686
|
setRejectReason("");
|
|
28575
|
-
setApproveQuota(
|
|
28687
|
+
setApproveQuota(String(MIN_AGENT_QUOTA));
|
|
28688
|
+
setApproveMaxAmounts(EMPTY_MAX_AMOUNTS);
|
|
28576
28689
|
await refreshBids();
|
|
28577
28690
|
} catch (err) {
|
|
28578
28691
|
setError(err instanceof Error ? err.message : "Failed to evaluate bid");
|
|
28579
28692
|
} finally {
|
|
28580
28693
|
setSubmitting(false);
|
|
28581
28694
|
}
|
|
28582
|
-
}, [selectedBid, decision, adminAddress, collectionId, deedDid, rejectReason, approveQuota, handlersRef, refreshBids]);
|
|
28695
|
+
}, [selectedBid, decision, adminAddress, collectionId, deedDid, rejectReason, approveQuota, approveMaxAmounts, handlersRef, refreshBids]);
|
|
28583
28696
|
if (selectedBid) {
|
|
28584
28697
|
const profile = profilesByDid[selectedBid.did];
|
|
28585
28698
|
const displayName = profile?.displayname || selectedBid.did || selectedBid.address;
|
|
28586
28699
|
const role = String(selectedBid.role || "").toLowerCase();
|
|
28587
28700
|
const isEvaluator = role === "evaluation_agent" || role === "ea";
|
|
28701
|
+
const maxAmounts = isEvaluator ? buildMaxAmounts(approveMaxAmounts) : [];
|
|
28588
28702
|
const approvalDiffs = [
|
|
28589
28703
|
{ key: "role", label: "Role", before: null, after: getBidRoleLabel(selectedBid.role), changeType: "add" },
|
|
28590
28704
|
{ key: "grantee", label: "Grantee", before: null, after: displayName, changeType: "add" },
|
|
@@ -28596,7 +28710,16 @@ var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handle
|
|
|
28596
28710
|
after: toQuotaString(approveQuota),
|
|
28597
28711
|
changeType: "add",
|
|
28598
28712
|
unit: "claims"
|
|
28599
|
-
}
|
|
28713
|
+
},
|
|
28714
|
+
...isEvaluator ? [
|
|
28715
|
+
{
|
|
28716
|
+
key: "maxAmount",
|
|
28717
|
+
label: "Max Amounts",
|
|
28718
|
+
before: null,
|
|
28719
|
+
after: maxAmounts.length > 0 ? maxAmounts.map(formatCoin2).join(", ") : "None",
|
|
28720
|
+
changeType: maxAmounts.length > 0 ? "add" : "unchanged"
|
|
28721
|
+
}
|
|
28722
|
+
] : []
|
|
28600
28723
|
];
|
|
28601
28724
|
return /* @__PURE__ */ React266.createElement(Stack182, { gap: "md" }, /* @__PURE__ */ React266.createElement(Group102, { gap: "xs", align: "center" }, /* @__PURE__ */ React266.createElement(ActionIcon42, { variant: "subtle", color: "gray", size: "sm", onClick: () => setSelectedBidId("") }, /* @__PURE__ */ React266.createElement(IconArrowLeft10, { size: 16 })), /* @__PURE__ */ React266.createElement(Text160, { fw: 500, size: "sm", truncate: true, style: { flex: 1, minWidth: 0 } }, "Bid #", selectedBid.id)), /* @__PURE__ */ React266.createElement(Stack182, { gap: 4 }, /* @__PURE__ */ React266.createElement(Text160, { size: "sm", fw: 600, truncate: true }, displayName), /* @__PURE__ */ React266.createElement(Group102, { gap: "xs" }, /* @__PURE__ */ React266.createElement(Badge50, { size: "xs", variant: "light", color: getRoleColor3(selectedBid.role) }, getBidRoleLabel(selectedBid.role)), /* @__PURE__ */ React266.createElement(Text160, { size: "xs", c: "dimmed" }, truncateAddress4(selectedBid.address)))), /* @__PURE__ */ React266.createElement(
|
|
28602
28725
|
BaseSelect,
|
|
@@ -28620,7 +28743,7 @@ var BidInboxSection = ({ deedDid, collectionId, adminAddress, isDisabled, handle
|
|
|
28620
28743
|
onChange: (value) => setApproveQuota(value === "" || value == null ? "" : String(value)),
|
|
28621
28744
|
disabled: isDisabled || submitting
|
|
28622
28745
|
}
|
|
28623
|
-
), /* @__PURE__ */ React266.createElement(ActionDiffView, { diffs: approvalDiffs })), decision === "reject" && /* @__PURE__ */ React266.createElement(
|
|
28746
|
+
), isEvaluator && /* @__PURE__ */ React266.createElement(MaxAmountsInput, { value: approveMaxAmounts, onChange: setApproveMaxAmounts, disabled: isDisabled || submitting }), /* @__PURE__ */ React266.createElement(ActionDiffView, { diffs: approvalDiffs })), decision === "reject" && /* @__PURE__ */ React266.createElement(
|
|
28624
28747
|
BaseTextInput,
|
|
28625
28748
|
{
|
|
28626
28749
|
label: `Reason${isEvaluator ? " *" : ""}`,
|
|
@@ -29236,13 +29359,13 @@ var ClaimAttachments = ({ surveyModel, credentialSubject, entityDid }) => {
|
|
|
29236
29359
|
};
|
|
29237
29360
|
|
|
29238
29361
|
// src/mantine/blocks/action/actionTypes/evaluateClaim/EvaluateClaimFlowDetail.tsx
|
|
29239
|
-
var
|
|
29240
|
-
var
|
|
29362
|
+
var USDC_DENOM6 = "ibc/6BBE9BD4246F8E04948D5A4EEE7164B2630263B9EBB5E7DC5F0A46C62A2FF97B";
|
|
29363
|
+
var IXO_DENOM6 = "uixo";
|
|
29241
29364
|
var CUSTOM_DENOM2 = "__custom__";
|
|
29242
29365
|
var DECIMALS4 = 6;
|
|
29243
29366
|
var createPaymentRow2 = () => ({
|
|
29244
29367
|
id: `payment-${Math.random().toString(36).slice(2, 9)}`,
|
|
29245
|
-
denom:
|
|
29368
|
+
denom: USDC_DENOM6,
|
|
29246
29369
|
customDenom: "",
|
|
29247
29370
|
amount: ""
|
|
29248
29371
|
});
|
|
@@ -29841,8 +29964,8 @@ var EvaluateClaimFlowDetail = ({
|
|
|
29841
29964
|
value: row.denom,
|
|
29842
29965
|
onChange: (value) => updatePaymentRow(row.id, { denom: value }),
|
|
29843
29966
|
data: [
|
|
29844
|
-
{ value:
|
|
29845
|
-
{ value:
|
|
29967
|
+
{ value: USDC_DENOM6, label: "USDC" },
|
|
29968
|
+
{ value: IXO_DENOM6, label: "IXO" },
|
|
29846
29969
|
{ value: CUSTOM_DENOM2, label: t("actionTypes.evaluateClaim.flow.payment.custom", { defaultValue: "Custom" }) }
|
|
29847
29970
|
],
|
|
29848
29971
|
clearable: false,
|
|
@@ -46583,4 +46706,4 @@ export {
|
|
|
46583
46706
|
getExtraSlashMenuItems,
|
|
46584
46707
|
useCreateIxoEditor
|
|
46585
46708
|
};
|
|
46586
|
-
//# sourceMappingURL=chunk-
|
|
46709
|
+
//# sourceMappingURL=chunk-I2OZHN6S.mjs.map
|