Skip to main content
Subscribe with intake.on(event, handler). It returns an unsubscribe function.
EventFires whenPayload
readyThe iframe is ready{ ui } (resolved UI)
statusJob state changesIntakeStatusPayload
factsFile measurements updateIntakeFacts
uiUI changes after update()the new UI
errorA recoverable iframe error{ code, message }
proofA soft-proof is readyProofPayload
destroyThe element unmounts

Gate on status

The one event you must handle. Gate your submit button on canProceed:
intake.on('status', ({ canProceed, jobId }) => {
  submitBtn.disabled = !canProceed;
  hiddenJobIdInput.value = jobId ?? '';
});

Drive custom logic with facts

facts fires alongside status with file measurements (dimensions in millimetres). Use it to drive a price preview or your own controls:
intake.on('facts', (facts) => {
  console.log(facts.aggregate.pageCount, facts.aggregate.width);
});
See Facts for the full shape, or Connectors to map facts onto page controls without custom code.