tweb/public/26.d44ef4011bb3c3f8b0f7.chu...

1 line
11 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/pages/pageSignUp.ts","webpack:///./src/pages/loginPage.ts"],"names":["authCode","page","then","imported","className","withInputWrapper","titleLangKey","subtitleLangKey","imageDiv","classList","add","title","avatarPreview","document","createElement","id","addIco","append","appProfileManager","default","uploadAvatar","addEventListener","open","_uploadAvatar","handleInput","e","name","nameInputField","value","lastName","lastNameInputField","fullName","trim","wrapEmojiText","label","maxLength","btnSignUp","btnI18n","IntlElement","key","element","inputWrapper","container","input","contains","length","this","disabled","params","phone_number","phone_code_hash","first_name","last_name","update","preloader","invokeApi","response","_","setUser","user","Promise","resolve","reject","inputFile","uploadProfilePhoto","finally","m","mount","removeAttribute","remove","catch","err","type","window","requestAnimationFrame","_authCode","pushToState","LoginPage","options","body","querySelector","subtitle"],"mappings":"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","file":"26.d44ef4011bb3c3f8b0f7.chunk.js","sourcesContent":["/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport type { CancellablePromise } from '../helpers/cancellablePromise';\r\nimport type { InputFile } from '../layer';\r\nimport type { AuthState } from '../types';\r\nimport Button from '../components/button';\r\nimport InputField from '../components/inputField';\r\nimport { putPreloader } from '../components/misc';\r\nimport PopupAvatar from '../components/popups/avatar';\r\nimport appStateManager from '../lib/appManagers/appStateManager';\r\nimport I18n, { i18n } from '../lib/langPack';\r\n//import apiManager from '../lib/mtproto/apiManager';\r\nimport apiManager from '../lib/mtproto/mtprotoworker';\r\nimport RichTextProcessor from '../lib/richtextprocessor';\r\nimport LoginPage from './loginPage';\r\nimport Page from './page';\r\nimport blurActiveElement from '../helpers/dom/blurActiveElement';\r\nimport replaceContent from '../helpers/dom/replaceContent';\r\n\r\nlet authCode: AuthState.signUp['authCode'] = null;\r\n\r\nconst onFirstMount = () => import('../lib/appManagers/appProfileManager').then(imported => {\r\n const page = new LoginPage({\r\n className: 'page-signUp',\r\n withInputWrapper: true,\r\n titleLangKey: 'YourName',\r\n subtitleLangKey: 'Login.Register.Subtitle'\r\n });\r\n\r\n page.imageDiv.classList.add('avatar-edit');\r\n\r\n page.title.classList.add('fullName');\r\n\r\n const avatarPreview = document.createElement('canvas');\r\n avatarPreview.id = 'canvas-avatar';\r\n avatarPreview.className = 'avatar-edit-canvas';\r\n\r\n const addIco = document.createElement('span');\r\n addIco.className = 'tgico tgico-cameraadd';\r\n\r\n page.imageDiv.append(avatarPreview, addIco);\r\n \r\n const appProfileManager = imported.default;\r\n\r\n let uploadAvatar: () => CancellablePromise<InputFile>;\r\n page.imageDiv.addEventListener('click', () => {\r\n new PopupAvatar().open(avatarPreview, (_uploadAvatar) => {\r\n uploadAvatar = _uploadAvatar;\r\n });\r\n });\r\n\r\n const handleInput = (e: Event) => {\r\n const name = nameInputField.value || '';\r\n const lastName = lastNameInputField.value || '';\r\n\r\n const fullName = name || lastName \r\n ? (name + ' ' + lastName).trim() \r\n : '';\r\n \r\n if(fullName) replaceContent(page.title, RichTextProcessor.wrapEmojiText(fullName));\r\n else replaceContent(page.title, i18n('YourName'));\r\n };\r\n\r\n let sendAvatar = () => new Promise<void>((resolve, reject) => {\r\n if(!uploadAvatar) {\r\n //console.log('User has not selected avatar');\r\n return resolve();\r\n }\r\n\r\n //console.log('invoking uploadFile...');\r\n uploadAvatar().then((inputFile) => {\r\n //console.log('uploaded smthn', inputFile);\r\n \r\n appProfileManager.uploadProfilePhoto(inputFile).then(resolve, reject);\r\n }, reject);\r\n });\r\n\r\n const nameInputField = new InputField({\r\n label: 'FirstName',\r\n maxLength: 70\r\n });\r\n\r\n const lastNameInputField = new InputField({\r\n label: 'LastName',\r\n maxLength: 64\r\n });\r\n\r\n const btnSignUp = Button('btn-primary btn-color-primary');\r\n const btnI18n = new I18n.IntlElement({key: 'StartMessaging'});\r\n btnSignUp.append(btnI18n.element);\r\n\r\n page.inputWrapper.append(nameInputField.container, lastNameInputField.container, btnSignUp);\r\n\r\n nameInputField.input.addEventListener('input', handleInput);\r\n lastNameInputField.input.addEventListener('input', handleInput);\r\n\r\n btnSignUp.addEventListener('click', function(this: typeof btnSignUp, e) {\r\n if(nameInputField.input.classList.contains('error') || lastNameInputField.input.classList.contains('error')) {\r\n return false;\r\n }\r\n\r\n if(!nameInputField.value.length) {\r\n nameInputField.input.classList.add('error');\r\n return false;\r\n }\r\n\r\n this.disabled = true;\r\n\r\n const name = nameInputField.value.trim();\r\n const lastName = lastNameInputField.value.trim();\r\n\r\n const params = {\r\n phone_number: authCode.phone_number,\r\n phone_code_hash: authCode.phone_code_hash,\r\n first_name: name,\r\n last_name: lastName\r\n };\r\n\r\n //console.log('invoking auth.signUp with params:', params);\r\n\r\n btnI18n.update({key: 'PleaseWait'});\r\n const preloader = putPreloader(this);\r\n\r\n apiManager.invokeApi('auth.signUp', params)\r\n .then((response) => {\r\n //console.log('auth.signUp response:', response);\r\n \r\n switch(response._) {\r\n case 'auth.authorization': // success\r\n apiManager.setUser(response.user);\r\n\r\n sendAvatar().finally(() => {\r\n import('./pageIm').then(m => {\r\n m.default.mount();\r\n });\r\n });\r\n \r\n break;\r\n default:\r\n btnI18n.update({key: response._ as any});\r\n this.removeAttribute('disabled');\r\n preloader.remove();\r\n break;\r\n }\r\n\r\n /* (document.body.getElementsByClassName('page-sign')[0] as HTMLDivElement).style.display = 'none';\r\n pageAuthCode(Object.assign(code, {phoneNumber})); */\r\n }).catch(err => {\r\n this.removeAttribute('disabled');\r\n preloader.remove();\r\n\r\n switch(err.type) {\r\n default:\r\n btnI18n.update({key: err.type});\r\n break;\r\n }\r\n });\r\n });\r\n\r\n blurActiveElement();\r\n return new Promise((resolve) => {\r\n window.requestAnimationFrame(resolve);\r\n });\r\n});\r\n\r\nconst page = new Page('page-signUp', true, onFirstMount, (_authCode: typeof authCode) => {\r\n authCode = _authCode;\r\n\r\n appStateManager.pushToState('authState', {_: 'authStateSignUp', authCode: _authCode});\r\n});\r\n\r\nexport default page;\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport { LangPackKey, i18n } from \"../lib/langPack\";\r\n\r\nexport default class LoginPage {\r\n public element: HTMLElement;\r\n public container: HTMLElement;\r\n public imageDiv: HTMLElement;\r\n public inputWrapper: HTMLElement;\r\n public title: HTMLElement;\r\n public subtitle: HTMLParagraphElement;\r\n\r\n constructor(options: {\r\n className: string,\r\n withInputWrapper?: boolean,\r\n titleLangKey?: LangPackKey,\r\n subtitleLangKey?: LangPackKey,\r\n }) {\r\n this.element = document.body.querySelector('.' + options.className) as HTMLDivElement;\r\n //this.element = document.createElement('div');\r\n //this.element.className = 'page-' + options.className;\r\n\r\n this.container = document.createElement('div');\r\n this.container.className = 'container center-align';\r\n\r\n this.imageDiv = document.createElement('div');\r\n this.imageDiv.className = 'auth-image';\r\n\r\n this.title = document.createElement('h4');\r\n if(options.titleLangKey) {\r\n this.title.append(i18n(options.titleLangKey));\r\n }\r\n\r\n this.subtitle = document.createElement('p');\r\n this.subtitle.className = 'subtitle';\r\n if(options.subtitleLangKey) {\r\n this.subtitle.append(i18n(options.subtitleLangKey));\r\n }\r\n \r\n this.container.append(this.imageDiv, this.title, this.subtitle);\r\n\r\n if(options.withInputWrapper) {\r\n this.inputWrapper = document.createElement('div');\r\n this.inputWrapper.className = 'input-wrapper';\r\n this.container.append(this.inputWrapper);\r\n }\r\n\r\n this.element.append(this.container);\r\n }\r\n}\r\n"],"sourceRoot":""}