Sanity Library Reference Docs
    Preparing search index...

    One declared-editable field in the current scope, projected for an actor: its resolved value, whether this actor may edit it now (advisory), and the provenance of the current value read off opApplied history. The reactive surface a consumer renders as an inline field (the field widget itself is out of scope here — see the field-component work).

    interface EditableFieldEvaluation {
        activity?: string;
        disabledReason?: EditDisabledReason;
        editable: boolean;
        insight?: ConditionInsight;
        name: string;
        roleAliases?: RoleAliases;
        roles?: string[];
        scope: FieldScope;
        setAt?: string;
        setBy?: Actor;
        title?: string;
        type: keyof FieldValueMap;
        validation?: ScalarValidation;
        value: unknown;
    }
    Index

    Properties

    activity?: string

    Present iff scope === "activity".

    disabledReason?: EditDisabledReason

    Present iff editable === false.

    editable: boolean

    Whether THIS actor may edit the field right now (window + predicate + guard).

    Derived state of the who-may-edit predicate. Present iff the effective editability is a predicate (not the unconditional true).

    name: string
    roleAliases?: RoleAliases

    The definition aliases used to interpret EditableFieldEvaluation.roles.

    roles?: string[]

    Eligible assignment roles for assignee / assignees; absent means unconstrained.

    scope: FieldScope
    setAt?: string

    When the field was last written (ISO); absent if never written.

    setBy?: Actor

    Actor who last wrote the field (latest opApplied); absent if never written.

    title?: string
    type: keyof FieldValueMap
    validation?: ScalarValidation
    value: unknown

    Current resolved value; undefined until the field is first resolved.