(value)
| 809 | this.updateTicketInfoVisibility(); |
| 810 | this.updateTicketInfoToggleButton(); |
| 811 | }, 2000); |
| 812 | return Object.freeze({ ticketCount: this.ticketCount }); |
| 813 | } catch (error) { |
| 814 | console.warn('Ticket code redemption failed:', error); |
| 815 | this.registrationError = this.getTicketCodeRegistrationError(error); |
| 816 | this.smoothProgress.stop(); |
| 817 | this.registrationProgress = null; |
| 818 | if (options.throwOnError) throw new Error(this.registrationError); |
| 819 | return null; |
| 820 | } finally { |
| 821 | this.isRegistering = false; |
| 822 | this.renderTopSectionOnly(); |
| 823 | } |
| 824 | } |
| 825 | |
| 826 | applyInvitationCodeFromLink(code, { autoRedeem = false, source = null } = {}) { |
| 827 | const normalizedCode = this.normalizeInvitationCode(code); |
| 828 | if (!normalizedCode) return; |
| 829 | |
| 830 | this.pendingInvitationCode = normalizedCode; |
| 831 | this.pendingInvitationTickets = this.getInvitationTicketCount(normalizedCode); |
| 832 | this.pendingInvitationSource = source; |
no test coverage detected