The quantity dialog resolved its promise with nil on an invalid amount, so the
give/remove had already aborted by the time the player typed a valid value. The
dialog stayed open and a corrected amount did nothing.
Dropping the early resolve leaves the promise pending, so the same open dialog
accepts the retry and drops/gives the item. Cancel still resolves nil.
Tested on artifact 25770: entered an over-count amount, got "invalid amount",
corrected to a valid amount. Before, nothing happened; after, the item was
dropped.
esx_menu_default treats usable == false as "this row cannot be submitted".
esx_inventory was filling the same field with its own meaning - whether an
item has a use callback - and set it to false for accounts, for weapons and
for every item without a registered callback.
The result was that pressing enter on cash, bank, dirty money, any weapon or
any non consumable item did nothing at all. buildItemActionMenu was never
reached, even though those entries carry canRemove and the submenu would have
offered give and throw.
The action menu needs the value for its own "use" entry, so it moves to a
separate canUse field. The weight row keeps usable = false, since not being
submittable is correct there.
Verified on artifact 25770. Before: enter on cash and on bread did nothing.
After: cash offers throw and return, bank offers only return because it is
not droppable, bread offers throw and return without a use entry, and the
weight row still cannot be selected.