Variable
ConstShown imperatively with NiceModal.show(PrizeRedeemedModal, props) by the
prize counter when the learner claims a prize. It offers two ways out:
closing leaves the learner on the counter, where the toy now sits in colour,
and continuing hands them back to the course where they left off — the
moment they are likeliest to start the next lesson. Closing stays the primary
control. Its promise settles with undefined on every way out, and closing
returns focus to the prize that was revealed.
The whole sequence is decoration. The dialog is named after the prize and described by the module and ticket count from the first frame, the "redeeming" line is hidden from assistive technology, and every animated layer rests on the revealed state — which is what reduced motion shows at once.
Celebrates redeeming a module's prize: the module's tickets fly into the prize's silhouette, it shakes and flashes, and the coloured prize appears with its name.