tweb/public/339.764b22e455094abfa43f.ch...

1 line
11 KiB
Plaintext

{"version":3,"file":"339.764b22e455094abfa43f.chunk.js","mappings":"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","sources":["webpack://tweb/./src/pages/loginPage.ts","webpack://tweb/./src/pages/pageSignUp.ts"],"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 {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","/*\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/putPreloader';\r\nimport PopupAvatar from '../components/popups/avatar';\r\nimport I18n, {i18n} from '../lib/langPack';\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\nimport PopupElement from '../components/popups';\r\nimport wrapEmojiText from '../lib/richTextProcessor/wrapEmojiText';\r\nimport rootScope from '../lib/rootScope';\r\n\r\nlet authCode: AuthState.signUp['authCode'] = null;\r\n\r\nconst onFirstMount = () => {\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 let uploadAvatar: () => CancellablePromise<InputFile>;\r\n page.imageDiv.addEventListener('click', () => {\r\n PopupElement.createPopup(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, wrapEmojiText(fullName));\r\n else replaceContent(page.title, i18n('YourName'));\r\n };\r\n\r\n const 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 rootScope.managers.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 rootScope.managers.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 rootScope.managers.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 rootScope.managers.appStateManager.pushToState('authState', {_: 'authStateSignUp', authCode: _authCode});\r\n});\r\n\r\nexport default page;\r\n"],"names":["LoginPage","constructor","options","this","element","document","body","querySelector","className","container","createElement","imageDiv","title","titleLangKey","append","subtitle","subtitleLangKey","withInputWrapper","inputWrapper","authCode","page","classList","add","avatarPreview","id","addIco","uploadAvatar","addEventListener","open","_uploadAvatar","handleInput","e","name","nameInputField","value","lastName","lastNameInputField","fullName","trim","label","maxLength","btnSignUp","btnI18n","key","input","contains","length","disabled","params","phone_number","phone_code_hash","first_name","last_name","update","preloader","then","response","_","user","Promise","resolve","reject","inputFile","finally","m","default","mount","removeAttribute","remove","catch","err","type","window","requestAnimationFrame","_authCode"],"sourceRoot":""}